Simplifier l'initialisation de valeur dans un tableau

Partagez votre expérience de PureBasic avec les autres utilisateurs.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Simplifier l'initialisation de valeur dans un tableau

Message par nico »

Fonctionne aussi pour les listes chainées.

Vous savez combien c'est pénible d'initialiser, comme par exemple:

Code : Tout sélectionner

Structure Personne
    Nom.s
    Prenom.s
    Age.l
EndStructure

Global Dim Personne.Personne(4)

Personne(0)\Prenom="Nico"
Personne(1)\Prenom="Dobro"
Personne(2)\Prenom="Comtois"
Personne(3)\Prenom="Flype"
Personne(4)\Prenom="Kwai chang caine"
Je vous propose une macro qui simplifie la travail.

Code : Tout sélectionner

Macro liste(Tableau,chaine,Option=0)
   count=CountString(chaine,",")
   For b=1 To count+1
      a=b-1+Option
      Texte.s=StringField(chaine,b,",")
      tableau=Texte
    Next b
EndMacro

Structure Personne
    Nom.s
    Prenom.s
    Age.l
EndStructure

Global Dim Personne.Personne(4)

;/Je rempli le premier index
Personne(0)\Prenom="Nico"

;/Avec la macro je rempli le tableau à partir de l'index 1
liste(Personne(a)\Prenom,"Dobro,Comtois,Flype,Kwai chang caine",1)

;/On teste le résultat
Debug "------------"
For a=0 To 4
  Debug Personne(a)\Prenom
Next a
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Met le caractère séparateur en paramètre de ta Macro. Ca sera plus propre comme ça !

Lio :P
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

va vraiment que je m'intéresse au Macro moi :D

j'ai meme pas encore regarder a quoi ça sert !! :lol: :lol:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Ok j'ai rajouté le séparateur et la possibilité de mettre des guimmets sans se fouler!:D

Code : Tout sélectionner

Macro liste(Tableau,chaine,Separateur,Option=0)
   count=CountString(chaine,Separateur)
   For b=1 To count+1
      a=b-1+Option
      Texte.s=StringField(chaine,b,",")
      Texte=ReplaceString(Texte,"'",Chr(34))
      tableau=Texte
    Next b
EndMacro

Structure Personne
    Nom.s
    Prenom.s
    Age.l
EndStructure

Global Dim Personne.Personne(4)

;/Je rempli le premier index
Personne(0)\Prenom="Nico"

;/Avec la macro je rempli le tableau à partir de l'index 1
liste(Personne(a)\Prenom,"Dobro,Comtois,'Flype',Kwai chang caine",",",1)

;/On teste le résultat
Debug "------------"
For a=0 To 4
  Debug Personne(a)\Prenom
Next a
Répondre