![]() |
Platzhalter in Dateinamen bei FindFirst
Hi,
ich hab mal(wieder) ne frage. Ich muss mehrere Datein einlesen, die unterschiedliche Dateinamenrichtlinien haben und in unterschiedlichen Ordnern liegen. Jetzt hab ich mir dafür eine schleife gebaut, die alle relevanten ordner durchgeht und in den entsprechenden Ordnern einen jeweils anderen Dateinamens filter hat. so weit so gut, läuft. jetzt habe ich aber einen Dateifilter der so aussieht: '*LAB*.*' das problem dabei ist, dass er zB die Dateien 'ALAB123.WIN'; 'LAB234.WIN' und '10LAB123.WIN'; einschließt. er soll aber nur die '10LAB123.WIN' zulassen, sprich eine Datei, die vor dem LAB einen Integer wert hat. gibt es dafür einen filter? würde das gern über einen filter lösen, damit ich nicht anfangen muss den dateinamen auseinander zu pflücken. über tips wäre ich dankbar, vielen Dank im vorraus mfg Freiwilderer |
AW: Platzhalter in Dateinamen bei FindFirst
Nein geht nicht über den Filter, dass musst du im Nachhinein nochmals selber filtern.
Zum Prüfen könntest du dann RegEx benutzen oder
Delphi-Quellcode:
und dann so prüfen
function StringBefore( const SubStr, Str : string ) : string;
var p : integer; begin p := Pos( SubStr, Str ); if ( p = 0 ) then p := Length( Str ) else p := p - 1; if ( p > 0 ) then Result := Copy( Str, 1, p ) else Result := ''; end;
Delphi-Quellcode:
str := StringBefore( 'LAB', sr.Filename );
if StrToIntDef( str, 0 ) <> 0 then |
AW: Platzhalter in Dateinamen bei FindFirst
FindFirst kenn nunmal nur die Platzhalter * und ?.
Es kann also nicht zwischen Buchstabe oder Zahl unterschieden werden. '10LAB123.WIN' könnte man über '?*LAB?*.WIN' von 'LAB234.WIN' unterscheiden. Aber 'ALAB123.WIN' würde sich nicht davon unterscheiden, da man so ja keine Buchstaben von Zahlen unterscheiden kann. Lösung, du mußt erstmal alle Dateien auflisten und dann selber filtern. Wie nun die Namen verglichen werden, ist dir überlassen und es gibt unmassen Möglichkeiten, wie z.B. das knuffige RegEx u.Ä. |
AW: Platzhalter in Dateinamen bei FindFirst
hi,
danke, hatte mir schon sowas gedacht, da dateinamen nunmal strings sind, aber gehofft, dass es da vielleicht doch ne möglichkeit gibt ich werd das dann über nen späteren filter lösen danke nochmals mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 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