Page 1 sur 1
Restore a$
Publié : sam. 23/juil./2022 11:42
par SPH
Salut,
J'avais posé la question il y a fort longtemps mais comme PB a évolué, je la repose :
Code : Tout sélectionner
For i=1 To 5
a$="SPH_data"+Str(i)
Debug a$
; Et maintenant, l'objet de mon post :
Restore a$
Next
End
;;;
DataSection
SPH_data1:
Data.w 10,0,15,450,30,20
SPH_data2:
Data.w 25,58,74,7,7,1478
SPH_data3:
Data.w 15,215,47,20,17,0
SPH_data4:
Data.w 5,458,78,90,104,4
SPH_data5:
Data.w 510,70,5,410,3,77
EndDataSection
Re: Restore a$
Publié : sam. 23/juil./2022 12:01
par case
je ne comprend pas la question
restore sert a revenir dans une datasection à un label pres defini. pour lire ensuite avec read le contenu des datas suivants
Syntax
Restore label
Description
Ce mot clef permet de placer un indicateur de début de zone pour la commande Read. Le label utilisé par cette commande doit être déclaré dans le bloc DataSection, car il sera déplacé lors de la création de l'exécutable.
Exemple
Code : Tout sélectionner
Restore DonneesTexte
Read.s MonPremierTexte$
Read.s MonSecondTexte$
Restore DonneesNumeriques
Read.l a
Read.l b
Debug MonPremierTexte$
Debug a
End
DataSection
DonneesNumeriques:
Data.l 100, 200, -250, -452, 145
DonneesTexte:
Data.s "Bonjour", "Qu'est-ce", "que ", "c'est ?"
EndDataSection
si on reprend a peu pres ton code...
Code : Tout sélectionner
Restore a$ ;<< utiliser un label ressemblant a une variable est très confus label qu'on aurais pu nommer 'nimportequoi'
For i=1 To 5
Read.b a
a$="SPH_data "+Str(a)
Debug a$ ; ici la variable a$ a ne pas confondre avec a$ le label qu'on aurais pu nommer 'nimportequoi'
next
End
DataSection
a$: ; label a$ ou se trouvent les datas qu'on aurais pu nommer 'nimportequoi'
Data.b 1,2,3,4,5
Re: Restore a$
Publié : sam. 23/juil./2022 13:50
par SPH
Code : Tout sélectionner
For i=1 To 5
a$="SPH_data"+Str(i)
Debug a$
; Et maintenant, l'objet de mon post :
Restore a$
Next
J'essaye de restaurer l'étiquette "SPH_data"+Str(i)
Donc, j'essaye de restaurer "SPH_data1" (si i=1)
Au lieu de restaurer :
restore SPH_data1
le souhaite que a$ contienne l'etiquette "SPH_data1" (ou 2, ou 3, etc....)
====
Si tu veux, c'est comme les premiers basic sur ordi 8 bits des annees 80. On pouvait restaurer la ligne 100 (par exemple).
Re: Restore a$
Publié : sam. 23/juil./2022 19:11
par case
je ne pense pas que ce soit possible.
apres dans les ancien basics tu ne pouvais pas faire restore [variable] tu devais specifier la ligne par exemple 100
test sur amstrad
10 a=20
11 restore a
20 data 1,2,3,4,5
run
Syntax error in 11
tu peux faire ca par contre si ca peux t'aider
Code : Tout sélectionner
Procedure rest(i)
Select i
Case 1
Restore sphdata1
Case 2
Restore sphdata2
Case 3
Restore sphdata3
Case 4
Restore sphdata4
Case 5
Restore sphdata5
EndSelect
EndProcedure
For i=1 To 5
Rest(i)
Debug "sphdata"+Str(i)
For rd=1 To 5
Read.b a
Debug a
Next
Next
End
DataSection
sphdata1:
Data.b 1,2,3,4,5
sphdata2:
Data.b 6,7,8,9,10
sphdata3:
Data.b 11,12,13,14,15
sphdata4:
Data.b 16,17,18,19,20
sphdata5:
Data.b 21,22,23,24,25
Re: Restore a$
Publié : sam. 23/juil./2022 19:14
par SPH
Ok, je ferais a peu prêt comme ça
Thx