Entwickler-Ecke
Dateizugriff - Dateityp herausfinden......
christoph - So 09.02.03 02:47
Titel: Dateityp herausfinden......
Hallo allerseits...
Gibt es die möglichkeit einen Datetyp herauszufinden?? Beispiel: Ich arbeite grade an einem Musikprogramm.....wobei es aber wichtig ist das beim laden (opendialog) herausgefunden wird um welchen Dateityp es sich handelt...
Beispiel:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| funktion FileTyp (a:string): Integer If Filetyp = ogg or wav or mp3 then Result =1 else If Filetyp = wma then Result = 2 end; |
wichtig nicht die Endung sondern der Dateityp ist wichtig weil man könnte ja auch ne wma als mp3 umbenennen...
Vielen Dank schon mal im Vorraus
Gruss
Chris
Moderiert von
Tino: Code-Tags hinzugefügt.
Delete - So 09.02.03 04:51
ExtractFileExt.
DaRkFiRe - So 09.02.03 13:19
Nee, Luckie - er hat ja gerade gesagt, dass man die Dateinamen der WMAs in MP3-Endungen umbenennen kann.
In diesem Fall rate ich, die ersten 100 Bytes der Datei auszulesen und vom Muster (Header!?) auf das Datei-Format zu schließen.
christoph - So 09.02.03 19:24
@ DaRkFiRe
Genaus das meinte ich......
Ich möchte im Prinzip den Header auslesen nur wie....???
Ich vermute mal über einen Filestream oder ...(hab mit Filestream leider noch nicht gearbeitet.............
Vielleicht hast ja ein kleines Beispiel....
Vielen Dank im Vorraus
Gruss
Chris
Delete - So 09.02.03 19:58
Mist ich hatte den Satz unter dem Code nicht mehr gelesen. Ja, da muß man wohl den Header auslesen. Informationen zu den Dateiformaten gibt es hier:
http://www.wotsit.org
DaRkFiRe - So 09.02.03 20:15
Ähm - ich hab jetzt keinen Schimmer, wie's bei MP3 aussieht und eine WMA hab ich zum Testen auch nich auf meiner Festplatte. Und mit dem Dateiformat möchte ich mich jetzt auch ungern befassen.
Du musst einen Puffer einlesen (100 Bytes z.B.) und diesen später dann in einen Record quetschen. Sicher wird WMA eine Signatur haben - also quasi eine Zeichenfolge am Anfang der Datei, die die Datei als WMA-Datei identifiziert (hier alles Vermutung - ICH WEIß NICHT, OB ES SO IST!!!)
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| type TWMAHeader = record ... end;
function isWMA(sFileName:STRING):BOOLEAN; var RFS:TFileStream; var hdWMA:TWMAHeader; begin Result:=False; RFS:=TFileStream.Create(sFileName,fmOpenRead OR fmShareDenyWrite); RFS.Read(hdWMA,sizeof(hdWMA)); IF hdWMA.<...> = <...> THEN Result:=True; RFS.Free(); end. |
Wie gesagt - so würde ich's machen...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!