|
1 / 1 / 0
Регистрация: 19.03.2022
Сообщений: 99
|
||||||||||||||||||||||||||||||||||||
Реализовать разбор двоичного формата данных28.05.2023, 19:58. Показов 2151. Ответов 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
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|