|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
||||||
Поиск текста в бинарном файле30.06.2018, 08:35. Показов 10358. Ответов 22
Всем доброго времени суток!
Решил написать для себя небольшой поисковик текста в бинарном файле. И тут же упёрся в ошибки и своё не понимание некоторых вещей питона. В общем вот что у меня есть
0
|
||||||
| 30.06.2018, 08:35 | |
|
Ответы с готовыми решениями:
22
Поиск текста в бинарном файле
Удаление текста в бинарном файле |
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
||||||
| 30.06.2018, 09:05 | ||||||
|
Зачем тут struct?
1
|
||||||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 30.06.2018, 09:26 [ТС] | |
|
ТабуретY, хорошо, спасибо. Но как теперь получить значения которое после "="?
Потому что первое это проверка файла на наличие нужного файла, и если он там есть то получить значения после "=" И все это надо учитывать, что файл 3 гига весит, а оперативки 1 гиг.
0
|
|
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
|||||||
| 30.06.2018, 09:34 | |||||||
1
|
|||||||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|||||||||||
| 30.06.2018, 13:30 [ТС] | |||||||||||
|
ТабуретY,
0
|
|||||||||||
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
|
| 30.06.2018, 14:07 | |
|
А эта строка в первых 50 мегабайтах файла есть вообще?
В моем примере в файле jpeg ищется строка 'JFIF', если открыть любой файл jpeg в hex-редакторе, то в начале файла видна эта строка
0
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 30.06.2018, 14:10 [ТС] | |
|
ТабуретY, у меня она неизвестно где. А берём по 50мб, ТК весь файл в оперативку не лезет, вот поэтому и ммапаем по 50мб.
Скрин вот https://yadi.sk/i/U4Nqfikb3YcoyS
0
|
|
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
|
| 30.06.2018, 14:42 | |
|
На скриншоте видно, что искомая строка находится где-то на 365 мегабайте, попробуйте для проверки прочитать этот отрезок
0
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
||||||
| 01.07.2018, 00:19 [ТС] | ||||||
|
ТабуретY, взял 400 мб, результат тот же
Добавлено через 1 час 12 минут В общем нашел медленный способ, который не зависит от кол-ва оперативной памяти
На 5 гиговом файле ищет аж 8 сек
0
|
||||||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 04.08.2018, 09:48 [ТС] | |
|
Приветствую всех!
Дабы не создавать новую тему пишу в этой. Как организовать поиск типа "find next"? Например зпдача такая вот: Открываем файл Пропускаем 100мб Сначала ищем строку с "begin build properties" Если нашли - Запоминаем адрес Ищем дальше то что подается на фунцкию ниже того адреса, что был найден пунктом выше Поиск в бинарном файле, файл больше кол-ва оперативной памяти, что мешает использованию mmap но мне говорили что ммар можно использовать, если "скользить по файлу" как то через offset Выручайте народ.
0
|
|
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
||||||
| 04.08.2018, 12:51 | ||||||
|
Параметр offset при чтении файла
0
|
||||||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
||||||
| 04.08.2018, 15:19 [ТС] | ||||||
|
ТабуретY, а приложите полный код, пожалуйста? а то никак не допетрю как его использовать
Добавлено через 25 минут ТабуретY, как? как это зациклить чтоб искал кусками? типа пока не конец файла берем кусок ммапом, ищем в нем, если не нашлось, то двигаем курсор дальше и т.д.? На словах то это я могу понять как это происходит, но вот накодить не могу никак
0
|
||||||
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
||||||
| 04.08.2018, 16:16 | ||||||
Сообщение было отмечено blackeangel как решение
Решение
Так примерно
1
|
||||||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
||||||
| 04.08.2018, 17:50 [ТС] | ||||||
|
ТабуретY, это здорово
получилось как то так
0
|
||||||
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
|||||||
| 04.08.2018, 18:57 | |||||||
0
|
|||||||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 04.08.2018, 21:04 [ТС] | |
|
ТабуретY, в не могли б прояснить как можно одним циклом сразу найти 2 разных слова? Да и мне не нужен массив. Мне надо только строку вернуть но без лишего мусора, только текст.
0
|
|
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
||||||
| 04.08.2018, 21:16 | ||||||
|
Если надо найти две строки
0
|
||||||
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
|
| 04.08.2018, 21:25 [ТС] | |
|
ТабуретY, не, нн так поняли. Находим первую запись - она дает нам адрес откуда надоискать вторую запись. И вот надо вывести строку в которой содержится вторая искомая запись.
0
|
|
|
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
|
|
| 04.08.2018, 21:44 | |
|
1
|
|
|
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
|
||||||||||||||||
| 04.08.2018, 22:58 [ТС] | ||||||||||||||||
|
ТабуретY, если делаю так
Кликните здесь для просмотра всего текста
и что то не нахожу тут
0
|
||||||||||||||||
| 04.08.2018, 22:58 | |
|
Помогаю со студенческими работами здесь
20
Поиск в бинарном файле Поиск в бинарном файле Поиск в бинарном файле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Символьное дифференцирование
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. Пошагово создадим проект для загрузки изображения. . .
|