Thema: Delphi Bilddateien herausfinden

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.726 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Bilddateien herausfinden

  Alt 5. Dez 2020, 12:46
Erstmal was Grundsärtliches:
Delphi-Quellcode:
const
  GRAPHTYPES = '.JPG.JPEG.BMP.DIB.TIF.TIFF.PNG.GIF.ICO.EMF.HEIF.HEIC';

if Pos(UpperCase(ExtractFileExt(SR.Name)), GRAPHTYPES) > 0 then

// ContainsStr oder ContainsText statt POS (Achtung, die Parameter sind hier andersrum ... k.A. wer auf diese saudämliche Idee kam)
// und "Text" hat das Upper/Lower schon eingebaut
if ContainsText(GRAPHTYPES, ExtractFileExt(SR.Name)) then
Und nein, es sei denn du willst auch z.B. das ".H" im ".HEI" finden.
Delphi-Quellcode:
const GRAPHTYPES = '*.JPG*.JPEG*.BMP*.DIB*.TIF*.TIFF*.PNG*.GIF*.ICO*.EMF*.HEIF*.HEIC*';
if ContainsText(GRAPHTYPES, '*' + ExtractFileExt(SR.Name) + '*') then

// Das "*" nehme ich hier oft, weil es in Dateinamen nicht vorkommen kann,
// aber da hier auch der "." am Anfang drin ist, geht auch ohne das erste "*"
const GRAPHTYPES = '.JPG*.JPEG*.BMP*.DIB*.TIF*.TIFF*.PNG*.GIF*.ICO*.EMF*.HEIF*.HEIC*';
if ContainsText(GRAPHTYPES, ExtractFileExt(SR.Name) + '*') then
// oder ... egal wie, du braucht einen DEFINIERTEN Anfang und Ende
const GRAPHTYPES = '.JPG.JPEG.BMP.DIB.TIF.TIFF.PNG.GIF.ICO.EMF.HEIF.HEIC.';
if ContainsText(GRAPHTYPES, ExtractFileExt(SR.Name) + '.') then
// aber ohne "*" am Anfang und Ende aufpassen, denn was liefert eigentlich ExtractFileExt, wenn die Datei keine Extension hat?

if MatchText(ExtractFileExt(SR.Name), ['.JPG', '.JPEG', '.BMP', '.DIB', ...]) then // z.B. eine Array-Kontante oder das Array aus SplitString
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 5. Dez 2020 um 12:58 Uhr)
  Mit Zitat antworten Zitat