Tableau (Dim)

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Tableau (Dim)

Message par pat »

Bonjour à tous,

PB permet (heureusement) de pouvoir transmettre en paramètre (grâce à ARRAY) les tableaux.
Pour cela, voir l'exemple de PB dans l'aide.
L'exemple fourni transmet un tableau d'indice 10.
Essayez à la place du nombre 10 d'affecter une variable (par exemple variable=10) et donc de transmettre un tableau (par exemple Montableau(variable)).
Vous aurez une erreur.
Ce qui veut dire qu'on ne peut transmettre en paramètre un tableau avec comme indice une variable.
Une sérieuse limitation vu que souvent on ne connaît pas la taille des tableaux.
Je pense que PB peut très facilement réparer ce manquement que je pense important.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Tableau (Dim)

Message par Backup »

pat a écrit : Ce qui veut dire qu'on ne peut transmettre en paramètre un tableau avec comme indice une variable.

peut etre une autre voie a suivre :

Code : Tout sélectionner

Declare tintin(Array toto(1) )
element=10 ; defii une valeur dans la variable "element"
Dim toto(element) ; dimensionne le tableau toto avec ctte variable

; remplis le tableau avec des chiffre de 0 a 10
taille_tableau=ArraySize(toto(),1) ; recupere la taille du tableau

For i=0 To taille_tableau
  toto(i)=i
Next i
CallDebugger
tintin( toto() )






Procedure tintin( Array toto(1) )
  taille_tableau=ArraySize(toto(),1) ; recupere la taille du tableau
  
  For i=0 To taille_tableau
    Debug toto(i)
  Next i
EndProcedure


pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Re: Tableau (Dim)

Message par pat »

Merci Dobro.
Evidemment, avec ArraySize on connaît la taille du tableau.
Mais cela n'enlève rien qu'on ne peut pas transmettre en paramètre un tableau avec comme indice une variable.
On peut toujours se débrouiller pour pallier à ce manquement mais le travail allonge le temps d'exécution du programme et ce n'est pas très naturel.
Je pense qu'une petite amélioration de PB ne serait pas de trop.
anissa
Messages : 136
Inscription : mer. 13/oct./2010 15:43

Re: Tableau (Dim)

Message par anissa »

CallDebugger

C'est la 1èr fois qu je vois ça! que fait cette instruction?

merci
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Re: Tableau (Dim)

Message par Cls »

anissa a écrit :CallDebugger

C'est la 1èr fois qu je vois ça! que fait cette instruction?

merci
Elle appelle le debugger... :mrgreen:
En fait elle suspend l’exécution du programme pour donner le contrôle au debugger qui te permet alors de visualiser l'état des variables, des zones mémoires, etc. Tu peux aussi faire du pas à pas.
Répondre