|
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99
|
||||||||||||||||||||||||||||||||||||
Реализовать разбор двоичного формата данных28.05.2023, 19:58. Показов 2091. Ответов 10
Добрый вечер, уважаемые форумчане.
Есть у меня вот такаязадача - написать код на python (должна быть 1 функция main и только она одна (чокнутое требование препода)) в формате PEP8, который решает задачу: Реализовать разбор двоичного формата данных. Данные начинаются с сигнатуры 0x56 0x42 0x49 0x75, за которой следует структура A. Порядок байт: от старшего к младшему. Адреса указаны в виде смещений от начала данных. В решении предлагается использовать модуль struct. Структура A:
Структура B:
Структура C:
Структура D:
(Прошу прощения, не понял как на форуме таблицы работают, а до сих пор не сталкивался) Ниже показаны примеры разбора двоичного формата. Пример 1: Входные данные: (b'VBIu\x00\x02\x00\x00\x00r?\xb8\x05\xb 4\xc7V!@\xca\x08\xd7bG\x16\xe8\xea\x0bq' b'!\xad?\xc6\x85\xea\xfa\xdc?\x18?\xe6\x b6\xd8u \xaa\xdcz\x9f\xa8\x06\xe3n' b'm\x06\x03\xd7\x1aF\xe4\x8d\xbe\x14B_\x e0\xb2$\xff\xd5\xf9\x05\xc9' b'\xbf\xb6\x9f\xff\r\xb1\xf9\xf0?\xe12v\ xce\xa9\xccV\x1b\x845v\xaf\x83\x0f\xa9' b'%\x13C=\xe9\xdd\x08y\xd1A=\x83\x03\xdb \xe9j\x05a\x90\x1768N\x8e\x0e\xda\x05j' b'\xdd\xdf\x00\x1e.%\x89`\x92m\x92\xdbR\ xa5\xce^\x00H') Выходные данные:
Пример 2: Входные данные: (b'VBIu\x00\x02\x00\x00\x00r\xbf\xedE_\x ff\xc8\xfb\x82s\xe0\x87\x80\x84\xf0' b'\x98\xb0\xb6C\xd9c\xbf[_\x8e\xc0\xd1T\x00\xbf\xec\x8b\x07\x0fMW B\xa4#' b'By\xee\x85\xb0\xccC8J0\xb3\xad\x99\xbc \xa6\xd6\xc5\x84nn\x05\x05\x185' b'?\xd0\xae\x98r\xf4A\xd0?\xe8\xfe\xd1\x a3\t\x95\xa8\xbb\xf6b\x93\x0er\x80\xa5' b"a\xed\x9a\x08h>\\\xa7\xcb6\xca'\xee\xb 5\xddP\xb7H\x85i\xf1\x1a\xb6\xd8" b'\xf1;#_\xb1y\x00\x1e\xe6\xfa\xee\x143| le\xaeE\xb2\x9b\x00H') Выходные данные:
Кликните здесь для просмотра всего текста
но в системе, куда загружаю задачу, он выдает ошибку: Подробные сведения об ошибке: Получено: Входные данные: b'VBIu\x00\x02\x00\x00\x00r?\xb8\x05\xb4 \xc7V!@\xca\x08\xd7bG\x16\xe8\xea\x0bq!\ xad?\xc6\x85\xea\xfa\xdc?\x18?\xe6\xb6\x d8u \xaa\xdcz\x9f\xa8\x06\xe3nm\x06\x03\xd7\ x1aF\xe4\x8d\xbe\x14B_\xe0\xb2$\xff\xd5\ xf9\x05\xc9\xbf\xb6\x9f\xff\r\xb1\xf9\xf 0?\xe12v\xce\xa9\xccV\x1b\x845v\xaf\x83\ x0f\xa9%\x13C=\xe9\xdd\x08y\xd1A=\x83\x0 3\xdb\xe9j\x05a\x90\x1768N\x8e\x0e\xda\x 05j\xdd\xdf\x00\x1e.%\x89`\x92m\x92\xdbR \xa5\xce^\x00H' Сообщение об ошибке интерпретатора: Traceback (most recent call last): File "/home/program.py", line 25, in <module> result = main(*args) File "<string>", line 12, in main struct.error: unpack requires a buffer of 6 bytes Если кто вдруг знает как пофиксить ошибку или может порекомендовать другой способ решения или любую информацию по теме, буду очень сильно благодарен ![]()
0
|
||||||||||||||||||||||||||||||||||||
| 28.05.2023, 19:58 | |
|
Ответы с готовыми решениями:
10
Реализовать разбор двоичного формата данных Реализовать разбор двоичного формата данных Реализовать разбор двоичного формата данных |
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|
| 28.05.2023, 21:22 | |
|
1
|
|
|
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99
|
|
| 28.05.2023, 21:29 [ТС] | |
|
А как ее включить?
0
|
|
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
||||||
| 28.05.2023, 21:31 | ||||||
Сколько нужно?
0
|
||||||
|
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99
|
|
| 28.05.2023, 21:34 [ТС] | |
|
Сейчас он распаковывает 6 байт. Первые 4 байта будут интерпретированы как беззнаковое целое (I), представляющее размер.
Следующие 2 байта будут интерпретированы как беззнаковое короткое целое (H), представляющее адрес
0
|
|
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|
| 28.05.2023, 21:35 | |
|
daniil_novel, вы о чем то о своем. Я задал 2 простых вопроса
0
|
|
|
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99
|
||
| 28.05.2023, 21:58 [ТС] | ||
|
Я, честно говоря, не очень их понял. В массиве у нас 6 байт. Вроде, столько и нужно
![]() Добавлено через 11 минут Добавлено через 2 минуты Исправил, только вот это не помогает. Все равно вылазит ошибка интерпретатора, которая просит теперь уже или 10 или 16 байт
0
|
||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|
| 28.05.2023, 22:55 | |
|
Так 10 или 16? В какой строке?
Наверное стоит дать ему, сколько просит? Или есть другие варианты?
0
|
|
|
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99
|
||||||||
| 28.05.2023, 23:16 [ТС] | ||||||||
|
Добавлено через 4 минуты
0
|
||||||||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
|||
| 29.05.2023, 06:38 | |||
Сообщение было отмечено daniil_novel как решение
РешениеПричем я бы сказал, что дело и не в алгоритме. Давайте по порядку начнем. Структура А. # Читаем размер и адрес массива структур B
0
|
|||
|
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99
|
||||||
| 29.05.2023, 17:05 [ТС] | ||||||
|
Готово. Пришлось все переделать, но я справился. Вот итоговое решение
Кликните здесь для просмотра всего текста
Дело было не алгоритме, а в некорректных вопросах к нему
0
|
||||||
| 29.05.2023, 17:05 | |
|
Помогаю со студенческими работами здесь
11
Реализовать разбор двоичного формата данных Реализовать на Python разбор двоичного формата данных Задача, реализовать разбор двоичного формата данных, но программа не работает Разбор формата *.id
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет
значение производной при заданном х
Логарифм записывается как: (x-2)log(x^2+2) -. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|