eXeL@B —› Крэки, обсуждения —› Как в бинарном файле найти последовательность байт |
Посл.ответ | Сообщение |
|
Создано: 25 ноября 2005 20:39 · Личное сообщение · #1 Может у кого есть алгоритм на дельфе. Нужно найти смещение в файле по которому расположена некая последовательность байт. Только нужно быстрый способ, требуется искать около 20 таких последовательностей в одном файле. А то тот которым делаю я секунд 20 все делает. Я делаю так function Searche_offset_str(s, filename: string) : string; var f: file; l: Longint; oldstring, newstring: string; begin Form1.ProgressBar1.Position := Form1.ProgressBar1.Position + 1; oldstring := s; AssignFile(f, FileName); Reset(f, 1); for l := 0 to FileSize(f) - Length(oldstring) - 1 do begin Seek(f, l); BlockRead(f, oldstring[1], Length(oldstring)); if oldstring = s then begin result := '$'+ IntToHex(FilePos(F)-Length(oldstring), 8); break; end; end; CloseFile(f); end; вот так запустишь эту функцию раз 15 на двестикилобайтном файле так подвисает все секунд на 20.. |
|
Создано: 25 ноября 2005 20:43 · Поправил: Ara · Личное сообщение · #2 |
|
Создано: 25 ноября 2005 20:52 · Личное сообщение · #3 |
|
Создано: 25 ноября 2005 21:47 · Личное сообщение · #4 |
eXeL@B —› Крэки, обсуждения —› Как в бинарном файле найти последовательность байт |