Moin Grumble,
nope daran liegt es nicht, ganz im Gegenteil, dadurch würden Fehler entstehen :]
Wie du siehst wird nach MI < ML, MI inkrementiert, würde das passieren wenn MI(der Index) bereits ML(Die Länge von "Mask") ist, würde Mask[MI] einen Fehler verursachen, da es ausserhalb der Länge liegt.
Ich benutze aber nun die Funktion "PathMatchSpec" aus der
API(Danke Mathias
).
Da du so eine Funktion ja auch suchst, kannst du die ja auch verwenden
So sieht sie aus:
function PathMatchSpec(pszFile, pszSpec: PAnsiChar): BOOL; stdcall; external 'shlwapi.dll' name 'PathMatchSpecA';
MfG
Die
DP, sagt mir das eine neue Nachricht während des Schreibens einging *g*.
@Sakura:
Ich habe die Funktion MatchesMask() extra nicht benutzt, da Sie buggy(?) ist.
Versuch dein Beispiel mal mit:
Delphi-Quellcode:
Mask := TMask.Create('?k?');
try
if Mask.Matches('k') then
Dann wird die Funktion True zurückgeben... Das ist aber Falsch (ausser es wurde extra so gemacht).
Normalerweise sollte ein '?' immer durch ein anderes Zeichen repräsentiert werden und dies sollte nicht optional sondern pflicht sein. (Siehe PathMatchSpec, dort ist es so wie ich es brauche).