Autor Beitrag
christoph
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28

Win XP(SPack1),Win 2000(Spack3)
Delphi 6(Spack2)
BeitragVerfasst: So 09.02.03 02:47 
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:
ausblenden 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 user profile iconTino: Code-Tags hinzugefügt.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 09.02.03 04:51 
ExtractFileExt.
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: 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.

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
christoph Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28

Win XP(SPack1),Win 2000(Spack3)
Delphi 6(Spack2)
BeitragVerfasst: 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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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: www.wotsit.org
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: 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!!!)

ausblenden 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...

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca