Dimensionner un tableau avec des valeurs

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Dimensionner un tableau avec des valeurs

Message 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

Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Dimensionner un tableau avec des valeurs

Message par Micoute »

Pas mal du tout, merci du partage.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre