|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
||
Распаковщик псевдо архивов27.05.2012, 22:26. Показов 15395. Ответов 148
Метки нет (Все метки)
Суть такая
Нужно написать распаковщик псевдо архивов. Выглядит примерно так. Форму создал прописал открытие файлов, вывод (хранения размер) А дальше стопор. Встали две основных проблеммы. Суть проблем такая 1 В окне открываешь файл (любой) 2 В окне открываешь таблицу смещения вида
Жмешь на распаковать И он разрезает файл согласно заданным смещениям. в файле*.tab 1 вопрос нужно ли добавлять второй диолого на файл с таблицей? Или достаточно 1 -го диалогового окна? 2 вопрос. Не где подобного не нашел. Не плохо бы какойто пример чтоб мне разобратся. А то я встал в тупик. Примерно выходит так 1 читается первая строчка в *.tab 2 Ищется в файле архива 3 создается файл туда копируется содержимое 4 сохраняется. Буду примного благодарен за помощь.
0
|
||
| 27.05.2012, 22:26 | |
|
Ответы с готовыми решениями:
148
хочу узнать вашу мнение о Упаковщик+распаковщик UPX Псевдо raytracing opengl Построение псевдо-фазовой траектории |
|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
||
| 03.06.2012, 20:08 [ТС] | ||
|
Про таблицу (DIR, И ФАЙЛ .DAT). забываем(это другая история) Работает с 1 и 2 постом Таблица ansi.
0
|
||
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|
| 03.06.2012, 20:23 | |
|
Я именно последний вариант и имел в виду - работаем с двоичной таблицей, если она есть. А в чём проблема? Там вообще всё легко подогнать под склеивание.
0
|
|
|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
|
| 03.06.2012, 21:13 [ТС] | |
|
0
|
|
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|
| 03.06.2012, 21:17 | |
|
Да нет. Последний вариант программы. В которой мы прямо брали двоичную таблицу, извлекали из неё адреса и имена файлов и сразу разрезали файл *dat. Ты мне ещё 2 файла скидывал и я на них тренировался. Там не Юникод, а просто двоичные данные.
0
|
|
|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
|||||||
| 03.06.2012, 22:45 [ТС] | |||||||
0
|
|||||||
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|
| 03.06.2012, 23:10 | |
|
Только давай уже без Юникода. Хорошо?
Опиши, что там? Смещение, длина и имя файла? А увидел. Начальный и конечный смещения в конечном файле. Не может быть длина файла больше или меньше этого размера?
0
|
|
|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
|
| 03.06.2012, 23:24 [ТС] | |
|
Отправил в личку
0
|
|
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|
| 04.06.2012, 16:55 | |
|
Вот что получилось. На основе таблицы с Юникодом.
1
|
|
|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
|||||||||||
| 04.06.2012, 19:18 [ТС] | |||||||||||
|
Забрал пока тестирую и разбираюсь.
Между делом такой вопрос. Как поставить проверку на папку (папка выбрана в SаveDialog1) Описание кнопки
Добавлено через 7 минут Мощная сборка получилась. Распаковка проще.
0
|
|||||||||||
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|||||||||||
| 04.06.2012, 19:26 | |||||||||||
|
Есть функция:
Можно проверить, спросить: Создать? и при ответе Да - создать.
1
|
|||||||||||
|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
||
| 04.06.2012, 22:41 [ТС] | ||
Добавлено через 3 часа 1 минуту Одиночка, Спасибо огромное. Все отлично работает. Как обычно пропадаю на 2 дня. Изучаю. Осталось несколько вопросов, но чуть пойже. Надо еще тут разобраться. Сейчас выведу все переменные и через F7, буду вникать в суть.
0
|
||
|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
|||||||
| 07.06.2012, 17:31 [ТС] | |||||||
|
Несколько вопросов.
1 Как установить проверку таблицы? Является она юникодом или нет. Если подключаешь обычную таблицу. То программа падает с критической ошибкой. 2 Можно ли написать пример?
5. Можно ли работать с файлом на прямую(#44) без массивов? Ну вот и подходит интересная тема к концу.
0
|
|||||||
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|||||||||||
| 07.06.2012, 18:32 | |||||||||||
|
По первому вопросу:
Юникодовские символы состоят из двух байт. Первый, кажется равен 0. Это можно сначала проверить и, соответственно лиибо так загружать, либо по другому: Я подумаю, потом код выложу. Там нужно эксперимент провести. По второму вопросу:
По четвёртому вопросу: Проще можно было так:
Я не знаю, как это напрямую. Всё равно если есть отработка, в память нужно считывать. А если просто из файла в файл переписывать. Кажется, как то можно через FileStream. Но с этим я не работал и вообще ничего не могу сказать. Только краем уха слышал и предположил, что такое возможно.
0
|
|||||||||||
|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
||||||||
| 07.06.2012, 19:13 [ТС] | ||||||||
|
Слушай такая проблема.
В чом может быть проблема? Все разобрался. Отбой. Добавлено через 10 минут
Кстати заодно и вопрос. Чем консольный отличается от обычного Delphi 7? Кроме вывода информации на экран. В консольной
0
|
||||||||
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|
| 07.06.2012, 19:32 | |
|
Насчёт ошибки. Сразу пиши, что за ошибка. И ты тип объявил? И VarZap - это одно слово, без пробела.
Консоль, по моему, отличается от оконного приложения только тем, что у неё нет графического окна. Соответственно ввод/вывод только текстовый. Впрочем, в этой теории я сам не силён. Delphi изучал самостоятельно. Пока писал пост, увидел, что ты уже разобрался. Но на будущее - сразу пиши, что за ошибка. О другом сейчас в личку напишу.
0
|
|
|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
||
| 07.06.2012, 23:55 [ТС] | ||
|
Кстати я тоже самоучка. Раньше (когда был zx Spektrum), изучал бейсик.
0
|
||
|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
||||||||||||||||
| 09.06.2012, 21:04 [ТС] | ||||||||||||||||
|
С директориями какая то прям беда
Вот нашел подробно 'Пример кода.'
Описание Savedialog1 кнопки:
После нажатия OK продолжает работу. И выпадает при первом обращении к не существующей директории?
0
|
||||||||||||||||
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
||||||
| 09.06.2012, 21:20 | ||||||
|
Так сразу проверяй, спрашивай - "Создать?" и создавай:
Не по теме: Ты уже приехал?
0
|
||||||
|
4 / 4 / 0
Регистрация: 27.05.2012
Сообщений: 174
|
||||||
| 09.06.2012, 23:16 [ТС] | ||||||
|
Не по теме: Ты уже приехал? Не по теме: Я завтра в 20:00 только уезжаю:) Добавлено через 1 час 42 минуты
Ошибка [Error] Unit1.pas(62): Incompatible types Кстати, сейчас порылся по интернету, не каких похожих объяснений не встретил. Скорей всего надо искать ответ в исходниках.
0
|
||||||
|
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
|
|
| 09.06.2012, 23:18 | |
|
Насчёт Busy.
Там эта переменная устанавливается в True в начале разрезания. Надпись на кнопке - становится "остановить". При повторном щелчке по этой же кнопке в коде вначале проверяется, если Busy равен True - тогда он устанавливается в False и выход. При этом произойдёт возврат к выполнению разрезания. Т.е. при нажатии кнопки выполнение какого-либо кода прерывается обрабатывается событие Click кнопки, а потом происходит возврат к выполнению предыдущего кода. В цикле разрезания стоит выход из цикла, если Busy становится равным False. А он станет таким после повторного щелчка на кнопке. Произойдёт выход из цикла и завершение разрезания. При нормальном завершении разрезания тоже Busy устанавливается равным False и восстанавливается надпись на кнопке. Абсолютно то же самое можно сделать и для склеивания.
0
|
|
| 09.06.2012, 23:18 | |
|
Псевдо-вирус (Delphi глазами хакера ) Можно ли загружать файлы из архивов? Нужен компонент для создания архивов Помогите понять формат игровых архивов и карт Bash-распаковщик архивов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|