Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > как прочитать каждый байт из файла в hex


Автор: Sane 28.3.2006, 11:58
Мне нужно прочитать каждый байт файла перевести в hex для сравнивания с каким нить значением, скажем 1Bh, как можно это сделать?
Кстате когда читаю файл таким способом(см. ниже), файл из 17 500 байт читается только первые 150 символов а потом конец файла smile
FILE *stream;
char ch_;
fopen(OpenDialog->FileName.c_str(),"r");
fseek(stream,0,0);
do
{
ch_ = fgetc(stream);
Memo1->Lines->Add(ch_);
count++;
}while (ch_ != EOF);
fclose(stream);

Автор: sh1z1k 28.3.2006, 12:11
открывай фаил в режиме "rb", и байт записывай не в char а в int, а потом переводи полученное десятичное число в шеснадцатиричное.

Автор: Romikgy 28.3.2006, 12:51
Код

FILE *stream;
char ch_;
fopen(OpenDialog->FileName.c_str(),"rb");
fseek(stream,0,0);
do
{
ch_ = fgetc(stream);
Memo1->Lines->Add(IntToHex((unsigned int)ch_,2));
count++;
}while (ch_ != EOF);
fclose(stream); 


имхо правда лучше в строку выводить по 16 или 8 байт

Автор: Sane 28.3.2006, 13:09
Спасибо за ответы!!!
Разабрался, все получилось smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)