Voila ici les sources : http://stef-o.chez.tiscali.fr/taggueur.zip
N'oubliez pas d'installer la lib vidéo de Chriss fournie dans le ZIP
J'attend vos remarques

Ca ne fonctionne pas non plus, ca dl la page qui affiche le message d'erreur et donne un zip corrompu (logique).nico a écrit :Ou bien enregistrer la cible sous!
Je suis entièrement d'accord avec toi, mais il y a peu tu as bien disLukky a écrit :N'importe quoi !
Dire que tu ne veux pas travailler sur le WMA pour ne pas cautionner Microsoft est vraiment une belle connerie.
T'es encore coincé dans la petite guéguerre Windows/Linux.
Bein mon vieux.
JL
Non ?On peux être contre une idée, mais arrondir un peu les angles pour donner son avis n'a rien de déshonorant.
Pas la peine d'être aussi brutal.
Code : Tout sélectionner
Procedure.b ReadTagV2(fichier.s)
Protected m_tag.ID3TagV23Header
Protected m_flags.ID3TagV2Flags
Protected m_frames.l
Protected m_fr.ID3TagV23Frame
Protected m_compteur.l : m_numFrames.l
Protected m_taille.l
Protected hOrgFile.l
Protected m_identifiant.s
hOrgFile = ReadFile(#READ_INPUT_FILE_TAG, fichier)
UseFile(#READ_INPUT_FILE_TAG)
If hOrgFile = 0
;MessageRequester("Error", "An error occured while opening " + fichier, 0)
ProcedureReturn #False
EndIf
; InitTagV2()
ReadData(@m_tag, SizeOf(ID3TagV23Header))
; the size is coded on 7 bits, needed to for not be confused with a synchsignal
m_taille = (m_tag\size[0] << 21) | (m_tag\size[1] << 14) | (m_tag\size[2] << 7) | m_tag\size[3]
; revisions are compatible between them but
; version aren't, so we must check this
If m_tag\version <> 3
;MessageRequester("Error", "Tag version is different than 2.3", 0)
CloseFile(#READ_INPUT_FILE_TAG)
ProcedureReturn #False
EndIf
ProcessFlags(m_tag\flag, @m_flags)
If m_flags\unknown
;MessageRequester("Error", "Unkown flag detected !", 0)
CloseFile(#READ_INPUT_FILE_TAG)
ProcedureReturn #False
EndIf
ReadFrames(m_tag, @m_numFrames)
; Reset the list index before the first element.
;; ResetList(frameArray())
;; For m_compteur = 0 To m_numFrames - 1
While FirstElement(frameArray())
;; NextElement(frameArray())
m_identifiant = Space(4)
m_identifiant = Chr((frameArray()\identifiant[0])) + Chr((frameArray()\identifiant[1])) + Chr((frameArray()\identifiant[2])) + Chr((frameArray()\identifiant[3]))
m_taille = (frameArray()\size[0] << 21) | (frameArray()\size[1] << 14) | (frameArray()\size[2] << 7) | frameArray()\size[3]
Debug m_identifiant + " -> " + frameArray()\datas + " ("+Str(m_taille)+")"
Select m_identifiant
Case "TIT2"
If (frameArray()\datas)
m_tagV2Info\title = frameArray()\datas
EndIf
Case "TPE1"
If (frameArray()\datas)
m_tagV2Info\artist = frameArray()\datas
EndIf
Case "TALB"
If (frameArray()\datas)
m_tagV2Info\album = frameArray()\datas
EndIf
Case "TYER"
If (frameArray()\datas)
m_tagV2Info\year = frameArray()\datas
EndIf
Case "TCON"
If (frameArray()\datas)
m_tagV2Info\genre = frameArray()\datas
EndIf
Case "COMM"
If (frameArray()\datas)
m_tagV2Info\comments = frameArray()\datas
EndIf
Case "TCOM"
If (frameArray()\datas)
m_tagV2Info\composer = frameArray()\datas
EndIf
Case "TCOP"
If (frameArray()\datas)
m_tagV2Info\copyright = frameArray()\datas
EndIf
Case "WXXX"
If (frameArray()\datas)
m_tagV2Info\url = frameArray()\datas
EndIf
Case "TENC"
If (frameArray()\datas)
m_tagV2Info\encoded_by = frameArray()\datas
EndIf
Case "TRCK"
If (frameArray()\datas)
m_tagV2Info\track = frameArray()\datas
EndIf
Case "TOPE"
If (frameArray()\datas)
m_tagV2Info\orig_artist = frameArray()\datas
EndIf
EndSelect
DeleteElement(frameArray())
Wend
CloseFile(#READ_INPUT_FILE_TAG)
ProcedureReturn #True
EndProcedure