Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Datei durchsuchen (https://www.delphipraxis.net/50871-datei-durchsuchen.html)

Kompon Ente 2. Aug 2005 06:43


Datei durchsuchen
 
Moin allerseits *gähn*

Folgendes:
Delphi-Quellcode:
if FindFirst(s + '/*.*', faAnyFile - faDirectory, sr) = 0 then
  begin
    ListBox1.Items.Add(sr.Name);
    while FindNext(sr) = 0 do
      ListBox1.Items.Add(sr.Name);
  end;
  FindClose(sr);
Diese Prozedur listet mir jeden File, in dem eines der eingebenen Wörter vorhanden ist.

Sprich: Wenn ich "hjkl" eingebe, sucht er alle Wörter, in denen ein "h" ist, ein "j", ein "k" und ein "l"!

Jedoch sollen nur die kompletten Wörter gesucht werden - also soll "hjkl" als ganzes gesucht werden.

Was muss ich ändern, damit das klappt?

Weil danach möchte ich mit AssignFile die Wörter durchgehn, die ich zuvor in eine StringList geschrieben hab - jede Datei nach gesuchtem Wort untersuchen! ;)

SirThornberry 2. Aug 2005 06:51

Re: Datei durchsuchen
 
diese procedure listet dir eigentlich alle dateien in denen ein punkt vorkommt.
für deinen fall musst du "*.*" durch "*hjkl*" ersetzen

Kompon Ente 2. Aug 2005 06:52

Re: Datei durchsuchen
 
Ich möchte aber nur Dateien (keine Verzeichnisse) angezeigt bekommen!

SirThornberry 2. Aug 2005 06:54

Re: Datei durchsuchen
 
dann musst du entweder mit DirectoryExists herausfinden ob es sich um ein Verzeichnis handelt oder mit
Delphi-Quellcode:
if sr.Attributes and faDirectory = faDirectory then //wenn Bedingungen erfüllt dann = Verzeichnis

Kompon Ente 2. Aug 2005 06:56

Re: Datei durchsuchen
 
Hat sich erledigt - bin auf dem falschen Weg!

Ich möchte ja die DATEIEN durchsuchen nach dem Suchwort, nicht nach den Dateinamen!

SirThornberry 2. Aug 2005 06:58

Re: Datei durchsuchen
 
klar, aber wennn du dateien nach einem bestimmten wort durchsuchen willst, dann brauchst du auch nur dateien aufzulisten und keine Verzeichnisse.

Kompon Ente 2. Aug 2005 07:09

Re: Datei durchsuchen
 
Siehe erste Zeile ;)

Delphi-Quellcode:
if FindFirst(s + '/*.*', faAnyFile - faDirectory, sr) = 0 then

kalmi01 2. Aug 2005 07:28

Re: Datei durchsuchen
 
Hi Janosch,

Deine Routine listet alle Files auf, die in dem angegebenen Pfad (s) sind.
Willst Du alle Dateien, die im Namen "hjkl" enthallten ?
Dann brauchst Du
Delphi-Quellcode:
if FindFirst(s + '/*hjkl*.*', faAnyFile - faDirectory, sr) = 0 then
Oder willst Du alle Dateien, die als Inhalt "hjkl" an irgend einer Stelle stehen haben ?

Kompon Ente 2. Aug 2005 07:55

Re: Datei durchsuchen
 
Zitat:

Zitat von kalmi01
Oder willst Du alle Dateien, die als Inhalt "hjkl" an irgend einer Stelle stehen haben ?

Jaaaaaaaaaaaaaaaaaa, genau das!

Ich komm grad absolut nicht weiter :(

Also nicht im Dateinamen als Inhalt "hjkl", sondern IN der Datei drinne!

kalmi01 2. Aug 2005 08:06

Re: Datei durchsuchen
 
Hi,

dann musst Du die mit obiger Routine gefundenen Dateien Zeilenweise mit ReadLn auslesen und mit
Delphi-Quellcode:
if Pos('hjkl', text)>0 then
nach dem zu suchenden String durchforsten.

Sharky 2. Aug 2005 08:07

Re: Datei durchsuchen
 
Hai Ente,

eigentlich ist es doch einfach.

Als erstes musst Du dir alle Dateien die deiner DateiSuchmaske (*.*) entsprechen suchen. Dafür gibt es zum Beispiel einen Code in der Code-Library (ich glaube von sakura).

Dann öffnest Du der reihe nach jede dieser Dateien (z.B. in einen Stream) und schaust ob die von Dir gesuchte Zeichenfolge darin vorkommt.

Jetzt ist nur noch die Frage: Möchtest Du nur wissen ob sie vorkommt oder auch wo? Und handelt es sich nur um Textdateien oder auch um Binärdateien?

Kompon Ente 2. Aug 2005 08:47

Re: Datei durchsuchen
 
Hab's fertig - danke für Eure Hilfe! :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz