Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Dateinamen mit einem File Filter vergleichen

  Alt 8. Apr 2011, 10:27
Hehe, da hatten wir wohl beide den selben Gedanken. Wobei explode() eher eine PHP-Funktion ist als Delphi ^^ Aber sinngemäß hab ich das jetzt so umgesetzt und scheint zu funktionieren:
Delphi-Quellcode:
uses Masks;

function MatchesFilter(const AFilename, AFilter: String): Boolean;
var
  I: Integer;
  SL: TStringList;
  S: String;
begin
  result:= FALSE;
  SL:= TStringList.Create;
  try
    SL.Text:= StringReplace(AFilter, '|', #13#10, [rfReplaceAll]);
    for I:= 0 to SL.Count - 1 do begin
      if I mod 2 <> 0 then begin
        S:= S + SL[I] + ';';
      end;
    end;
    SL.Text:= StringReplace(S, ';', #13#10, [rfReplaceAll]);
    for I:= 0 to SL.Count - 1 do begin
      if MatchesMask(AFilename, SL[I]) then begin
        result:= TRUE;
        Exit;
      end;
    end;
  finally
    SL.Free;
  end;
end;
Ich sag mal so: Es ist vielleicht nicht besonders elegant oder effizient. Eine dedizierte API-Funktion oder VCL-Funktion wär mir auch lieber gewesen. Aber unterm Strich zählt erstmal das Ergebnis.
  Mit Zitat antworten Zitat