Einzelnen Beitrag anzeigen

Benutzerbild von mleyen
mleyen

Registriert seit: 10. Aug 2007
609 Beiträge
 
FreePascal / Lazarus
 
#17

AW: MultipleTexture Loader

  Alt 2. Nov 2010, 15:42
...
Uppercase(ExtractFileExt....
...
Ja natürlich geht ebenfalls
Wer es denn haben will ändert alles nach
if Uppercase(ExtractFileExt(sImgName)) = '.PNGthen um

Obwohl diese Funktion letztendlich genau das gleiche tut

gruss
Das Problem ist weniger die eine Zeile, eher der (doppelte) Code an sich. ZB hab ich schon ewig keine 2XX LOC-Methode gesehen. Dabei wurd hier doch immer Clean Code usw für heilig gesprochen.

Hier beispielsweise wird immer wieder copy(), Uppercase(), length(), ...copy() Uppercase(), ... aufgerufen.
Dabei könnte man daraus einen kleinen Einzeiler machen, welcher sicherlich performanter und dynamischer ist:
Delphi-Quellcode:
const
  SupportedImageTypes: array[0..8] of string = (
    '.BMP', '.DIB', '.GIF', '.ICO', '.JPEG', '.JPG', '.PNG', '.TIF', '.TIFF');

function GetImageType(const AImgName: string; out ImageType: string): Boolean;
begin
  ImageType := ExtractFileExt(AImgName);
  Result := StrUtils.IndexText(ImageType, SupportedImageTypes) > 0;
end;

// Und in der seitenlangen Methode dann nur noch:
  if GetImageType(sImgName, ImageType) then
  Mit Zitat antworten Zitat