|
19 / 14 / 4
Регистрация: 11.09.2021
Сообщений: 245
|
|
PascalABC.net, удаление System.IO.Directory.Delete11.01.2023, 18:47. Показов 748. Ответов 16
Метки pascalabc.net (Все метки)
Здравствуйте!
Делал программу, и мини-программу для её удаления. В итоге при проверке случайно забыл изменить путь к файлам, и удалил саму программу с помощью System.IO.Directory.Delete... Осталась лишь кучка .exe файлов... Никакие программы даже не находят то, что смог удалить паскаль, видимо процедура и правда работает... Вопрос избитый, но задам - хоть как-то можно вернуть в код? 1k строчек кода заново писать - сами понимаете...
0
|
|
| 11.01.2023, 18:47 | |
|
Ответы с готовыми решениями:
16
Аналог Python-функции OS.System(cmd) на PascalABC.NET PascalABC.net модуль FormsABC удаление / изменение текста кнопки Переделать код PascalABC -> PascalABC.NET |
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|
| 11.01.2023, 19:41 | |
Сообщение было отмечено Daniilbata как решение
Решение
Эта процедура удаляет только описание файлов в заголовке диска.
Если после удаления винда не записала вам на диск, где были эти файлы, какой то новый файл - старые данные ещё должно быть можно достать программами, которые обращаются к диску напрямую, обходя файловую систему. Но если вы много пользовались компом после этого - вряд ли там всё цело. Следующий вариант: использовать dotpeek или ilspy чтобы построить теоретически-рабочий (а на самом деле не рабочий) код на C#, который делал бы то же что эти ваши .exe файлы. То есть переписать с 0 придётся, но хоть будет куда подглядывать - код на C# будет очень похожим на то, что вы делали в паскале. --- Что касается на будущее: 1. Используйте отдельное пространство (ещё 1 папку, в некоторых случаях может даже полноценный сендбокс) когда тестируете такое. Возможно можно было бы придумать что-то с System.Environment.CurrentDirectory в данном случае, чтобы на время дебага всё оградить2. Используйте системы контроля версий, вроде git, чтобы можно было посмотреть что именно изменилось и если что - откатить. И регулярно синхронизируйтесь с облаком, вроде github-а. Там можно и приватный репозиторий сделать, но обычно нет смысла особо прятать дерево в лесу, пока вы не собираетесь за деньги свой код продавать. А когда собираетесь - надо будет ещё отдельно позаботиться чтобы тот же dotpeek было не так просто использовать на ваших бинарниках. 3. "1k строчек кода заново писать" - это мелочь, на самом деле. Вам этот код наверное кажется большим, потому что вы вложили кучу сил в получение новых знаний, нужных чтобы его написать. Но в отличии от кода - эти знания как раз не удалились. Я сам когда начинал программировать - нашёл что рефакторить или даже переписывать с 0 куски кода что писал когда знал меньше - очень полезно, чтобы усвоить знания и более явно посмотреть: что я новое узнал и правильны ли эти знания.
0
|
|
|
19 / 14 / 4
Регистрация: 11.09.2021
Сообщений: 245
|
|
| 11.01.2023, 20:18 [ТС] | |
|
Sun,
1-й вариант: Пользовался пк часа 3, но не активно после такого "провала". Зато, попытался откатить винду на 2 часа назад что конечно-же не помогло (надеялся что винда хоть удалённый файл посчитает важным пользовательским). Потом где-то 3 программы для восстановления использовал, они ничего не нашли. Однако, скажите название подобных программ, быть может помогут. 2-й вариант: К огромному сожалению я не знаком с C, в школе познакомился с Питоном, сейчас Паскаль. 1) Да я всегда стараюсь использовать, кроме того - не бывало такого чтобы я мог удалить файл "совсем", в обход корзины. Первый раз делал, и накосячил с лучшим "изделием". 2) Я обычно отсылаю версии знакомому, с которым мы работаем, тем самым сохраняя их в архивах соц.сети, + раньше OneDrive использовал, если хотел иногда на телефоне дописать что-либо. В этот раз знакомому зачем-то одни .exe кидал, ни одного кода( 3) Полностью с вами согласен, собственно, за создание проекта я освоил ABCobjects. Но всё-равно, учитывая какие там часто были, как выражается мой знакомый, "формулы" из round(window.Width/2.75), написанных по 4-6 для одного только объекта, и т.п., чтобы привязать размеры и расположение объектов к размерам экрана - писать это заново будет душновато) Да и, в целом .exe завершён на 97%, а т.к. на всеобщее обозрение я его выставлять не буду, то и его достаточно.) Вас же в очередной раз благодарю за быструю помощь, прямо-таки мониторите мои темы)
0
|
|
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|||||||||||
| 11.01.2023, 21:00 | |||||||||||
Сложно словами передать сколько это на самом деле меняет. Но те кто системы версий попробовали - без них ничего уже не делают)) Я уже даже вне программирования кучу применений нашёл. Там показывает всё что я ещё не читал. А вам отвечаю чаще только потому, что ваши темы это не шаблонные задачки. Добавлено через 5 минут И рекомендую дальше попробовать WPF или WinForms. ABCObjects это, всё же, не модуль для написания оконных систем.
0
|
|||||||||||
|
19 / 14 / 4
Регистрация: 11.09.2021
Сообщений: 245
|
|
| 11.01.2023, 21:01 [ТС] | |
|
1) Понял поищу сам
2) Да способов удаления много, а вот восстановления - единицы) 3) Как-нибудь задумаюсь, но пока моя программа это код, который ни к чему кроме как паре фото/медиа - не привязывается. Потому, проще отредактировать код, а старый удалить 4) Раздел видел, тоже там иногда смотрю, вдруг что-то интересное найду; Спасибо) 5) Нет, это не шаблоны, вы не так поняли)) это строки вида: A.MoveTo(round(window.Width/5)-razmer*x1,-massif,...);, и т.д. Из-за того что везде надо привязываться к экрану, они и выглядят одинаковыми) А в константы их забить нельзя, даже если я и почти лишаю пользователя возможности изменения размера экрана (убираю борты) 5.1) А с модулем WPF хочу познакомиться, часто вижу что его считают более практичным.
0
|
|
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|||
| 11.01.2023, 21:05 | |||
|
Организация классов может быть не знакома, но тела подпрограмм после декомпиляции будут выглядеть очень похоже на ваш изначальный код. Добавлено через 1 минуту
0
|
|||
|
19 / 14 / 4
Регистрация: 11.09.2021
Сообщений: 245
|
|
| 11.01.2023, 21:08 [ТС] | |
|
0
|
|
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|||||||
| 11.01.2023, 21:13 | |||||||
unit и подключается с uses.А WPF это набор библиотек (.dll), которые подключаются директивой $reference. В этих библиотеках ещё есть пространства имён, как System, которые тоже можно подключать с uses.Но это тоже не модули - в их случае uses только позволяет писать, к примеру, TimeSpan вместо System.TimeSpan, но в .exe ничего нового не добавляется.Добавлено через 3 минуты Вот пример простенькой программы с WPF:
0
|
|||||||
|
19 / 14 / 4
Регистрация: 11.09.2021
Сообщений: 245
|
|
| 11.01.2023, 21:18 [ТС] | |
|
Вы уж простите, но для меня в новинку даже тот факт, что в {} не комментарии
(первый курс колледжа)Потому, задам вопрос: Данный модуль есть в справке хоть в каком-то виде, или можно-ли его найти на просторах интернета? Не хотелось бы чтобы он был таким-же как Graph3D.
0
|
|
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
||
| 11.01.2023, 21:22 | ||
{} это комментарий, {$} это директива. Посмотрите в справке на страницу директивы компилятора.G:\PABCWork.NET\Samples - там большая часть кода сама себя объясняет.А WPF это часть среды .Net для ОС Windows - поэтому справка, соответственно, на сайте майков: https://learn.microsoft.com/en... work-4.8.1
0
|
||
|
19 / 14 / 4
Регистрация: 11.09.2021
Сообщений: 245
|
|
| 11.01.2023, 23:00 [ТС] | |
|
Насчёт первого догадался, но спасибо за место)
Насчёт второго - модуль то неплохой, но нет казалось бы очевидной функции столкновений, а без неё - слишком много мороки) Потому хоть примеры (а точнее презентации с оф сайта) и помогли - но всё-же 2д остался в приоритете. Хотя, в 2д нет анимаций, и перемещения дёрганые)
0
|
|
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|
| 11.01.2023, 23:14 | |
|
Столкновения это часть физического движка - а это не меньше кода чем весь Graph3D, если нормально реализовывать.
В то же время если вам достаточно хитбоксы (то есть описывающие 3D прямоугольники) - это и вручную реализовать не сложно.
0
|
|
|
19 / 14 / 4
Регистрация: 11.09.2021
Сообщений: 245
|
|
| 11.01.2023, 23:36 [ТС] | |
|
Честно говоря, не припомню чтоб видел функцию определения подобного у объектов. Пройдусь ещё раз по справке, потому как если найду - будет весьма просто реализовать, согласен. Но, повторюсь, я не видел такого в справке, возможно поэтому чего-то не знаю(
0
|
|
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
||||||
| 12.01.2023, 00:36 | ||||||
|
Готового вроде нет, но опять же, всё можно сделать ручками:
0
|
||||||
|
19 / 14 / 4
Регистрация: 11.09.2021
Сообщений: 245
|
|
| 12.01.2023, 00:38 [ТС] | |
|
Интересно, но пока много непонятного, завтра на ПК открою, посмотрю что паскаль подскажет)
Спасибо!!!
0
|
|
|
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
|
|
| 12.01.2023, 09:32 | |
|
Не знаю, я его всё это время использовал. Я думаю дело в том, что мелкие программы, которых тут большинство, не достаточно сложные чтобы
match или is-var были нужны.
0
|
|
| 12.01.2023, 09:32 | |
|
Помогаю со студенческими работами здесь
17
Переделать программу из PascalABC в PascalABC.NET Установится ли PascalABC.NET на систему, где установлен только .NET 4.6.1?
Перевести С на PascalABC.NET Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|