Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Suche mit Platzhaltern (https://www.delphipraxis.net/67756-suche-mit-platzhaltern.html)

naujo 19. Apr 2006 13:31


Suche mit Platzhaltern
 
Moin moin,

vielleicht bin auch nur zu doof zum Suchen in der Delphi OH. Aber erstmal meine Frage:

Ich suche eine Funktion zum Vergleichen von Strings in der auch Platzhalter vorkommen können.
Als Platzhalter kommt im Moment nur das * in Frage.

So zum Beipsiel: 'Test*.txt' sollte dann auf 'Test1.txt' oder 'Test.txt' anschlagen.
Aber auch solche Suchanfragen: '*.txt'

(jeweils ohne die ')

Ich habe das ganze schon mit Regulären Ausdrücken versucht, aber die letzte Anfrage (*.txt) ist kein korrekter RegEx.
Habt ihr eine Idee wie man das noch machen könnte. Vielleicht den RegEx, wenn eine solche Anfrage kommt umwandeln, dass
es ein korrekter RegEx wird? Aber dann kommt wieder das Problem mit dem Punkt, der ist ja auch wieder ein RegEx-Metazeichen...

Oder gibt es da schon eine Delphi-Funktion, die ganze unterstützt.

MfG

Naujo

Flare 19. Apr 2006 13:37

Re: Suche mit Platzhaltern
 
Hi naujo!

Also wenn du nur nach Dateinamen suchst, dann gibt es da so ein paar Funktionen/Prozeduren namens FindFirst und FindNext.
Du kannst ja danach mal hier suchen.


Flare

naujo 19. Apr 2006 13:44

Re: Suche mit Platzhaltern
 
Im Prinzip ist das schon richtig, aber ich habe die Dateinamen in einer Liste und die muss jetzt überprüft werden, ob dort ein bestimmtes Muster vorhanden ist, oder eben nicht.

Sonst wäre das auch eine elegante Lösung gleich die Daten zu verwerfen... Aber da alle Dateinamen benötigt werden geht das nicht so einfach, da einige eine "Sonderbehandlung" brauchen.

MfG

Naujo

rochus 19. Apr 2006 13:47

Re: Suche mit Platzhaltern
 
Hi.
Was du suchst ist eine Delphi-Unterstützung für Regular Expressions. Da du unter Win32 arbeitest, musst du dir etwas entsprechendes suchen wie z.B. TRegExpr.

Gruß

naujo 19. Apr 2006 13:50

Re: Suche mit Platzhaltern
 
Ja, danke für den Tipp. Aber
Delphi-Quellcode:
'*.irgendwas'
stellt keinen korrekten RegEx dar.
Das ist mein Problem.

Die Komponente habe ich bereits eingebunden :-D

MfG

Naujo

Hawkeye219 19. Apr 2006 13:52

Re: Suche mit Platzhaltern
 
Hallo,

himitsu hatte da mal etwas gebastelt.

Gruß Hawkeye

naujo 19. Apr 2006 13:55

Re: Suche mit Platzhaltern
 
Ja, cool genau so was hatte ich gesucht.

:thumb:

Danke.

SubData 19. Apr 2006 14:04

Re: Suche mit Platzhaltern
 
Eine korrekte RegExp wäre sonst

Code:
^(.*)\.txt$

himitsu 19. Apr 2006 16:55

Re: Suche mit Platzhaltern
 
Oder einfach erstmal alles per FindFirst/FindNext finden lassen und dann mit den hier erhältlichen Funktionen vergleichen und ausfiltern.

z.B. mit CompareWildFileName aus http://www.delphipraxis.net/internal...ght=compare%2A


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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