![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброго времени суток.
Есть два архива с форматами Zip и V Конвертер(бинарник консольного приложения у меня есть), но нужно написать обратный конвертер. Файлы легко конвертируются вручную, через Hex редактор. Но на ручную конвертацию больших архивов уйдет целая вечность. Отличия между Zip и V лишь одна: Это цифры в ячейках: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 0 в V это 5 1 это 4 2 - 7 3 - 6 4 - 1 5 - 0 6 - 3 7 - 2 8 - D 9 - C A - F B - E C - 9 D - 8 E - B F - A Нужно чтобы программа прошла по каждой ячейке и провела замену. Или может есть еще какой-нибудь альтернативный способ быстрой замены? |
#2
|
|||
|
|||
![]() Загрузить файл как бинарный (или File Of Byte) и менять. Потом сохранять.
|
#3
|
|||
|
|||
![]() Цитата:
На счет файлов я умею только текстовые файлы используя Open Dialog открыть, сохранять... А загружать, как бинарный или какой-нибудь еще - ниразу не сталкивался и команд к сожалению по данной теме не знаю. |
#4
|
||||
|
||||
![]() Ну примерно так:
Код:
Const ZipToV: Array[0..15] of Byte = (5,4,7,6,1,0,3,2,$D,$C,$F,$E,9,8,$B,$A); Var V,Zip: File of byte; B: Byte; begin AssignFile(Zip, 'Input.zip'); Reset(Zip); AssignFile(V, 'Output.v'); Rewrite(V); while not Eof(Zip) do begin Read(Zip, B); Write(V, ZipToV[b]); end; CloseFile(V); CloseFile(Zip); end. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 18.01.2011 в 19:20. |
#5
|
|||
|
|||
![]() Цитата:
Переписал немного программу: Код:
procedure TForm3.Button2Click(Sender: TObject); Const ZipToV: Array[0..15] of Byte = (5,4,7,6,1,0,3,2,$D,$C,$F,$E,9,8,$B,$A); Var V: File of byte; B: Byte; begin AssignFile(V, '1.v'); Reset(V); while not Eof(V) do begin Read(V, B); case B of 0:Write(V, ZipToV[0]); 1:Write(V, ZipToV[1]); 2:Write(V, ZipToV[2]); 3:Write(V, ZipToV[3]); 4:Write(V, ZipToV[4]); 5:Write(V, ZipToV[0]); 6:Write(V, ZipToV[6]); 7:Write(V, ZipToV[7]); 8:Write(V, ZipToV[8]); 9:Write(V, ZipToV[9]); $A:Write(V, ZipToV[10]); $B:Write(V, ZipToV[11]); $C:Write(V, ZipToV[12]); $D:Write(V, ZipToV[13]); $E:Write(V, ZipToV[14]); $F:Write(V, ZipToV[15]); end; end; CloseFile(V); end; end. http://s39.radikal.ru/i083/1101/52/27d51aa8cee1.jpg Стало после работы программы: http://s013.radikal.ru/i325/1101/b2/8d133f5e259a.jpg Но мне нужно, чтобы проверяло каждую цифру: Например(см первый скрин) Программа начинается на: 05 1E 56 51 41 55 55 55 и так далее... После работы программы должно быть: 50 4B 03 04 14 00 00 00 и так далее... В чем может быть проблема? |