Code : Tout sélectionner
; Info Tag-Music
;****** Programme par:
;****** Parole de JOJO
Global mss.s
Procedure Ready(tttt.s,display.s)
FileSeek(0,0):Repeat
li1.s= ReadString(0,#PB_Ascii):find=FindString(li1,tttt,0)
If Eof(0):find=10000:EndIf
Until find<>0:If find<>10000:loc1=Loc(0)
mem=AllocateMemory(20):ReadData(0,Mem,20)
FileSeek(0,loc1+2):len=ReadCharacter(0)
FileSeek(0,loc1+6):memo=AllocateMemory(len-1)
ReadData(0,memo,len-1):FileSeek(0,loc1+6)
gh.s= ReadString(0,#PB_Ascii):alb.s=Mid(gh,1,Len(gh)-4)
mss+display+" : "+alb+Chr(10):EndIf:
EndProcedure
fil.s=OpenFileRequester("","","*mp3|*.MP3",0):If OpenFile(0,fil)
; DEBUT
Mem=AllocateMemory(3):ReadData(0,Mem,3):id3.s=PeekS(Mem,3)
If id3="ID3":mss+"Il y a des donnees ID3 au debut"+Chr(10)
FileSeek(0,3):mss+"ID3 version "+Str(ReadByte(0))+Chr(10)
mss+"Autres infos : "+Str(ReadByte(0))+";"+Str(ReadByte(0))+";"+Str(ReadByte(0))+";"+Str(ReadByte(0))+";"+Str(ReadByte(0))+";"+Str(ReadByte(0))+Chr(10)
Ready("TIT2","Titre"):Ready("TPE1","Artiste")
Ready("TALB","Album"):Ready("TYER","Year")
Ready("TRCK","Track"):Ready("COMM","Comment"):Ready("TCON","Genre")
mss+Chr(10)+Chr(10):EndIf
; FIN
MemPointer=AllocateMemory(128):FileSeek(0,Lof(0)-128):ReadData(0,MemPointer,128):tag.s=PeekS(MemPointer,3)
If tag="TAG":mss+"Il y a des donnees TAG a la fin"+Chr(10)
mss+"Titre : "+Trim(PeekS(MemPointer+3,30))+Chr(10)
mss+"Artiste : "+Trim(PeekS(MemPointer+33,30))+Chr(10)
mss+"Album : "+Trim(PeekS(MemPointer+63,30))+Chr(10)
mss+"Year : "+Trim(PeekS(MemPointer+93,4))+Chr(10)
mss+"Comments : "+Trim(PeekS(MemPointer+97,30))+Chr(10)
mss+"Genre : "+Str(PeekB(MemPointer+127))+Chr(10):EndIf
CloseFile(0):MessageRequester(fil,mss):EndIf