Page 1 sur 1

Dimensionner un tableau avec des valeurs

Publié : sam. 12/août/2017 11:55
par microdevweb
Un petit reproche que je peux faire à PureBasic est de ne pas pouvoir initialiser un tableau à sa création.

Exemple:

Code : Tout sélectionner

Define monTableau(5)={1,2,3,4,5} ; Ne fonctionnera pas
Voici deux macros qui peuvent le faire

Remarque: Je n'ai malheureusement pas peux inclure les strings et décimaux dans la même macro. Et je n'ai pas peux utiliser TypeOf non plus d'ou l'ajout du choix de variable.

Code : Tout sélectionner

Macro mDim(Variable,value,Type=#PB_Long)
  Dim Variable(CountString(value,",")+1)
  Define i
  For i=1 To CountString(value,",")+1
    Select Type
      Case #PB_Long,#PB_Integer
        Variable(i-1)=Val(StringField(value,i,","))
      Case #PB_Float
        Variable(i-1)=ValF(StringField(value,i,","))
      Case #PB_Double
        Variable(i-1)=ValD(StringField(value,i,","))
    EndSelect
  Next
EndMacro
Macro mSDim(Variable,value)
  Dim Variable(CountString(value,",")+1)
  Define i
  For i=1 To CountString(value,",")+1
    Variable(i-1)=StringField(value,i,",")
  Next
EndMacro
; Teste
Define mDim(test.l,"1,2,3,4,5")
Debug "Liste du tableau de long"
For i=0 To ArraySize(test())-1
  Debug test(i)
Next
Define mDim(test2.f,"0.75,2.30,3.60,4.80,5.47",#PB_Float)
Debug "Liste du tableau de réel"
For i=0 To ArraySize(test2())-1
  Debug test2(i)
Next
Define mDim(test3.d,"0.75,2.30,3.60,4.80,5.47",#PB_Double)
Debug "Liste du tableau de double"
For i=0 To ArraySize(test3())-1
  Debug test3(i)
Next
Define mSDim(test4.s,"Zorro,Toto,Martin,Max,Gérard,guillaume")
Debug "Liste du tableau de string"
For i=0 To ArraySize(test4())-1
  Debug test4(i)
Next


Re: Dimensionner un tableau avec des valeurs

Publié : sam. 12/août/2017 13:53
par Micoute
Pas mal du tout, merci du partage.