function Tform1.Str1IstInStr2(
const a,b:
string): boolean;
begin
result := pos(AnsiLowercase(a),AnsiLowercase(b)) > 0;
end;
function tform1.istInderDatei(
const s:
string;
const pfad:
string): boolean;
var pu : TSTringlist;
begin
result := false;
try
pu := Tstringlist.Create;
try
pu.LoadFromFile(pfad);
if Str1IstInStr2(s,pu.text)
then result := true;
finally pu.free
End;
except showmessage(pfad + '
| konnte nicht durchsucht werden')
End;
end;
procedure tform1.ZuMemoFallsKiterienerfuellt(
const pfad, BestimmteDatei,SuchTextInDerDatei:
string);
begin
if Str1IstInStr2(BestimmteDatei,pfad)
and istInderDatei(SuchTextInDerDatei,pfad)
then
begin
memo1.lines.add('
"'+pfad + '
" enthält den Text "' +s1);
end;
end;
procedure tform1.VerzeichnisDurchsuchen(dir:
string;
const BestimmteDatei,
SuchTextInDerDatei:
string);
var SR: TSearchRec;
dirtemp :
string;
Begin
dir := IncludeTrailingBackslash(dir);
if FindFirst(dir+'
*.*',faAnyFile,SR)=0
then Begin
repeat
If ((sr.attr
And faDirectory) = 0)
and (SR.
Name[1]<>'
.')
then
ZuMemoFallsKiterienerfuellt(dir + sr.
name, BestimmteDatei,
SuchTextInDerDatei);
if (SR.Attr
and faDirectory = faDirectory)
and (SR.
Name[1] <> '
.')
then Begin
dirTemp := dir + sr.
name;
VerzeichnisDurchsuchen(dirtemp,BestimmteDatei, SuchTextInDerDatei);
End;
until FindNext(SR)<>0;
FindClose(SR);
End;
End;
procedure TForm1.Button2Click(Sender: TObject);
var dir, datei, suchtext:
string;
begin
memo1.Lines.Clear;
dir := edit1.text;
datei := '
pas';
suchtext := '
{$IFDEF';
VerzeichnisDurchsuchen(dir, datei, suchtext);
dir := edit1.text;
datei := '
dfm';
suchtext := '
{$IFDEF';
VerzeichnisDurchsuchen(dir, datei, suchtext);
end;