|
2 / 2 / 0
Регистрация: 11.07.2012
Сообщений: 6
|
|
Разбор бинарного файла23.01.2013, 15:33. Показов 5993. Ответов 9
Метки нет (Все метки)
Добрый день. Пытаюсь прочитать бинарный файл с информацей об станционных измерениях нагрузки. Структура проблизительно такова: первые 6 байт (03 00 00 00 00 00) обозначают начало нового измерения, потом 2 байта не знаю что, затем 6 байт собственно название измерения, далее дата-время и потом сами данные измерений. Затем цикл повторяется, причем длина данных измерений(цикла) разная. Информация по этой теме, которую перечитал, ничего путнего не подсказала. Обычно примеры ограничиваются элементарными операциями записи-чтения в бинарник, без анализа данных и т.п. Прочитал про сериализацию, идея нравится, но как её сюда применить не знаю. Возможно есть и другие красивые решения. Не хочется думать, что единственный выход - это тупой перебор.
Собственно прошу направить в нужное русло(идею). Если ещё и с примером кода, то вообще шикарно. Бинарный файл прилагаю. Спасибо.
0
|
|
| 23.01.2013, 15:33 | |
|
Ответы с готовыми решениями:
9
Разбор бинарного изображения в качестве массива из 0 и 1
Создание бинарного дерева из бинарного файла |
|
Почетный модератор
|
||||||
| 23.01.2013, 19:31 | ||||||
1
|
||||||
|
2 / 2 / 0
Регистрация: 11.07.2012
Сообщений: 6
|
|
| 24.01.2013, 15:37 [ТС] | |
|
Спасибо огромное. Работает. Полностью понять код мне не по силам, уровень не тот. Вопросов много, наберусь наглости некоторые задать. Понятно, что результаты пишутся в массив "list.Add(unknownData)", непонятно как к ним получить доступ. Допустим, что должно быть в скобках "richTextBox1.AppendText(?????)"?
Можно в массив сразу писать десятичные числа, а не unknownData.BinaryData? Меня они в основном и интересуют. Возможно мои вопросы покажутся детскими, но к сожалению время и уровень не позволяют мне самостоятельно разобраться. Еще раз спасибо.
0
|
|
|
Почетный модератор
|
|||||||||||||||||
| 24.01.2013, 17:35 | |||||||||||||||||
Если Byte, то получить значение можно так:
p.s. Подозреваю что значения хранятся либо как Byte, либо как Int16, т.к. длина данных не всегда кратна 4 (размер Int32).
1
|
|||||||||||||||||
|
2 / 2 / 0
Регистрация: 11.07.2012
Сообщений: 6
|
||||||
| 29.01.2013, 13:16 [ТС] | ||||||
|
Всё таки хочу добить тему. Сначала не обратил внимание, а дата то выводится не та (06.08.0012 8:45:08). Думаю это из-за того, что для даты-времени анализируется 8 байт, а нужно 12. Обыскал интернет, решения не нашёл, вообще эта тема задвинута почему-то. Как бы Вы решили эту задачу?
Спасибо. P.S. Пробовал так:
0
|
||||||
|
Почетный модератор
|
|||
| 29.01.2013, 14:41 | |||
|
Желательно знать какая/как дата записывалась, иначе можно долго гадать. Добавлено через 43 минуты Если это значение даты "15:06:40 30.04.1992" похоже на реальность, то могу переписать код...
0
|
|||
|
2 / 2 / 0
Регистрация: 11.07.2012
Сообщений: 6
|
|
| 29.01.2013, 15:00 [ТС] | |
|
Я точно знаю дату и время создания файла: 15.01.13 11:15 и это соответствует диапазону с 21 байта (0хD)-год по 30-й (0хF)-минуты. То, что следующие 2 байта секунды - не уверен.
0
|
|
|
Почетный модератор
|
||||||
| 29.01.2013, 15:17 | ||||||
|
Структура приблизительно такая:
?? - неизвестные данные (не разбирался), вроде как везде повторяются (00 00 00 00 2A 00) YY - год MM - месяц DD - день HH - час mm - минуты SS - возможно секунды, т.к. везде присустсвуют (позже, может, посмотрю точнее), а возможно и нет, т.к. всегда одно значение (04 00 00 00) - слишком много для секунд. Потом данные всегда разные. Код написать пока нет возможности... Добавлено через 7 минут Можно узнать откуда эти файлы берутся (что за программа)? И если еще есть файлы, то было-бы неплохо их посмотреть (1-2 файла должно хватить).
0
|
||||||
|
2 / 2 / 0
Регистрация: 11.07.2012
Сообщений: 6
|
|
| 29.01.2013, 15:59 [ТС] | |
|
Это файл станционных измерений нагрузки трафика. Нагрузка меряется с периодом 15 минут. Формируются или станцией, или прикрученной к ней программой. Точно не скажу. Получил наследство без особого описания, приходится разбираться самому. Есть текстовый файл с готовыми результатами, но мне нужен свой парсер. В приложении 2 бинарника и текстовый, в нем все 15-минутки за текущие сутки. Последние 6 строк - это содержимое прилагаемых бинарников.
0
|
|
|
Почетный модератор
|
||||||||||||||||
| 29.01.2013, 22:42 | ||||||||||||||||
|
В общем вот что пока получилось выяснить:
Всё вместе в архиве:
2
|
||||||||||||||||
| 29.01.2013, 22:42 | |
|
Помогаю со студенческими работами здесь
10
Внешняя сортировка бинарного файла (чтение после конца файла невозможно) Получение хеша бинарного файла сборки для выполняемого apk-файла Чтение нескольких структур и одной переменной из бинарного файла. Формат файла имеется Разбор файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|