Restore a$

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Restore a$

Message 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

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Restore a$

Message 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
ImageImage
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Re: Restore a$

Message 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).

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Restore a$

Message 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
Dernière modification par case le sam. 23/juil./2022 19:18, modifié 1 fois.
ImageImage
Avatar de l’utilisateur
SPH
Messages : 4945
Inscription : mer. 09/nov./2005 9:53

Re: Restore a$

Message par SPH »

Ok, je ferais a peu prêt comme ça 😎

Thx

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Répondre