Erreur ***FREE***

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Emperor
Messages : 36
Inscription : lun. 28/juil./2008 18:36
Localisation : Québec, Québec

Erreur ***FREE***

Message par Emperor »

Je viens d'avoir la plus bizarre et non-explicite des erreurs de compilation. "Ligne 26 = ***FREE***"

Qu'est-ce que ça veut dire???

Voici le code:

Code : Tout sélectionner

Procedure setPlaylist(file$,*list,*struct.mp3)
	While found
		file$ = NextSelectedFileName()
		If file$ = ""
			found = 0
		Else
			getmp3Tag(file$,*struct)
			*struct\path = file$
			GetMP3Info(file$,*struct)
			*ptr = AddMapElement(*list,*struct\path)
			*ptr = *struct
		EndIf
	Wend
EndProcedure
The time flies away
Flies towards the farrest skies
A rush of adrenaline
Stopped by the global acceptation
Of me


Ambient Reminiscences - Mouchalagane
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Erreur ***FREE***

Message par Le Soldat Inconnu »

avec un code incomplet, on ne risque pas de trouver.

Donne au moins quelque chose qui compile, parce que la ....
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
Emperor
Messages : 36
Inscription : lun. 28/juil./2008 18:36
Localisation : Québec, Québec

Re: Erreur ***FREE***

Message par Emperor »

Pas de problème:

OPERATION.PBI:

Code : Tout sélectionner

; Structure MP3INFO
; 	fileSize.l    ; in bytes
;   	fileLength.l  ; in miliseconds
;  	bitrate.l     ; in bps. if negative: variable bitrate,bitrate=negated average
;  	frequency.l   ; in Hertz
;   	nFrames.l     ; number of MPEG frames
; EndStructure
; 
; Structure track
; 	name.s			;track name
; 	path.s			;file path
; 	infos.MP3INFO
; EndStructure

Declare getmp3Tag(file$,*struct.mp3)

Procedure setPlaylist(file$,*list,*struct.mp3)
	While found
		file$ = NextSelectedFileName()
		If file$ = ""
			found = 0
		Else
			getmp3Tag(file$,*struct)
			*struct\path = file$
			GetMP3Info(file$,*struct)
			*ptr = AddMapElement(*list,*struct\path)
			*ptr = *struct
		EndIf
	Wend
EndProcedure

Procedure getmp3Tag(file$,*struct.mp3)
    If ReadFile(0,File$)
        *MemPointer =  AllocateMemory(128) ; 128 byte reservieren
        If  *MemPointer
            FileSeek(0,Lof(0)-128)
            ReadData(0,*MemPointer, 128) ; die letzten 128 byte der Datei auslesen
            ; Debug mempointer
            CloseFile(0)
            header$    = PeekS(*MemPointer, 3)
           
            If header$ = "TAG"                               ;  3 Zeichen
                *struct\title = Trim(PeekS(*MemPointer +   3,30)) ; 30 Zeichen
                *struct\artist    = Trim(PeekS(*MemPointer +  33,30)) ; 30 Zeichen
                *struct\album     = Trim(PeekS(*MemPointer +  63,30)) ; 30 Zeichen
                *struct\year      = Trim(PeekS(*MemPointer +  93, 4)) ;  4 Zeichen
                *struct\comment   = Trim(PeekS(*MemPointer +  97,30)) ; 30 Zeichen
                *struct\genre      = PeekB(*MemPointer + 127)          ;  1 Zeichen
            EndIf
        EndIf
	Else
	    MessageRequester("Error","Bitte Wählen Sie eine MP3 Datei aus!",0)
	EndIf 
EndProcedure
MAIN.PB

Code : Tout sélectionner

Macro p ;pattern
	pattern$=pattern$ + 
EndMacro

;structures

Structure MP3INFO
	fileSize.l    ; in bytes
  	fileLength.l  ; in miliseconds
 	bitrate.l     ; in bps. if negative: variable bitrate,bitrate=negated average
 	frequency.l   ; in Hertz
  	nFrames.l     ; number of MPEG frames
EndStructure

Structure mp3 Extends MP3INFO
	title.s
	artist.s
	album.s
	genre.b
	comments.s
	year.s
	path.s
EndStructure
	

; Includes

; Files Operations:
XIncludeFile "files.pbi"

; Controls Window:
XIncludeFile "ctrls.pbi"

; Playlists and tracklists Window:
XIncludeFile "lists.pbi"

; Global operations:
XIncludeFile "operations.pbi"

; Pattern for files which are taken by the prog
pattern$ = "Fichiers de Son|*.mid;*.midi;*.mp3;*.mod;*.ogg;*.flac;*.wav;*.mpl|" ;index 0
p "Fichiers MIDI|*.mid;*.midi|" 												;index 1
p "Fichiers MP3|*.mp3|"															;index 2
p "Fichiers Module|*.mod|"														;index 3
p "Fichiers OGG|*.ogg|"															;index 4
p "Fichiers FLAC|*.flac|"														;index 5
p "Fichiers WAVE|*.wav|"														;index 6
p "Liste de Lecture|*.mpl;*.m3u"												;index 7

; playlist map:

Global NewMap nowPlaylist.track()

Declare showPlaylist(*list)

isOpenLists.b = 0

isOpenLists = open_Lists()
open_Controls()

;...

Repeat
	EVENT = WaitWindowEvent()
	Select EVENT
		Case #PB_Event_CloseWindow
			Select EventWindow()
				Case #ctrls
					If isOpenLists
						CloseWindow(#lists)
					EndIf
					CloseWindow(#ctrls)
					End
				Case #lists
					If isOpenLists
						CloseWindow(#lists)
						isOpenLists = 0
					EndIf
			EndSelect
		Case #PB_Event_Menu
			Select EventMenu()
				Case #ouvrir
					file$=getFile(pattern$)
					song.mp3
					setPlaylist(file$,@nowPlaylist(),@song)
					showPlaylist(@nowPlaylist())
				Case #save
				Case #quitter
				Case #options
				Case #about
			EndSelect
		Case #PB_Event_Gadget
			Select EventGadget()
				Case #back
				Case #play
				Case #pause
				Case #stop
				Case #next
				Case #mute
				Case #volume
				Case #timer
			EndSelect
	EndSelect
ForEver

Procedure showPlaylist(*list)
	While NextMapElement(*list)
		length$ = Str(Int((*list\fileLength) / 1000))
		AddGadgetItem(#tracklist,-1,length$+Chr(10)+*list\title+Chr(10)+*list\artist+Chr(10)+*list\album)
	Wend
EndProcedure
Voila. Si j'en ai pas assez mis, je peux rajouter mes 3 autres includes :P
The time flies away
Flies towards the farrest skies
A rush of adrenaline
Stopped by the global acceptation
Of me


Ambient Reminiscences - Mouchalagane
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Erreur ***FREE***

Message par comtois »

la liste des messages se trouve dans le répertoire catalogs de purebasic, dans le fichier compiler.catalog, il faudrait le comparer avec le fichier anglais et le compléter.
C'est encore en beta, il faudra attendre la version finale.

Extrait :
139 = La liste suivante est deja declaree: %s.
140 = *** FREE ***
141 = 'ElseIf' ne peut pas etre utilise apres 'Else'.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Erreur ***FREE***

Message par comtois »

à quoi ça sert que tu déclares une map en globale si c'est pour la passer en paramètre ensuite ?

Code : Tout sélectionner

Global NewMap nowPlaylist.track()
...
setPlaylist(file$,@nowPlaylist(),@song)
Et il y a une erreur dans le paramètre de cette procédure

Code : Tout sélectionner

Procedure setPlaylist(file$,*list,*struct.mp3)
 
EndProcedure
il faut utiliser le mot clé Map (List pour une liste en paramètre et Array pour un tableau en paramètre), et ça devient :

Code : Tout sélectionner

Procedure setPlaylist(file$,Map *list.track(),*struct.mp3)
 
EndProcedure
Et voila un code pour afficher ton message

Code : Tout sélectionner

NewMap toto.POINT()

Procedure Test(*List)
AddMapElement(*list,"titi")
EndProcedure

TEST(toto())
en anglais le message est le suivant , et c'est curieux , je ne trouve pas ce texte dans le fichier compiler.catalog !
---------------------------
PureBasic
---------------------------
Line 4: Bad parameter type: a map is expected.
---------------------------
OK
---------------------------
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Emperor
Messages : 36
Inscription : lun. 28/juil./2008 18:36
Localisation : Québec, Québec

Re: Erreur ***FREE***

Message par Emperor »

merci comtois, jallais le corriger, mais impossible d'avancer plus quand il y a une erreur de ce genre.

Merci beaucoup :D
The time flies away
Flies towards the farrest skies
A rush of adrenaline
Stopped by the global acceptation
Of me


Ambient Reminiscences - Mouchalagane
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Erreur ***FREE***

Message par comtois »

Si tu veux le message en clair, tu peux éditer ton fichier compiler.catalog dans le répertoire catalogs\Francais
103 = Type du parametre incorrect: une Map est attendue.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Répondre