Einzelnen Beitrag anzeigen

silentAMD

Registriert seit: 27. Sep 2003
203 Beiträge
 
Turbo Delphi für Win32
 
#1

Strings vergleichen geht SAULAHM!!!

  Alt 30. Dez 2004, 22:28
hi,
ich in meinem dateimanager mit unten stehender funktion eine zahl aus, um den passenden imageindex eines objekts in einer dateiliste im listview je nach dateityp herauszubekommen. (also e ist dann der dateiname)


Delphi-Quellcode:
function TFenster.GetImgIndex(e: String): Byte;
var
  i: Integer;
begin
  RESULT := 17;
  i := LastDelimiter('.'+PathDelim+DriveDelim, e);
  if (i > 0) and (e[i] = '.') then begin
    e := LOWERCASE(Copy(e, i+1, MaxInt));
    if (e='exe') then
    RESULT := 6
    else if (e='jpg') or (e='jpeg') or (e='bmp') or (e='gif') or (e='png') then
    RESULT := 7
    else if (e='htm') or (e='html') then
    RESULT := 8
    else if (e='txt') or (e='ini') or (e='inf') or (e='css') then
    RESULT := 9
    else if (e='rar') or (e='zip') or (e='cab') then
    RESULT := 10
    else if (e='mp3') or (e='wav') or (e='ogg') or (e='mid') or (e='wma') then
    RESULT := 11
    else if (e='mpg') or (e='mpeg') or (e='mpe') or (e='wmv') or (e='avi') or (e='asf') or (e='mov') or (e='rm') then
    RESULT := 12
    else if (e='doc') or (e='rtf') or (e='pdf') or (e='ppt') then
    RESULT := 13
    else if (e='hlp') or (e='chm') then
    RESULT := 14
    else if (e='swf') then
    RESULT := 15
    else if (e='lnk') then
    RESULT := 16
  end;
end;

ist es hier angebrachter, einfach den dateityp mit der eigenschaft getimageindex herauszubekommmen (was die scrollgeschwindigkeit beeinträchtigt) oder gleich in der suche (ich weise mit dieser funktion gleich in der suche den imageindex zu, was allerdings das einlesen der dateien verlangsamt).

nun meine frage: wie kann ich die obenstehende funktion "schneller machen" (also geschickterer code)?
  Mit Zitat antworten Zitat