Название: ЧТЕНИЕ БИНАРНИКА Отправлено: kraven от Апрель 04, 2010, 17:05 Всем привет )
Народ, есть задача, на входе бинарный файл с некоторыми данными в виде кадров (ЗАГОЛОВОК_ТЕЛО КАДРА) Заголовков может быть 8 разных типов (допустим, храню их в словаре, размер заголовка 4 байта) Как лучше всего отыскать все кадры? (думаю сначала весь файл в qbytearray запихать...) очень нужно, просто новичок в QT пока что. Название: Re: ЧТЕНИЕ БИНАРНИКА Отправлено: Авварон от Апрель 04, 2010, 17:12 я бы QDataStream юзал
Название: Re: ЧТЕНИЕ БИНАРНИКА Отправлено: kraven от Апрель 04, 2010, 18:00 можете набросать структурку кода, как именно находить заголовки ?
Название: Re: ЧТЕНИЕ БИНАРНИКА Отправлено: alexman от Апрель 04, 2010, 19:23 Если существуют 4 байта, то читаешь с помощью QDataStream 4 байта и проверяешь значение...
Название: Re: ЧТЕНИЕ БИНАРНИКА Отправлено: kraven от Апрель 04, 2010, 19:29 ну а как оптимальнее организовать сравнение этих 4 байт со списком из словаря ?
Название: Re: ЧТЕНИЕ БИНАРНИКА Отправлено: alexman от Апрель 04, 2010, 19:51 int QList::indexOf ( const T & value, int from = 0 ) const
Название: Re: ЧТЕНИЕ БИНАРНИКА Отправлено: kraven от Апрель 04, 2010, 19:57 т.е. эти 4 байта ищем Indexof в словаре ? ???
Название: Re: ЧТЕНИЕ БИНАРНИКА Отправлено: kraven от Апрель 15, 2010, 14:27 придумал след алгоритм
считываем весь файл в bytearray потом mid считываем кусочек и в словаре делаем indexof - если найден то берем, иначе сдвигаем тек позицию. вроде самый оптимальный способ Название: Re: ЧТЕНИЕ БИНАРНИКА Отправлено: Igors от Апрель 15, 2010, 14:57 придумал след алгоритм по-моему самый неоптимальный :) Почему не по-народному?считываем весь файл в bytearray потом mid считываем кусочек и в словаре делаем indexof - если найден то берем, иначе сдвигаем тек позицию. вроде самый оптимальный способ Код
Название: Re: ЧТЕНИЕ БИНАРНИКА Отправлено: kraven от Апрель 17, 2010, 21:15 проблема в том, что там может быть мусор, причем не кратный длине заголовка или содержимого
т.е. в файле: мусор_заголовок_содержимое_мусор_мусор_заголовок_содержимое Название: Re: ЧТЕНИЕ БИНАРНИКА Отправлено: Igors от Апрель 18, 2010, 15:29 проблема в том, что там может быть мусор, причем не кратный длине заголовка или содержимого Если так - то конечно. Но такой формат не выглядит разумным. Как правило, длина данных в файл записывается, тем более что речь идет о кадрах. Стоит (пере)проверитьт.е. в файле: мусор_заголовок_содержимое_мусор_мусор_заголовок_содержимое |