![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Хочу написать конвертер бинарного файла, который переводит его на читабельный вид. Есть описание бинарного файла (структура) и сам файл. Не могу понять, как использовать описание этого файла при написании конвертера. С чего оттолкнуться, с чего начать подскажите пожалуйста
|
#2
|
||||
|
||||
![]() для начала можно сделать просмотр в HEX+ASCII-виде, как это делает, например, Total Commander: F3-Options-Hex. вполне читабельно
![]() Пишу программы за еду. __________________ |
#3
|
||||
|
||||
![]() Цитата:
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
||||
|
||||
![]() Есть готовый компон, который тебе представляет файл в стиле WinHEX.
MSHexEdit. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
![]() задача как-то неясно поставлена.
Начать можно например с чтения файла в структуру Например так Код:
type TMyStruct=record <здесь описание структуры> end; var z:TMyStruct; //сюда копируется файл procedure ReadMyStruct(fnam:string); var F:file of TMyStruct; begin assignfile(F,Fnam);reset(F); read(F,z); CloseFile(F); end; а еще рекомендую почитать описание функций BlockRead, BlockWrite, работа с типированными и нетипированными файлами. |
#6
|
||||
|
||||
![]() Цитата:
Берем книгу Льва Толстого и ставим в холодильник. Зачем читать файл в некую структуру? Файл произвольных двоичных данных. Вообще достаточно вычитывать по 16 байт за проход цикла, в array of byte к примеру, после чего в конечный файл записывать эти данные, обработав ф-ей IntToHex. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
||||
|
||||
![]() M.A.D.M.A.N.
Да с чего ты взял что нужно HEX-представление? Есть просто файл и есть описание, сколько байт прочитать для одной переменно сколько для другой и т.д. BlockRead и все. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#8
|
|||
|
|||
![]() И так есть бинарный файл, я написал программку, которая считывает ее. А также есть описание структуры файла, не могу понять как использовать ее, в смысле как написать эту структуру программно. Я так понял описание структуры файла используется чтобы мы правильно прочитали этот файл. Вот вложил описание этого файла.
|
#9
|
||||
|
||||
![]() Итак пойдем плясать от печки:
1. У вас возможны 3 вида файла: IA.ICAMA, IA.ICIAR, IA.ICINA Последние 5 букв видимо расширение по которому вы будете определять тип данных в конкретном файле. Для первого типа файла имеем такое описание: Цитата:
Код:
Type ICAMA = record Data: Array[1..8192] of byte; end; И код для чтения данных записями будет такой: Код:
Type ICAMA = record Data: Array[1..8192] of byte; end; Var F: File of ICAMA; R: ICAMA; begin AssignFile(F, 'c:\IA.ICAMA'); Reset(F); while not Eof(F) do Read(F, R); CloseFile(F); end. ![]() А вот что касается чтения содержимого каждой из записи - это уже скорее всего в работу. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 22.08.2011 в 14:39. |