Page 1 sur 1

Je ne comprend plus

Publié : ven. 27/sept./2013 11:01
par MLD
Bonjour a tous
Je revient sur ce forum avec le PB 5.20 et voici que beaucoup de mes programmes me posent des problèmes. comme ceci qui m'indique une erreur?

Code : Tout sélectionner

DataSection
Image0:IncludeBinary "47.ico"
Image1:IncludeBinary "283.ico"
Image2:IncludeBinary "315.ico"
Image3:IncludeBinary "378.ico"
Image4:IncludeBinary "380.ico"
EndDataSection
je ne comprend pas
Quelqu'un peut'il éclairé ma lanterne?

Re: Je ne comprend plus

Publié : ven. 27/sept./2013 11:08
par Backup
MLD a écrit :Bonjour a tous
Je revient sur ce forum avec le PB 5.20 et voici que beaucoup de mes programmes me posent des problèmes. comme ceci qui m'indique une erreur?

Code : Tout sélectionner

DataSection
Image0:IncludeBinary "47.ico"
Image1:IncludeBinary "283.ico"
Image2:IncludeBinary "315.ico"
Image3:IncludeBinary "378.ico"
Image4:IncludeBinary "380.ico"
EndDataSection
je ne comprend pas
Quelqu'un peut'il éclairé ma lanterne?

normal , depuis la Version 5.20 , il existe la notion de Module (voir la doc )

qui utilisent le symbole "::"

donc dorénavant les Labels doivent etre séparé du symbole de coupure de ligne ":"

en clair tes includes doivent avoir cette syntaxe

Code : Tout sélectionner

Image4: :IncludeBinary "380.ico"
c'est a dire le label : "Image4:" puis espace,puis le symbole de coupure de ligne : " : " donc : "Image4: Espace ":" <-- symbole de coupure :)

ou bien sur 2 lignes :

Code : Tout sélectionner

 
Image4:
IncludeBinary "380.ico"
la correction est donc :

Code : Tout sélectionner

DataSection
	Image0: :IncludeBinary "47.ico"
	Image1: :IncludeBinary "283.ico"
	Image2: :IncludeBinary "315.ico"
	Image3: :IncludeBinary "378.ico"
	Image4: :IncludeBinary "380.ico"
EndDataSection
; EPB

Re: Je ne comprend plus

Publié : ven. 27/sept./2013 13:07
par MLD
@ Dobro

Merçi. C'est un peu regrètable toutes ces imcompatibilitées entre versions.
Heureusement que je ne pratique pas de la même manières avec mes clients et leurs milliers de lignes de données qu'ils me demandent de manipuler dans tous les sens.
Ils me font en général signé pour une durée de vie du logiciel de 15 ans,sans retouche de leurs fichiers de données.

Re: Je ne comprend plus

Publié : ven. 27/sept./2013 20:04
par Backup
le point positif, c"est que Fred nous laisse a disposition
les anciennes version de Purebasic
donc, si vraiment on ne doit pas changer le code .. on peut rester avec la version
sur lequel il a été codé ... :)

Re: Je ne comprend plus

Publié : ven. 27/sept./2013 22:52
par MetalOS
Pourquoi avoir ajouter ces ":" je ne comprend pas l'intérêt. Si quelqu'un pouvait m'expliquer ?

Re: Je ne comprend plus

Publié : sam. 28/sept./2013 9:43
par Backup
c'est pourtant clair !

le signe ":" (la césure ) sert a mettre sur une seule ligne plusieurs lignes !

exemple :

Code : Tout sélectionner

for i=1 to 255:debug chr(i):next i
le signe ":" apres une notation sert de label exemple

Code : Tout sélectionner

a=20
if a=20 
	goto label
	Else 
	end
endif

label:
debug "le saut a été efectué"
calldebugger

; EPB
ce qui veut dire que si on utilise un label xxxx: et qu'on ecrit sur la meme ligne la suite du code
il faut ajouter le ":" de cesure donc :

Code : Tout sélectionner

DataSection
   Image0: :IncludeBinary "47.ico"
   Image1: :IncludeBinary "283.ico"
   Image2: :IncludeBinary "315.ico"
   Image3: :IncludeBinary "378.ico"
   Image4: :IncludeBinary "380.ico"
EndDataSection
; EPB
soit pour la premiere ligne
le label Image0: suivi d'un espace puis le ":" de cesure de ligne puis la suite du code "IncludeBinary "47.ico""
donc : " Image0: :IncludeBinary "47.ico""


on est obligé de mettre un espace entre les 2 ": :"
car depuis la version 5.20 le signe "::" (sans espace ) designe l'utilisation d'un module (voir doc sur les modules )
exemple

Code : Tout sélectionner

Ferrari::CreateFerrari()
remarquez le "::" sans espace !!

cela peut derouter, mais en fait c'est une convention

quoiqu'il en soit avant la 5.20 pouvoir faire

Code : Tout sélectionner

DataSection
Image0:IncludeBinary "47.ico"
EndDataSection

n'etait pas logique !! le label apparait bien , mais il n'y avait aucun signe de coupure (cesure) de ligne .....

maintenant c'est clair

Image0: :IncludeBinary "47.ico"


on separe bien le label de la coupure de ligne ....

autre solution

Code : Tout sélectionner

DataSection
Image0:
IncludeBinary "47.ico"
EndDataSection
le mettre sur 2 lignes evite une eventuelle confusion ...

Re: Je ne comprend plus

Publié : sam. 28/sept./2013 10:34
par Ar-S
le mettre sur 2 lignes évite une éventuelle confusion ...
C'est le plus simple et ça évite les bourdes.

Re: Je ne comprend plus

Publié : sam. 28/sept./2013 15:51
par MetalOS
Ok c'est plus claire maintenant. Merci Dobro ;-)