AGB  ·  Datenschutz  ·  Impressum  







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

Wildcards String

Ein Thema von lukdelphias · begonnen am 17. Jul 2020 · letzter Beitrag vom 4. Aug 2024
Antwort Antwort
Seite 2 von 2     12   
lukdelphias

Registriert seit: 23. Jun 2020
50 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: Wildcards String

  Alt 17. Jul 2020, 13:40
Perfekt danke das funktioniert.

Vielen Dank euch allen für die schnelle Hilfe.
  Mit Zitat antworten Zitat
geldis

Registriert seit: 19. Jan 2022
39 Beiträge
 
#12

AW: Wildcards String

  Alt 4. Aug 2024, 09:01
Etwas älter der Threat aber:

In dem definierten Verzeichnis »ModPath« befinden sich unterschiedlich viele der mit [StartShips]..... gesetzten Verzeichnisse. Beispiel:

Code:
[StartShips] Flaggschiff
[StartShips] Kreuzer
[StartShips] Tankschiff
[StartShips] U-Boot
[StartShips] Values
Der nachstehende Befehl zum entfernen dieser Verzeichnisse aus dem »ModPath« funktioniert einwandfrei:

TDirectory.GetDirectories(ModPath+'\', '*[StartShips]') do TDirectory.Delete(FoundName, True); Aber er lässt immer ein Verzeichnis über. In diesem Beispiel [StartShips] Flaggschiff, letztlich immer das erste Verzechniss, das alphabetisch oben steht.

Was ist das?

geldis

Geändert von geldis ( 4. Aug 2024 um 09:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Wildcards String

  Alt 4. Aug 2024, 11:18
Trenn es doch erstmal auf?

* findet GetDirectories alles?
* und löscht Delete das dann auch wirklich?

Ich hätte eher gedacht, dass garnichts gelöscht wird, weil ähhhhh
'*[StartShips]'
'[StartShips]*'


PS: ich bin mir sicher, dass +'\' nicht nötig sein sollte.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Aug 2024 um 11:22 Uhr)
  Mit Zitat antworten Zitat
geldis

Registriert seit: 19. Jan 2022
39 Beiträge
 
#14

AW: Wildcards String

  Alt 4. Aug 2024, 11:39
Tja, der oben angezeigte Code ist nicht ganz komplett:

     for FoundName in TDirectory.GetDirectories(ModPath+'\', '*[StartShips]') do TDirectory.Delete(FoundName, True); Er zeigt mir hiermit alle enthaltenen Verzeichnisse an. Bis auf das Erste.

Und er löscht alle entsprechenden Verzeichnisse. Bis auf das Erste.

Wildcard:
*[StartShips] wie gesagt.
*[StartShips]* löscht alles !!
[StartShips]* löscht nichts ??

geldis
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Wildcards String

  Alt 4. Aug 2024, 16:19
LÖL

IOUtils nimmt teilweise (nicht immer) des MatchesMask aus System.Masks (sucht nach allem und filtert selbst),
und an anderen Stellen verwendet es den Filter direkt via FindFirstFile.

MatchesMask nutzt aber nicht nur * und ?, sondern auch CharSets via []


So '[[]StartShips[]]*' ?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Aug 2024 um 16:22 Uhr)
  Mit Zitat antworten Zitat
geldis

Registriert seit: 19. Jan 2022
39 Beiträge
 
#16

AW: Wildcards String

  Alt 4. Aug 2024, 16:31
Das folgende funktioniert genau wie gewünscht :

   for FoundName in TDirectory.GetDirectories(ModPath+'\', '*StartShips*') do TDirectory.Delete(FoundName, True); Man muss die eckigen Klammern weglassen - obwohl im Verzeichnisnamen enthalten. Gemerkt habe ich das als ich den eigentlich für mein Verständnis erforderlichen BackSlash entfernt und direkt in den Suchstring gesetzt habe.
In der erscheinenden Fehlermeldung wird der Slash als «Ungültige Zeichen im Suchmuster : [\[StartShips]*]» angegeben (EInOUtArgumentException). Und da fielen mir die eckigen Klammern um den Fehleranzeigestring auf. Hmmmm... Also mal den Suchstring wie oben definiert anz ohne eckige Klammern - klappt.

Aber so richtig verstehen kann ich das jetzt nicht. Denn für einen Ordnernamen sind die eckigen Klammern ja zugelassen ......

Jedenfalls geht es jetzt.

geldis

P.S.
'[[]StartShips[]]*' habe ich jetzt nicht probiert. Aber das riecht auch als Möglichkeit.... Danke jedenfalls, ich werde das mal probieren. Rein Interessehalber.

Geändert von geldis ( 4. Aug 2024 um 16:33 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:14 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