|
4 / 5 / 0
Регистрация: 14.06.2020
Сообщений: 121
|
|||||||||||
Корректное определение конца бинарного файла30.03.2026, 10:09. Показов 4967. Ответов 60
Доброго дня, коллеги.
Понял, что практически не работал с "сырыми" бинарниками, в основном писал/читал структурки и поля известной длины, а по файлу перемещался с помощью fseek(). Поэтому никогда не возникало необходимости в детектировании конца файла. В общем, время пришло... Обычно читаю вот этим (знаю что неоптимальна):
0
|
|||||||||||
| 30.03.2026, 10:09 | |
|
Ответы с готовыми решениями:
60
Создание бинарного дерева из бинарного файла
|
|
658 / 411 / 76
Регистрация: 21.09.2008
Сообщений: 1,412
|
||
| 02.04.2026, 18:06 | ||
0
|
||
|
Заблокирован
|
|||
| 02.04.2026, 18:12 | |||
0
|
|||
|
Злостный нарушитель
10893 / 5829 / 1288
Регистрация: 12.03.2015
Сообщений: 26,896
|
||
| 02.04.2026, 18:17 | ||
|
Напоминаю, тем, кто забыл, с чего всё начиналось:
0
|
||
|
Злостный нарушитель
10893 / 5829 / 1288
Регистрация: 12.03.2015
Сообщений: 26,896
|
||||||
| 02.04.2026, 18:22 | ||||||
|
ИИ гугла выдало такой код:
0
|
||||||
|
1518 / 533 / 78
Регистрация: 22.09.2023
Сообщений: 1,696
|
|||
| 02.04.2026, 18:27 | |||
|
0
|
|||
|
Злостный нарушитель
10893 / 5829 / 1288
Регистрация: 12.03.2015
Сообщений: 26,896
|
|
| 02.04.2026, 18:32 | |
|
0
|
|
|
Заблокирован
|
||||||||||
| 02.04.2026, 19:00 | ||||||||||
Сообщение было отмечено Hexpitlel как решение
РешениеЧто бы определить конец бинарного файла, нужно попытаться прочитать данные за концом файла. Конкретно на счёт маркера конца файла и функции чтения fread.
Добавлено через 8 минут В данном случае, вероятно, ТС нужен велосипед для обработки ошибок чтения. Вероятно он читает заранее неопределенное количество записей. Конец файла в текущем контексте - это и есть одна из ошибок чтения. Вот эту ошибку ему и нужно корректно обработать. А что он делает своими функциями в шапке, моя глупая голова не понимать.
1
|
||||||||||
|
Злостный нарушитель
10893 / 5829 / 1288
Регистрация: 12.03.2015
Сообщений: 26,896
|
|||
| 02.04.2026, 19:27 | |||
fread. Передвинуть указатель - это не есть попытка прочитать данные.
0
|
|||
|
Заблокирован
|
||
| 02.04.2026, 19:49 | ||
|
Verevkin,
![]() Нужно было мне какой-то разделитель там поставить, угу
0
|
||
|
371 / 227 / 53
Регистрация: 18.10.2017
Сообщений: 2,436
|
|
| 02.04.2026, 20:24 | |
|
Я как-то не имел привычки пользоваться fread(), тем более, что речь идёт о бинарных файлах. Всегда устраивали open() и read().
0
|
|
|
Заблокирован
|
|
| 02.04.2026, 20:53 | |
|
0
|
|
|
Заблокирован
|
|
| 02.04.2026, 21:30 | |
|
А давайте ТСа дождемся, и поймем-таки, сколько углов должно быть в колесах его велосипеда, приводимого в движение костылями!
1
|
|
|
4 / 5 / 0
Регистрация: 14.06.2020
Сообщений: 121
|
||
| 03.04.2026, 19:58 [ТС] | ||
|
Добавлено через 1 минуту Где вообще можно взглянуть чего там у fread() под капотом?
0
|
||
|
Заблокирован
|
|||||
| 03.04.2026, 20:37 | |||||
|
Но, в очередной раз, задаюсь вопросом: зачем использовать буферизованные операции в подобных случаях? Здесь сразу напрашивается просто открыть при помощи open, а потом при помощи read прочитать! Добавлено через 47 секунд
0
|
|||||
|
4 / 5 / 0
Регистрация: 14.06.2020
Сообщений: 121
|
|
| 03.04.2026, 20:44 [ТС] | |
|
Verevkin, Вариант с fseek() - тоже вариант, я о нем знаю, но вся эта последовательность "открыть, перейти в конец, взять значение, закрыть" у меня вызывает отвращение. Но рабочий вариант, безусловно.
0
|
|
|
Заблокирован
|
|||
| 03.04.2026, 20:51 | |||
Сообщение было отмечено Hexpitlel как решение
РешениеНо зачем? Есть контракт : https://en.cppreference.com/w/c/io/fread.html И пример основан на этом же источнике. Добавлено через 1 минуту Ты смешной. Eddy_Em, ты пропустил слово "then", плохой с тебя чекер.
0
|
|||
|
Заблокирован
|
|
| 03.04.2026, 20:53 | |
|
0
|
|
|
Заблокирован
|
||
| 03.04.2026, 20:56 | ||
|
Где он в коде? Тогда перейди по ссылке для fread и feof и перечитай ещё раз. https://onlinegdb.com/t_vrL0Syo
0
|
||
|
Заблокирован
|
||||||||||||||||||||||
| 03.04.2026, 21:00 | ||||||||||||||||||||||
|
Ну, я сам — дятел. Потому как никогда не пользовался
fread, и уж, тем паче — feof. Даже для сугубо текстовых файлов: либо mmap, либо обычный read. Но, действительно:
Добавлено через 1 минуту
0
|
||||||||||||||||||||||
|
Заблокирован
|
|||
| 03.04.2026, 21:02 | |||
|
0
|
|||
| 03.04.2026, 21:02 | |
|
Определение конца файла определение конца файла
Определение конца файла , файл задан классом string Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|