![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск в бинарном файле [D7]
igi © (2005-11-25 20:48:00)Может у кого есть алгоритм быстрые. Нужно найти смещение в файле по которому расположена некая последовательность байт. Только нужно быстрый способ, требуется искать около 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..
Суслик (2005-11-25 20:50:00) [21]если 200 кб, то грузи его весь в память и в ней ищи