![]() |
Unterverzeichnisse durchsuchen
Hallo,
momentan arbeite ich an einem Programm, dass ein vom User bestimmtes Verzeichnis durchsucht (alle Dateien - nicht Ordner - liest) und dann in den jeweiligen Dateien durchguckt, ob das gesuchte Wort drin ist. Zur Zeit ist das Programm so aufgebaut, dass immer nur die Dateien des aktuellen Verzeichnis durchsucht werden.. Ich möchte aber, dass auch Unterordner des gewählten Verzeichnisses durchsucht werden. Hat da jemand eine Hilfestellung? Kein Lösungansatz, nur eine kleine Anregung...? Komme da atm nicht weiter.. |
Re: Unterverzeichnisse durchsuchen
|
Re: Unterverzeichnisse durchsuchen
Ich habe demletzt für mich sowas ähnliches geschrieben. Es läd eine ganze Ordnerstruktur in ein Menü rein:
Delphi-Quellcode:
dirinfo ist hier einfach nur ein xml-Element, aus dem ich pfad, filter usw. auslese. Da kannst du natürlich auch was "normales" reinschrieben.
procedure TMainForm.addDir(dirinfo: TOrdnerInfo);
var temp: TMenuItem; procedure addItems(const pfad,filter: string; const Attr: integer; MenParent: TMenuItem); var sr: TSearchRec; temp: TMenuItem; begin if FindFirst(pfad + filter, attr, sr) =0 then repeat if (sr.Name ='.') or (sr.Name ='..') then continue; temp :=TMenuItem.Create(popupmenu1); temp.Caption :=sr.Name; if sr.Attr =faDirectory then addItems(pfad + sr.Name + '\', filter, Attr, temp) else temp.OnClick :=DateiClick; MenParent.Add(temp); until FindNext(sr) <> 0; end; begin temp :=TMenuItem.Create(PopupMenu1); temp.Caption :=dirinfo.ItemNamed['label'].Value; addItems(IncludeTrailingPathDelimiter(dirinfo.ItemNamed['pfad'].Value), dirinfo.ItemNamed['filter'].Value, dirinfo.ItemNamed['Attr'].IntValue, temp); with Popupmenu1.Items.Find('Verzeichnisse') do begin Add(temp); Visible :=true; end; end; |
Re: Unterverzeichnisse durchsuchen
hallo
müsste das nicht irgendwie so gehen
Delphi-Quellcode:
gruß
function getDir(path: string):TStrings;
var sr : TSearchRec; newPath : string; begin result := TStringList.Create; if FindFirst(includeTrailingPathDelimiter(path)+'*.*', faAnyFile, sr) = 0 then repeat if sr.Attr = faDirectory then begin if (sr.name<>'..') and (sr.name<>'.') then begin newPath := includeTrailingPathDelimiter(path)+sr.Name; result.Append(newPath+sr.Name); result.AddStrings(getDir(newPath)); end; end; until FindNext(sr) <> 0; FindClose(sr); end; stefan |
Re: Unterverzeichnisse durchsuchen
Hi!
Hier mal meine aktuelle Funktion:
Delphi-Quellcode:
Was muss ich denn ändern, damit auch die Dateien der Unterverzeichnisse angezeigt werden?
function TFrmMain.sucheWort(aDatei: String): Boolean;
var F: TextFile; line: String; begin Result := False; try AssignFile(F, FPfad + aDatei); {$I-} Reset(F); {$I+} if not (IOResult <> 0) then while (not Eof(F)) do begin Readln(F, line); if (pos(UpperCase(FSuche), line) > 0) or (pos(FSuche, line) > 0) then begin Result := True; Break; end; end; finally {$I-} CloseFile(F); {$I+} end; end; |
Re: Unterverzeichnisse durchsuchen
@komponente:
der link den dir matze genannt hat, bietet dir alles was du brauchst. Zitat:
2.) for schleife dieser dateien an deine suchewort prozedur senden. 3.) fertig |
Re: Unterverzeichnisse durchsuchen
Zitat:
|
Re: Unterverzeichnisse durchsuchen
:gruebel: .............. :wiejetzt:
Sorry, ich versteh Euch, aber ich weiß nicht wie ich's lösen kann :| |
Re: Unterverzeichnisse durchsuchen
Liste der Anhänge anzeigen (Anzahl: 2)
Kann es sein das du eine KomponEnte suchst ?
Hier eine Fertiglösung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 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