Работа с файлом в шестнадцатеричном виде

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Den
Сообщения: 62
Зарегистрирован: 09 сен 2004, 15:10

Привет всем!!!

Есть файл, в шестнадцатеричном виде. В нем зашита всякая лабуда, но в том числе информация на кирилице, в частности Ф.И.О. человека. Как её можно оттуда достать, перекодировать или что ... Т.е. задать имя этого файла и в поле вывести, например, Иванов Иван Иванович и т.д.

С уважением, Den!
Аватара пользователя
WinMain
Сообщения: 929
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

Уточни вопрос. Этот файл бинарный или текстовый, в котором каждый байт представлен шестнадцатеричным числом? Чем ты его просматриваешь?
Den
Сообщения: 62
Зарегистрирован: 09 сен 2004, 15:10

Уточняю. Файл с расширением *.cer, информация просматривается в текстовом виде. Открываю его программой для просмотра в шестнадцатиричном виде. Точнее говоря, в Visual C++ 6.0 кликаю на нем 2 раза и он откравается в шестнадцатиричном виде. Приказано написать программу, что бы информация которая видна при простом открытии, вытаскивалась в поля диалогового окна, а сделать это можно только работая с файлом в шестнадцатиричном виде (среда Visual C++ 6.0). Хотя, конечно, много программ для просмотра в шестнадцатиричном виде.

Заранее благодарен! С уважением, Den!

P.S. Если опять, что не так отписал, то переспросите.
Аватара пользователя
WinMain
Сообщения: 929
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

Если этот файл открыть обычным текстовым редактором, например Блокнотом, то содержимое файла будет выглядеть как нормальный текст или же текст в перемешку с бинарными данными в виде непонятных символов?
Если это бычный текст, то в зависимости от самого текста нужно будет написать некоторый алгоритм, который парсит текстовые строки и достаёт из них нужную информацию.
А если это бинарный файл, то нужно будет разобраться в структуре хранимых данных, знать её поля и смещения, чтобы потом правильно получать данные из этой структуры.
Den
Сообщения: 62
Зарегистрирован: 09 сен 2004, 15:10

Это бинарный файл.
Как разобраться в структуре хранимых данных, что бы знать её поля и смещения? Понимаю, без наличия файла сложно ответить, но может быть есть какие-то общие моменты или что-то в этом роде?
Заранее благодарен! С уважением, Den!
Аватара пользователя
WinMain
Сообщения: 929
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

Расширение файла "*.cer" мне, к сожалению, ни о чём не говорит.
Разгадку бинарного файла нужно искать прежде всего в самом приложении, которое его записывает на диск, а потом читает. Ведь прежде чем данные попали в файл, их наверно кто-то туда ввёл с помощью соответствующей программы, либо запросил из какой-то базы данных. Зная, какие данные пользователь вводит в данную программу, можно предположить, что примерно будет записываться в файл на диск. Ну а дальше уже подключай собственную интуицию. Если в бинарном файле текстовые данные следуют с одной и той же периодичностью, то это значит, что записывается в файл некая жёсткая структура и там уже можно попытаться найти её начало и конец. Если периодичность не постоянная, а зависит от длины текстовой строки, то скорее всего данные были записаны с помощью сериализации - это в MFC применяется такой способ хранения данных в файлах. В таких случаях обычно перед текстовой строкой в бинарном виде указывается её длина. Есть и другие способы храниния данных, например структурированные хранилища. Для них придётся использовать функции OLE.
Den
Сообщения: 62
Зарегистрирован: 09 сен 2004, 15:10

WinMain! Спасибо за помощь!
Ответить