Das dein Code so langsam ist wird wohl eher an diesem Teil deiner Funktion liegen
Zitat:
Delphi-Quellcode:
...
i := LastDelimiter('.'+PathDelim+DriveDelim, e);
if (i > 0) and (e[i] = '.') then begin
e := LOWERCASE(Copy(e, i+1, MaxInt));
...
den folgenden Teil habe ich 10000000 mal mit einer Schleife aufgerufen, und diese war
nach der Zeitmessung in 4sec durchlaufen.
Zitat:
Delphi-Quellcode:
...
e := '
lnk';
RESULT := 17;
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
...