AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateisuche - Stringuntersuchung

Ein Thema von Stamper · begonnen am 9. Mai 2008 · letzter Beitrag vom 10. Mai 2008
Antwort Antwort
Stamper

Registriert seit: 19. Jan 2008
18 Beiträge
 
#1

Dateisuche - Stringuntersuchung

  Alt 9. Mai 2008, 20:46
Hallo,

ich bin auf der Suche, nach einem Suchalgorithmus, der jeden Dateinamen untersucht, ob der zu suchende Ausdruck enthalten ist.
Beispiel: Ich gebe als Suchbegriff "System" an und will, dass das Programm auch die Datei "System32.dll" findet. Bisher hab ich leider nur einen Suchalgorithmus, der die Datei als gefunden wiedergibt, wenn der Dateiname exakt dem Suchbegriff entspricht.

Weiß jemand, wo ich so was finde???

Gruß
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Dateisuche - Stringuntersuchung

  Alt 9. Mai 2008, 20:48
Such mal nach POS()
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#3

Re: Dateisuche - Stringuntersuchung

  Alt 9. Mai 2008, 20:54
Delphi-Referenz durchsuchenFindFirst mit der Suchmaske 'system*.*' (mit "system" am Anfang) oder '*system*.*' (mit "system" an jeder Stelle)

Aber sowas hätte man auch in der OH nachlesen können.
Zitat von OH zu FindFirst:
Der Konstantenparameter Path enthält das Verzeichnis und die Dateinamensmaske. Es können auch Platzhalterzeichen verwendet werden. '.\test\*.*' gibt beispielsweise alle Dateien im aktuellen Laufwerk an.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Dateisuche - Stringuntersuchung

  Alt 9. Mai 2008, 21:12
Hi,

Ich glaube, ein simples FindFirst/Next/Close mit system.* entspricht dem, was Stamper möchte. Der Titel hat mich an ein anderes Thema erinnert was ich hiermit vorstellen möchte.

Dann bin ich auf der Suche nach einem FindFirst, bei dem ich mehrere unabhängige Dateinamensmasken angeben kann uns das mit zusätzlich alle Verzeichnisse (*.*) liefert, und das schneller als mein bisheriger Ansatz ist.

Bisher suche ich nämlich nach *.* und, falls es eine Datei ist, prüfe den Rest nachträglich. Verzeichnisse werden gespeichert, um sie beim nächsten FindFirst zu verwenden. Ist so nämlich schon wesentlich schneller als eine Einzelsuche nach den jeweiligen Dateien kombiniert mit einer Einzelsuche nach allen Verzeichnissen.

Mfg
FAlter
Felix Alter
  Mit Zitat antworten Zitat
Stamper

Registriert seit: 19. Jan 2008
18 Beiträge
 
#5

Re: Dateisuche - Stringuntersuchung

  Alt 10. Mai 2008, 13:13
Moin,

@FAlter
Genial! Dass ich da nicht selber drauf gekommen bin. So musste man ja früher auch in der Windowssuche arbeiten, wenn man keinen exakten Dateinamen hatte.

Es funktioniert auch soweit, wenn ich hinter den Dateinamen in der Memo-Komponente zusätzlich den Stern mit eintrage.
Aber ich habe jetzt mal folgendes gemacht:

Delphi-Quellcode:
 For i := 0 to Memo1.Lines.Count-1 do
 begin
  Suchobjekt := Memo1.Lines[i];
  If not CheckBox1.Checked then
  begin
    Suchobjekt := '*' + Suchobjekt + '*';
  end;
    GetFilesInDirectory(Edit1.Text, Suchobjekt, clbSuchergebnisse.Items, True);
 end;
Hab mir gedachtk, das ist etwas benutzerfreundlicher.

Ich habe das Projekt mal im Anhang hochgeladen. Würde mich freuen, wenn ihr euch das mal anschaut und mir Rückmeldungen gebt. Aber erwartet nicht zu viel. Ich hab nur etwas Programmierung in der Schule gehabt.

Das Programm hat auch noch etwas, was mich stört - ich beschreib mal kurz die Funktion des Programmes: Man kann eine Liste von Dateien in das Memo-Feld eintragen und danach wird dann im Wahlverzeichnis gesucht. Die gefundenen Dateien werden aus dem Memo entfernt und in einer Checklistbox aufgeführt und markierte Dateien können in ein Wahlverzeichnis kopiert werden.
So, ich hatte ja danach gefragt, dass man auch Dateien findet, von denen man nicht den exakten Dateinamen angibt. Das Problem ist gelöst. Aber das Programm geht hin und vergleicht am Ende Suchergebnisse mit zu suchenden Objekten, um die gefundenen Objekte aus dem Memo zu entfernen. Wenn ich jetzt aber nur den ungefähren Dateinamen habe, findet er die gefundene Datei aber nicht mehr im Memo - hoffe, dass war jetzt nicht zu umständlich.^^

Also wie gesagt: würd mich über Rückmeldung freuen, aber erwartet nicht zu viel - es ist mein erstes richtiges Programm.

Gruß
Angehängte Dateien
Dateityp: exe prdateisuche_183.exe (610,0 KB, 12x aufgerufen)
Dateityp: zip delphi-projekt_suchen_334.zip (20,1 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 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