Название: Чтение двоичного файла (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. ЗЫ: Подобные проблемы рассмотрены в разделе "Интернационализация, локализация" |