Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Поиск файла по его содержимому   Найти похожие ветки 

 
Генри ©   (2005-02-27 16:21) [0]

Доброго времени суток!
Подскажите, как осуществить поиск файла по фрагменту или части внутри его?
СпасибО!!


 
olookin ©   (2005-02-27 16:28) [1]

Вероятно, открывать каждый файл и прочитывать его содержимое?


 
GanibalLector ©   (2005-02-27 16:45) [2]

2 olookin ©   (27.02.05 16:28) [1]
А если файл Word-a или Excel-я? И таких примеров тысячи...
Короче,моё ИМХО : НИКАК!


 
olookin ©   (2005-02-27 16:51) [3]

[2] GanibalLector ©   (27.02.05 16:45)

Да, вы правы... Однако каким-то образом тот же Totalcommander с этой задачей справляется...


 
GanibalLector ©   (2005-02-27 16:58) [4]

>Однако каким-то образом тот же Totalcommander с этой задачей справляется

Только что проверил,не находит он ничего!


 
Igor_thief   (2005-02-27 18:13) [5]

GanibalLector ©   (27.02.05 16:58) [4]
Ой не верю!

Генри ©   (27.02.05 16:21)
ЧТо-то типа этого:
Digitman ©   (22.02.05 10:19) [2]

function FindSignature(aFile: String; aSign: String; var Offset: DWord): Boolean;
var
fSize, sSize: DWord;
hFile, hMap: THandle;
p, ptr: PByte;
cmpcount: DWord;
begin
Result := False;
sSize := Length(aSign);
if sSize = 0 then Exit;
Offset := 0;
hFile := FileOpen(aFile, fmOpenRead or fmShareDenyNone);
Win32Check(hFile >= 0);
try
  fSize := FileSeek(hFile, 0, 2);
  if fSize < sSize then Exit;
  hMap := CreateFileMapping(hFile, nil, PAGE_READONLY, 0, fSize, nil);
  Win32Check(hMap > 0);
  try
    ptr := MapViewOfFile(hMap, FILE_MAP_READ, 0, 0, fSize);
    Win32Check(Assigned(ptr));
    try
      cmpcount := Succ(fSize - sSize);
      p := ptr;
      while cmpcount > 0 do
        if CompareMem(ptr, PChar(aSign), sSize) then
          begin
            Offset := DWord(ptr) - DWord(p);
            Result := True;
            Break;
          end
        else
          begin
            Inc(ptr);
            Dec(cmpcount);
          end;
    finally
      UnmapViewOfFile(ptr);
    end;
  finally
    CloseHandle(hMap);
  end;
finally
  CloseHandle(hFile);
end;
end;
..
var
Offs: DWord;
..
if FindSignature("SomeFile.exe", "Igor_thief", Offs) then
  ShowMessage("Signature found at offset " + IntToStr(Offs))
else
  ShowMessage("Signature not found");



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.067 c
6-1105441833
msguns
2005-01-11 14:10
2005.03.13
Программный доступ к серверу в режиме root


1-1109690443
Nicotin
2005-03-01 18:20
2005.03.13
Как перехватить нажатие кнопки?


4-1107122348
kvant
2005-01-31 00:59
2005.03.13
как узнать координаты иконок на рабочем столе?


8-1101404974
_PG_
2004-11-25 20:49
2005.03.13
Видео растянуть на панель


1-1109665209
aleksey
2005-03-01 11:20
2005.03.13
Как задать ёмкость буфера com порта и как его очистить ?