Russian Qt Forum

Qt => Общие вопросы => Тема начата: timur85 от Июнь 14, 2007, 16:29



Название: Чтение двоичного файла (ANSI-строки)
Отправлено: timur85 от Июнь 14, 2007, 16:29
Помогите пожалуйста решить вот такую проблему...
Считываю двоичный файл...
QFile file(fileName);
   file.open(QIODevice::ReadOnly);
   QDataStream fbuf(&file);
int var;
fbuf >> var;
и т.д.

Пока дело идет с полями,которые содержат целые числа в 4 байтах, все в порядке. Но в некоторых местах содержаться поля в формате ANSI (как указано). Считать такую строку не получилось (пробовал использовать класс QString). :?:


Название: Чтение двоичного файла (ANSI-строки)
Отправлено: pastor от Июнь 14, 2007, 17:09
Если знаешь длину ANSI строки, попробуй применить readRawData. Или читай порциями при помощи этого метода, или вычитывай строки. Можно применить QDataStream::operator>> ( char *& s ), имхо


Название: Чтение двоичного файла (ANSI-строки)
Отправлено: Racheengel от Июнь 14, 2007, 19:10
ANSI - это с 0 в конце? побайтово надо читать и на 0 проверять.


Название: Чтение двоичного файла (ANSI-строки)
Отправлено: pastor от Июнь 14, 2007, 19:14
Цитата: "Racheengel"
ANSI - это с 0 в конце? побайтово надо читать и на 0 проверять.


Помоему QDataStream::operator>> ( char *& s ) это и делает


Название: Чтение двоичного файла (ANSI-строки)
Отправлено: timur85 от Июнь 14, 2007, 23:15
Спасибо.Считал с помощью readRawData,т.к знаю точно размер поля, но вместо слов на русском, выводится абра- кадабра  :( . Каким образом преобразовать? Не подскажите?

добавлено спустя 13 минут:

 Есть в winapi функция CharToOem или что то похожее, есть вроде и в стандартной библиотеке, но она косячит с русским. Как быть?


Название: Re: Чтение двоичного файла (ANSI-строки)
Отправлено: pastor от Январь 14, 2008, 01:03
Цитировать
Спасибо.Считал с помощью readRawData,т.к знаю точно размер поля, но вместо слов на русском, выводится абра- кадабра   . Каким образом преобразовать? Не подскажите?

Попробуй заюзать QTextCodec::setCodecForCStrings.

ЗЫ: Подобные проблемы рассмотрены в разделе "Интернационализация, локализация"