Здравствуйте, uzhas, Вы писали:
U>Здравствуйте, watchmaker, Вы писали:
W>>В string.h мого где уже есть готовая функция memmem — работает как strstr, но для бинарных данных.
U>я так понял, что ищут regexp для бинарных данных, а не текста
да, именно так, нужен регекс для бинарных данных.
Здравствуйте, Warturtle, Вы писали:
W>Здравствуйте, ksd, Вы писали:
ksd>>то есть надо найти в бинарном файле последовательность байт по шаблону, типа
ksd>>
ksd>>т.е. надо искать по адресу буфера и размеру, \0 \r \n не надо выделять, как особый случай.
ksd>>спасибо! W>boost::xpressive например.
спасибо. посмотрю.
Здравствуйте, ksd, Вы писали:
ksd>Здравствуйте, Warturtle, Вы писали:
W>>Здравствуйте, ksd, Вы писали:
ksd>>>то есть надо найти в бинарном файле последовательность байт по шаблону, типа
ksd>>>
ksd>>>т.е. надо искать по адресу буфера и размеру, \0 \r \n не надо выделять, как особый случай.
ksd>>>спасибо! W>>boost::xpressive например.
она же тоже для текстов, что то не понятно с первого взгляда на доки на буст.орг, что делать с бинарниками.
но самое главное, сейчас не используется в проекте буст и использовать в данный момент невозможно.
Здравствуйте, ksd, Вы писали:
ksd>>>>спасибо! W>>>boost::xpressive например. ksd>она же тоже для текстов, что то не понятно с первого взгляда на доки на буст.орг, что делать с бинарниками.
То же что и со строкой char-ов ksd>но самое главное, сейчас не используется в проекте буст и использовать в данный момент невозможно.
Это хедер-онли бибилиотека, её можно выкусить без проблем.
Здравствуйте, ksd, Вы писали:
ksd>Здравствуйте, ksd, Вы писали:
ksd>>Здравствуйте, Warturtle, Вы писали:
W>>>Здравствуйте, ksd, Вы писали:
ksd>>>>то есть надо найти в бинарном файле последовательность байт по шаблону, типа
ksd>>>>
ksd>>>>т.е. надо искать по адресу буфера и размеру, \0 \r \n не надо выделять, как особый случай.
ksd>>>>спасибо! W>>>boost::xpressive например. ksd>она же тоже для текстов, что то не понятно с первого взгляда на доки на буст.орг, что делать с бинарниками. ksd>но самое главное, сейчас не используется в проекте буст и использовать в данный момент невозможно.
Естественно, парсить бинарные данные — не основная задача этой библиотеки, но делать это в ней точно можно. Там есть [a href="http://www.boost.org/doc/libs/1_61_0/boost/xpressive/traits/null_regex_traits.hpp"]такой класс[/a] для бинарный данных в частности. Цитата:
Contains the definition of the null_regex_traits<> template, which is a stub regex traits implementation that can be used by static and dynamic regexes for searching non-character data.
В отличие от boost::regex основным способом задания шаблона поиска является выражение его непосредственно в коде программы, поэтому значение каждого байта записывается просто числом.
Re: есть ли библиотека поиска по шаблону в бинарных данных
Здравствуйте, Kernan, Вы писали:
ksd>>но самое главное, сейчас не используется в проекте буст и использовать в данный момент невозможно. K>Это хедер-онли бибилиотека, её можно выкусить без проблем.
Для этого даже есть утилита специальная:
http://www.boost.org/doc/libs/1_61_0/tools/bcp/doc/html/index.html
The bcp utility is a tool for extracting subsets of Boost, it's useful for Boost authors who want to distribute their library separately from Boost, and for Boost users who want to distribute a subset of Boost with their application.
bcp can also report on which parts of Boost your code is dependent on, and what licences are used by those dependencies.