Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.107 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Strings vergleichen geht SAULAHM!!!

  Alt 31. Dez 2004, 00:15
Moin silentAMD,

um mal die Idee von Dax aufzugreifen, mal etwas ähnliches:
Funktioniert allerdings nur bei Erweiterungen mit ein bis vier Zeichen.

Ich hoffe es ist ersichtlich wie sich die Zahlen ergeben.

Delphi-Quellcode:
function Ext2ID(const AsFilepath : string) : integer;

type
  TcsExtToDW = packed record
    case byte of
      0 : (sExt : string[4]);
      1 : (bDummy : byte;
           dwExt : DWORD);
  end;

var
  etdWork : TcsExtToDW;

begin
  Result := -1;
  etdWork.dwExt := 0;
  etdWork.sExt := AnsiLowerCase(copy(ExtractFileExt(AsFilePath),2,4));
  case etdWork.dwExt of
    $00657865 : Result := 6; // exe
    $0067706A, // jpg
    $6765706A, // jpeg
    $00706D62, // bmp
    $00666967, // gif
    $00676E70 : Result := 7; // png
    $006D7468, // htm
    $6C6D7468 : Result := 8; // html
    $00747874, // txt
    $00696E69, // ini
    $00666E69, // inf
    $00737363 : Result := 9; // css
    $00726172, // rar
    $0070697A, // zip
    $00626163, // cab
    $00656361 : Result := 10; // ace
    $0033706D, // mp3
    $00766177, // wav
    $0067676F, // ogg
    $0064696D, // mid
    $00616D77, // wma
    $00616D72 : Result := 11; // rma
    $0067706D, // mpg
    $6765706D, // mpeg
    $0065706D, // mpe
    $00766D77, // wmv
    $00697661, // avi
    $00667361, // asf
    $00766F6D, // mov
    $00006D72 : Result := 12; // rm
    $00636F64, // doc
    $00667472, // rtf
    $00666470, // pdf
    $00747070, // ppt
    $00737070 : Result := 13; // pps
    $00706C68, // hlp
    $006D6863 : Result := 14; // chm
    $00667773 : Result := 15; // swf
    $006B6E6C : Result := 16// lnk
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat