Sry für die späte Meldung. Habe mittlerweile das Programm zu 95% lauffähig gemacht so wie ich es mir vorgestellt habe (Danke hierfür für die ganze Hilfe). Nur ein einziges Problem bleibt noch übrig:
Das am Anfang dieses Threads angesprochene Problem mit den .dfm Dateien. Habe den Code zwar mittlerweile so das er die Umbrüche und die Zeichen (z.B. " '+ " oder " +") vor der Suche rausnimmt, nur mein Problem ist das es bei mir vorkommen kann das zum Beispiel bei " Caption= ...." ein Wort mit Umlaut stehen kann und das wird ja in delphi zum Beispiel in #228 umgewandelt und damit hat das Programm irgendwie Probleme es umzusetzen. Mit .txt und .pas Dateien funktioniert alles ohne Probleme (z.B suche mit Umlauten, Umbrüchen usw.)
Hier mal der Code für die Suche in den Dateien:
Code:
procedure TMainSuche.FileSearch(const PathName, FileName: string);
var Rec : TSearchRec;
Path: string;
slist: TStringList;
begin
Path := IncludeTrailingBackSlash(PathName);
slist := TStringList.Create;
try
if FindFirst (Path + '*', faAnyFile, Rec) = 0 then
begin
repeat
if (Rec.attr in [faDirectory, (faDirectory+faArchive)]) then
begin
if Checkbox1.Checked then
begin
if (Rec.Name <> '.') and (Rec.Name <> '..') then
FileSearch( Path+Rec.Name , FileName);
end;
end else
if MatchesMask( Rec.Name, FileName) then
begin
slist.LoadFromFile(Path + Rec.Name);
slist.Text := UTF8Encode(slist.Text);
slist.Text := StringReplace(slist.Text,'''+', '',[rfReplaceAll]);
slist.Text := StringReplace(slist.Text,'''', '',[rfReplaceAll]);
slist.Text := StringReplace(slist.Text,#13#10, '',[rfReplaceAll]);
if pos(cbSucheT.Text, slist.Text)>0 then
Listbox1.Items.Add(Path + Rec.Name);
end;
until FindNext(Rec) <> 0;
end;
finally
FindClose (Rec);
slist.free;
end;
end;
Habt ihr vielleicht eine Lösung wie ich das Problem noch lösen kann? Und bitte seit gnädig mit mir was die bisherigen Befehle betrifft.