Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.049 Beiträge
Delphi 12 Athens
|
AW: Bilddateien herausfinden
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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
Geändert von himitsu ( 5. Dez 2020 um 12:58 Uhr)
|
|
Zitat
|