Название: QChar to Hex Отправлено: berik.kz от Октябрь 02, 2009, 13:09 Здравствуйте.
Как можно считать с файла(in.txt) символы(µbX3ђ•C?Е- »F[уоBњAёХя¦„) и выложить их в файл(out.txt) виде Hex(b562 и т.п) Проблема следующая.Когда я начинаю считывать каждый символ и загоняю его в QByteArray,то в QByteArray он неправильно(если не распознал,то символ=?) отображается,а,следовательно при использовании метода toHex() он неправильно выводит в out.txt Если считываю каждый символ и загоняю в QStringList,то все нормально,но не могу перевести символы в HEX. Как быть? :'( Код: in_file.open(QIODevice::ReadOnly); результат : arr "µ" "X" "ђ" "•" выводить правильно,но не знаю как перевести каждый символ в HEX ba µ X ? ? выводить неправильно символы. Название: Re: QChar to Hex Отправлено: spirit от Октябрь 02, 2009, 13:19 см. QString::toInt, второй параметр метода -- это система исчисления.
Название: Re: QChar to Hex Отправлено: berik.kz от Октябрь 02, 2009, 13:35 Не совсем понятно ;D
Как можно из символа 'µ' перевести в hex использую метод QString::toInt(bool *ok,int base_type) ? Код: bool ok; Result 0 Название: Re: QChar to Hex Отправлено: spirit от Октябрь 02, 2009, 13:38 char к int привести нельзя разве?
к тому же есть метод QChar::unicode. Название: Re: QChar to Hex Отправлено: shadone от Октябрь 02, 2009, 13:57 зачем в данном случае промежуточные преобразования в QChar?
Просто читайте из QFile в QByteArray (который просто набор байтов, а не текст) и выводите его в нужном формате. что-то вроде QString result; QTextStream stream(&result); QFile file; // file.open(), etc static const int MaxBytesRead = 1024; while(!file.atEnd()) { QByteArray data = file.read(MaxBytesRead); for(int i = 0; i < data.size(); ++i) { stream << QString::number(data.at(i), 16); } } Название: Re: QChar to Hex Отправлено: BRE от Октябрь 02, 2009, 14:07 Или
Код
Но если объемы файлов данных большие, то несомненно лучше данные обрабатывать chunk'ами. |