Привет всем!!!
Есть файл, в шестнадцатеричном виде. В нем зашита всякая лабуда, но в том числе информация на кирилице, в частности Ф.И.О. человека. Как её можно оттуда достать, перекодировать или что ... Т.е. задать имя этого файла и в поле вывести, например, Иванов Иван Иванович и т.д.
С уважением, Den!
Работа с файлом в шестнадцатеричном виде
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Уточни вопрос. Этот файл бинарный или текстовый, в котором каждый байт представлен шестнадцатеричным числом? Чем ты его просматриваешь?
Уточняю. Файл с расширением *.cer, информация просматривается в текстовом виде. Открываю его программой для просмотра в шестнадцатиричном виде. Точнее говоря, в Visual C++ 6.0 кликаю на нем 2 раза и он откравается в шестнадцатиричном виде. Приказано написать программу, что бы информация которая видна при простом открытии, вытаскивалась в поля диалогового окна, а сделать это можно только работая с файлом в шестнадцатиричном виде (среда Visual C++ 6.0). Хотя, конечно, много программ для просмотра в шестнадцатиричном виде.
Заранее благодарен! С уважением, Den!
P.S. Если опять, что не так отписал, то переспросите.
Заранее благодарен! С уважением, Den!
P.S. Если опять, что не так отписал, то переспросите.
Если этот файл открыть обычным текстовым редактором, например Блокнотом, то содержимое файла будет выглядеть как нормальный текст или же текст в перемешку с бинарными данными в виде непонятных символов?
Если это бычный текст, то в зависимости от самого текста нужно будет написать некоторый алгоритм, который парсит текстовые строки и достаёт из них нужную информацию.
А если это бинарный файл, то нужно будет разобраться в структуре хранимых данных, знать её поля и смещения, чтобы потом правильно получать данные из этой структуры.
Если это бычный текст, то в зависимости от самого текста нужно будет написать некоторый алгоритм, который парсит текстовые строки и достаёт из них нужную информацию.
А если это бинарный файл, то нужно будет разобраться в структуре хранимых данных, знать её поля и смещения, чтобы потом правильно получать данные из этой структуры.
Это бинарный файл.
Как разобраться в структуре хранимых данных, что бы знать её поля и смещения? Понимаю, без наличия файла сложно ответить, но может быть есть какие-то общие моменты или что-то в этом роде?
Заранее благодарен! С уважением, Den!
Как разобраться в структуре хранимых данных, что бы знать её поля и смещения? Понимаю, без наличия файла сложно ответить, но может быть есть какие-то общие моменты или что-то в этом роде?
Заранее благодарен! С уважением, Den!
Расширение файла "*.cer" мне, к сожалению, ни о чём не говорит.
Разгадку бинарного файла нужно искать прежде всего в самом приложении, которое его записывает на диск, а потом читает. Ведь прежде чем данные попали в файл, их наверно кто-то туда ввёл с помощью соответствующей программы, либо запросил из какой-то базы данных. Зная, какие данные пользователь вводит в данную программу, можно предположить, что примерно будет записываться в файл на диск. Ну а дальше уже подключай собственную интуицию. Если в бинарном файле текстовые данные следуют с одной и той же периодичностью, то это значит, что записывается в файл некая жёсткая структура и там уже можно попытаться найти её начало и конец. Если периодичность не постоянная, а зависит от длины текстовой строки, то скорее всего данные были записаны с помощью сериализации - это в MFC применяется такой способ хранения данных в файлах. В таких случаях обычно перед текстовой строкой в бинарном виде указывается её длина. Есть и другие способы храниния данных, например структурированные хранилища. Для них придётся использовать функции OLE.
Разгадку бинарного файла нужно искать прежде всего в самом приложении, которое его записывает на диск, а потом читает. Ведь прежде чем данные попали в файл, их наверно кто-то туда ввёл с помощью соответствующей программы, либо запросил из какой-то базы данных. Зная, какие данные пользователь вводит в данную программу, можно предположить, что примерно будет записываться в файл на диск. Ну а дальше уже подключай собственную интуицию. Если в бинарном файле текстовые данные следуют с одной и той же периодичностью, то это значит, что записывается в файл некая жёсткая структура и там уже можно попытаться найти её начало и конец. Если периодичность не постоянная, а зависит от длины текстовой строки, то скорее всего данные были записаны с помощью сериализации - это в MFC применяется такой способ хранения данных в файлах. В таких случаях обычно перед текстовой строкой в бинарном виде указывается её длина. Есть и другие способы храниния данных, например структурированные хранилища. Для них придётся использовать функции OLE.
WinMain! Спасибо за помощь!