Название: вывод hex файла Отправлено: ivan10msk от Февраль 05, 2021, 17:09 Здравствуйте!
Подскажите пожалуйста простое решение как мне создать hex файл. Нужно грубо говоря значение счётчика в hex виде выводить в файл Спасибо! Название: Re: вывод hex файла Отправлено: Mikhail от Февраль 05, 2021, 18:34 Что это такое hex файл?
Не знаю такого. Файл - это набор байт и не более. Другое дело что можно просто выводить текстовые данные в файл, а можно бинарные. Но все равно это набор байт. Пример: 1) текстовое представление 07 a1 c5 <перевод строки> 11 a7 bа <перевод строки> 2) бинарное представление 07a1c511a7ba Название: Re: вывод hex файла Отправлено: tux от Февраль 06, 2021, 14:11 Если я правильно понял вопрос, то можно так:
Код: int cnt = 500; P.S. Если не нравится, что это не то, что выдаёт калькулятор (байты переставлены местами), то тут могу посоветовать почитать индейцев. :) При обратном преобразовании на той же машине получится 500. Название: Re: вывод hex файла Отправлено: ivan10msk от Февраль 06, 2021, 15:58 Спасибо большое!!
Да, именно бинарное, подскажите пожалуйста а как запихнуть этот массив в файл и его создать ? Название: Re: вывод hex файла Отправлено: tux от Февраль 06, 2021, 16:38 Опять гадать приходится. :)
Какой массив? Вы же хотели "счётчик в hex виде" - я вам показал, как сделать строку, содержающую это hex значение. Открываете файл на запись, записываете эту строку туда, закрываете файл - победа! Это - один из вариантов. Можно ещё проще Код: QString temp = QString("%1").arg(cnt, 8, 16, QChar('0')); Название: Re: вывод hex файла Отправлено: ivan10msk от Февраль 06, 2021, 18:51 Спасибо за поддержку!
Я имел ввиду создание файла в итоге после исполнения программы Нужен на выходе файл с содержанием бинарного градиента, который не нужно набивать в ручную) Название: Re: вывод hex файла Отправлено: tux от Февраль 06, 2021, 21:18 Так в документации же есть
Код: QFile file("out.txt"); Название: Re: вывод hex файла Отправлено: ivan10msk от Февраль 07, 2021, 20:14 Спасибо, получилось в итоге со Qtextstrem почти то что хотелось
https://dropmefiles.com/EcDdk Проблема в том что когда я пытался сделать на QFile я никак не смог справиться с ошибкой при компиляции Ошибка: no matching function for call to 'QFile::write Сейчас все так но формат не тот. Нужно чтобы было вот так: 00010002000300040005...027D027E027F 00010002000300040005...027D027E027F .. 00010002000300040005...027D027E027F Т.е каждое хекс представление должно быть 2-х байтное, сначала идет старший потом младший Название: Re: вывод hex файла Отправлено: tux от Февраль 07, 2021, 20:33 Я вам показал аж 2 варианта: с большим индийцем и с маленьким. Выбирайте, какой вам нужен. :)
Или это уже продолжение задачи? Название: Re: вывод hex файла Отправлено: ivan10msk от Февраль 11, 2021, 16:14 Спасибо в итоге разобрался!
Единственное не пойму почему когда делаешь файл через QTextStream данные в шестнадцатиричном виде в far не видятся как хекс и в проводнике размер файла больше ожидаемого в два раза. В блокноте вижу шестнадцатиричном представление. Когда делаешь на основе QDataStream все ок(размер и hex в far), единственное в блокноте наблюдается не шестнадцатиричное представление. Название: Re: вывод hex файла Отправлено: tux от Февраль 11, 2021, 16:30 '01020304' == 0x01020304
Но по размеру первое (строка) будет больше второго в 2 раза. :) Название: Re: вывод hex файла Отправлено: kambala от Февраль 11, 2021, 17:27 Спасибо в итоге разобрался! почитай как хранятся данные в компьютере, что такое байты, что есть строка в С и т.д... тут реально надо азы изучать.Единственное не пойму почему когда делаешь файл через QTextStream данные в шестнадцатиричном виде в far не видятся как хекс и в проводнике размер файла больше ожидаемого в два раза. В блокноте вижу шестнадцатиричном представление. Когда делаешь на основе QDataStream все ок(размер и hex в far), единственное в блокноте наблюдается не шестнадцатиричное представление. Название: Re: вывод hex файла Отправлено: Igors от Февраль 12, 2021, 08:09 Спасибо в итоге разобрался! Единственное не пойму ... Цитировать Вот, товарищи колхозники, вам электричество! Теперь старые керосиновые лампы не нужны, вот здесь включаете - и свет горит. Все ясно? Вы не первый (и не последний) кто действует по принципу "что я теряю?". Подскажут - хорошо, нет - ну ладно. Это корректно - но не продуктивно. Вы теряете время и "на что-то надеетесь". Самостоятельное освоить что такое "символ" и как он связан с "байтом" - гораздо быстрее, да и толку больше- Ясно! А куда керосин заливать? |