![]() |
Re: SelectDirectory Problem
Okay ich versuchs einfach mal. Wär allerdings nett, wenn du mir noch n paar tipps geben könntest, wie gesagt is mein erstes prog nachm Taschenrechner xDD
Code:
so siehts jetz aus
begin
memo1.Clear; StringList := TStringlist.Create; try StringList.LoadFromFile(pfad + '\*.txt'); |
Re: SelectDirectory Problem
Dann waren wir doch nicht so daneben. Du musst zunächst einmal das Verzeichnis nach *.txt durchsuchen, das geht wie gesagt mit FindFirst usw. Jede gefundene Datei durchsuchst Du dann wiederum nach dem Text, etwa so:
Delphi-Quellcode:
uses StrUtils;
function FileContainsText(const Filename, SearchText: string; CaseSensitive: Boolean = true): Boolean; var sList: TStringlist; begin sList := TStringlist.Create; try sList.LoadFromFile(Filename); if CaseSensitive then Result := AnsiContainsStr(sList.Text, SearchText) else Result := AnsiContainsText(sList.Text, SearchText); finally sList.Free; end; end; |
Re: SelectDirectory Problem
LoadFromFile läd nur EINE Datei, also kennt es keine Masken.
wenn du mehrere Dateien laden willst, dann FindAllFiles oder ![]() |
Re: SelectDirectory Problem
Tut mir leid, dass ich euch nochmal bemühen muss aber ihc komme mit dem find first nciht klar.
Ich habe nämlcih den Pfas schon einlesen lassen und weiß jetzt nicht, wie der diesen Pfad benutzt. Sieht ungefähr so aus:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject); // Verzichnis auswählen-Dialog
begin SelectDirectory ('Choose Directory', '', pfad); if SelectDirectory ('ChooseDirectory', '', pfad) then Label1.Caption := (pfad) else Showmessage ('Cancelled'); end; // Ich Nehme an, Hier müsste das einlesen der .txt's rein oder so.? procedure TForm2.Button2Click(Sender: TObject); // Hier soll dann gesucht werden (Code sehr unvollständig...) begin Results.ClearSelection; StringList := TStringlist.Create; try finally StringList.free; end; end; |
Re: SelectDirectory Problem
![]() |
Re: SelectDirectory Problem
Funkt aber irgendwie nicht.
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin SelectDirectory ('Choose Directory', '', pfad); if SelectDirectory ('ChooseDirectory', '', pfad) then Label1.Caption := (pfad) else Showmessage ('Cancelled'); end; procedure FindAllFiles(pfad: string; Mask: string = '*.txt'; Recurse: Boolean = True); //inkompatible typen strings und Tstrings begin pfad := IncludeTrailingPathDelimiter(pfad); if Recurse then if FindFirst(pfad + '*.txt', faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory = faDirectory then if (SR.Name <> '.') and (SR.Name <> '..') then FindAllFiles(FileList, pfad + SR.Name, Mask, Recurse); //inkompatible Typen Boolean und string until FindNext(SR) <> 0; finally FindClose(SR); end; if FindFirst(pfad + Mask, faAnyFile, SR) = 0 then try repeat if SR.Attr and faDirectory <> faDirectory then begin FileList.Add(pfad + SR.Name); end; until FindNext(SR) <> 0; finally FindClose(SR); end; end; procedure TForm2.Button2Click(Sender: TObject); var sList: TStringList; s: string; begin Results.ClearSelection; sList := TStringlist.Create; try sList.LoadFromFile(FileList); // s := sList.Text; // if pos(edit1.text, s) > 0 then //Und hier spielt er garnicht mehr mit... results.lines.add (FileList); finally SList.free; end; end; |
Re: SelectDirectory Problem
Schau Dir mal die Parameterliste von FindAllFiles und den Aufruf an. Es scheint mir so, als hättest Du die beiden Versionen aus meinem verlinkten Thread durcheinandergemischt.
|
Re: SelectDirectory Problem
Ich verzweifel echt grad...
Immerhin ich hab deinen Wink mit dem Zaunpfahl verstanden. nur geht jetz unten was nicht:
Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
function FileContainsText(const Filename, SearchText: string; CaseSensitive: Boolean = true): Boolean; var sList: TStringlist; begin sList := TStringlist.Create; try sList.LoadFromFile(Filename); if CaseSensitive then Result := AnsiContainsStr(sList.Text, SearchText) else Result := AnsiContainsText(sList.Text, SearchText); //nun streich er mir die nächste Prozedur an.....also die hier nicht im code is aber der Fehler finally //muss hier liegen... sList.Free; end; begin end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz