|
1 / 1 / 0
Регистрация: 06.08.2008
Сообщений: 55
|
||||||
Некорректно читаются данные из бинарного файла30.08.2012, 01:00. Показов 9589. Ответов 29
Метки нет (Все метки)
столкнулся с такой проблемой и не могу найти ей объяснение.
есть код читающий содержимое двоичного файла:
появление символов '\n' там где их в реале нет! при записи содержимого переменной в файл, обнаружил закономерность: символ '\n' , 0D в шестнадцатиречиной системе, появляется только перед символом 0A который непечатаемый, но в файле есть! и после чтения из файла bytef становится больше на добавленное количество символов! сделал цикл вырезающий '\n' перед 0А, но при записи в файл у меня '\n' начало затирать байты перед 0А вобще бред какой-то... пробовал читать из файла и писать разными методами (read, fread) и в разные переменные просто мистика какая-то...
0
|
||||||
| 30.08.2012, 01:00 | |
|
Ответы с готовыми решениями:
29
Не читаются данные из txt-файла Не читаются данные из файла
|
|
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||
| 31.08.2012, 09:52 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
|
| 01.03.2018, 02:29 | |
|
У меня аналогичная проблема. Утилитка производит чтение размера из файла по такому-то адресу.
Размер файла естесственно записан в хейдере в бинарном виде = 0AFB0150. Утилитка считывает эти данные из файла и пишет эти же данные в другой файл на выходе. И что странно, все файлы различных размеров записываются корректно, а вот если размер начинается с 0A, как в данном примере, то спереди добавляется 0D. И количество байт становится больше на 1, что приводит к неработоспособности бинарного файла.
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
|
|
| 01.03.2018, 02:49 | |
|
ErikPshat, значит ты не в бинарном режиме открываешь файл, а в текстовом.
1
|
|
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
|
| 01.03.2018, 04:08 | |
|
Не могли бы вы мне помочь исправить эту неприятность?
Во вложение я положил 2 небольших демо-файла, у которых размер начинается с 0A Простейшая утилитка с одним маленьким исходником и готовая консольная. Она не поддерживает drag&drop, но тоже хотелось бы чтоб помогли. Можете попробовать через консоль натравить эти демо на утилитку и на выходе появится папка с тремя файлами. Там размеры прописываются в двух функциях друг за другом:
0
|
|
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 01.03.2018, 04:28 | |
|
ErikPshat, там нигде режим не указан вообще.
Всюду, где fopen(..., "r") и fopen(..., "w") нужно поставить fopen(..., "rb") и, соответственно, fopen(..., "wb")Добавлено через 2 минуты То есть, добавить в строку буквочку b - бинарный режим
1
|
|
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
|
| 01.03.2018, 04:43 | |
|
Black Fregat, о, спасибо большое! Проверил, теперь всё работает.
Я понял, т.е. rb - read byte, wb - write byte. То есть идёт указание именно на чтение и запись бинарного кода. А ещё по ходу не могли бы подсказать по поводу Drag & Drop? Чтобы просто кидать файл на экзешник. Я пытался и так и эдак, но никак не получается, одни ругательства )))
0
|
|
|
Фрилансер
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
| 01.03.2018, 12:50 | |
|
Какие ругательства? Прямо так должно работать, "из коробки", ничего менять не надо
0
|
|
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
|||||||||||
| 01.03.2018, 20:28 | |||||||||||
|
Black Fregat, ой, прошу прощения, ввёл в заблуждение.
Функция "drag and drop" по факту работает. Это я что-то запамятовал. И вроде она как положено выполняется, то есть, подставляет в аргумент "Полный путь". Я так понимаю это здесь
То есть, нужно обрезать путь и при записи оставить только название. Я думаю это что-то нужно химичить здесь в argv[1]:
Добавлено через 3 часа 37 минут Ну так что, это не реально отрезать путь из аргумента argv[1]? В батнике я знаю, что это довольно просто отрезать от полного пути %%~dpni только имя файла типа так %%~ni. А вот в С++ до меня это как-то сложно доходит.
0
|
|||||||||||
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,430
|
|
| 01.03.2018, 21:50 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 26.08.2016
Сообщений: 76
|
|
| 02.03.2018, 01:22 | |
|
0
|
|
| 02.03.2018, 01:22 | |
|
данные из файла считываются некорректно
Как считать данные из бинарного файла в массив ArrayList
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|