| 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 —› Крэки, обсуждения —› Как в бинарном файле найти последовательность байт | 





 Для печати