Delphi-Quellcode:
uses Masks;
function MatchesFilter(const Filename, Filter: String): Boolean;
var
SL: TStringList;
i: Integer;
begin
SL := TStringList.Create;
try
SL.StrictDelimiter := True;
SL.Delimiter := '|';
SL.DelimitedText := Filter;
for i := 0 to SL.Count div 2 - 1 do
SL.Delete(i);
SL.DelimitedText := ';';
SL.Text := SL.Text;
for i := SL.Count - 1 downto 0 do
if MatchesMask(Filename, SL[i]) then
Exit(True);
finally
SL.Free;
end;
Result := False;
end;
// oder um nocheine Zeile kürzer
function MatchesFilter(const Filename, Filter: String): Boolean;
var
SL: TStringList;
i: Integer;
begin
SL := TStringList.Create;
try
SL.LineBreak := '|';
SL.Text := Filter;
for i := 0 to SL.Count div 2 - 1 do
SL.Delete(i);
SL.LineBreak := ';';
SL.Text := SL.Text;
for i := SL.Count - 1 downto 0 do
if MatchesMask(Filename, SL[i]) then
Exit(True);
finally
SL.Free;
end;
Result := False;
end;
Statt
Exit(True);
kann man auch (für ältere Delphis) auf Folgendes ausweichen.
Delphi-Quellcode:
begin
Result := True;
Exit;
end;
PS: nicht getestet ... sollte aber gehn
PPS: In der CodeLb sollte von mir eine MaskMatch-Version rumliegen, welche speziell für Dateinamen vorgesehen ist,
denn "*.*" findet eigentlich auch "DateiOhneEndung", was Masks.MatchesMask nicht macht.