Seite 1 von 2

Kleiner Vorschlag für Tipps und Tricks

Verfasst: 31.10.2004 17:42
von dllfreak2001
Hey wie wäre es wenn jemand in die Tipps und Tricks die Regeln für das auslesen von ID3-Tags einfügt?

Am besten wenn noch jemand etwas findet womit man auch v2-Tags auslesen kann.

Hier ne gute Seite:

http://id3lib.sourceforge.net
[/url]

Verfasst: 31.10.2004 17:52
von remi_meier

Verfasst: 31.10.2004 18:25
von dllfreak2001
Ich meinte eigentlich das jemand die Regeln für das auslesen von ID3Tags ins Tipps/Troicks Forum reinsetzt.
Ist ja ziemlich leer und sowas würde ich zu den sinvollen Einträgen zählen.

Verfasst: 31.10.2004 20:32
von Kristel
dllfreak2001 hat geschrieben:Ich meinte eigentlich das jemand die Regeln für das auslesen von ID3Tags ins Tipps/Troicks Forum reinsetzt.
Da hasste eine Aufgabe für dich. :wink:

Verfasst: 01.11.2004 12:12
von dllfreak2001
Naj bin ja nicht so gut beim erklären.

Wenn aber mir noch jemand ne Ressource im I-Net zeigt wo man
noch Infos ID3v2 Tag findet wäre ich zufrieden!

Das ist nur für v1

Code: Alles auswählen

Procedure.s id3v1tag(flnm.s,msdtype.l)

  Dim infotag078.b(128)
ReadFile(0,flnm)
 flngth.l = Lof()
 FileSeek(flngth-128)
 x.l = 0
 Repeat
  x + 1
  infotag078(x) = ReadByte()
 Until Eof(0)
CloseFile(0)

tempostringo.s = Chr(infotag078(1))+Chr(infotag078(2))+Chr(infotag078(3))


If msdtype = 0 
 If tempostringo = "TAG"
  infos.s = "1"
  ProcedureReturn infos
 Else
  infos.s = "0"
  ProcedureReturn infos
 EndIf
EndIf



If tempostringo = "TAG"
 If msdtype = 1
  tempostringo = ""
   For x = 4 To 33
    tempostringo = tempostringo + Chr(infotag078(x))
   Next
   ProcedureReturn tempostringo
 EndIf 

 If msdtype = 2 
    tempostringo = ""
    For x = 34 To 63
     tempostringo = tempostringo + Chr(infotag078(x))
    Next
   ProcedureReturn tempostringo
 EndIf 

 If msdtype = 3 
  tempostringo = ""
  For x = 94 To 97
   tempostringo = tempostringo + Chr(infotag078(x))
  Next
  ProcedureReturn tempostringo
 EndIf 

 If msdtype = 4 
  tempostringo = ""
  For x = 98 To 127
   tempostringo = tempostringo + Chr(infotag078(x))
  Next
  ProcedureReturn tempostringo
 EndIf 

 If msdtype = 5 
  ProcedureReturn Chr(infotag078(128))
 EndIf 
EndIf

EndProcedure


filename.s = OpenFileRequester("Öffnen","","*.mp3",0)

If filename <> ""
 MessageRequester("Infotag",id3v1tag(filename,0))
 MessageRequester("Infotag",id3v1tag(filename,1))
 MessageRequester("Infotag",id3v1tag(filename,2))
 MessageRequester("Infotag",id3v1tag(filename,3))
 MessageRequester("Infotag",id3v1tag(filename,4))
 MessageRequester("Infotag",id3v1tag(filename,5))
 
EndIf

:freak:

Verfasst: 01.11.2004 16:41
von Rob
Irgendwie sinnlos der Thread...

Infos zu ID3v2 gibts z.B. über Google: [google]ID3v2[/google]. Erstes Ergebnis, "In depth information".

Verfasst: 01.11.2004 17:22
von dllfreak2001
Habe das total übersehen thx ROB.

Verfasst: 01.11.2004 18:35
von redacid
Warum so umständlich mit Array? Diese Art und Weise reicht doch: http://purearea.net/pb/CodeArchiv/Music ... v1-Tags.pb

Verfasst: 01.11.2004 19:06
von dllfreak2001
Ich bin jaeigentlich noch am Anfang meiner PB-Karierre daher hebe ich
noch nicht viel mit dem auslesen von einzelnen Tags und Headern rumgespielt. Mit ein Grund warum ich den Peek-Befehlen bis jetzt keine Beachtung geschenkt habe.
Super den Code werde ich mir merken

Verfasst: 01.11.2004 20:06
von redacid
dllfreak2001 hat geschrieben:Ich bin jaeigentlich noch am Anfang meiner PB-Karierre daher hebe ich
noch nicht viel mit dem auslesen von einzelnen Tags und Headern rumgespielt. Mit ein Grund warum ich den Peek-Befehlen bis jetzt keine Beachtung geschenkt habe.
Super den Code werde ich mir merken
Ach so, ich hatte irgendwie das Gefühl, dass du schon "weiter" bist. Aber mit den Kommentaren, die ich da damals eingefügt hatte, solltest du eigentlich klar kommen. Schließlich ist der Code im Grunde sehr übersichtlich. Es lässt sich daraus auch leicht eine Procedure schreiben.

Bei weitergehenden Fragen kannst du natürlich gerne im Forum (oder direkt bei mir) anfragen.

Ansonsten ist es immer von Vorteil, die PureArea einmal zu durchforsten, besonders das Codearchiv.

Ach ja, diese Anfrage hat natürlich nicht viel mit API zu tun und wird deshalb besser in die Laberecke verschoben.