IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Les tableaux
        Différence entre un tableau et un tableau statique dans une structure ?
        Comment rendre un tableau global ?
        Comment passer un tableau en paramètre ?
        Comment copier un tableau vers un autre ?

rechercher
precedent    sommaire    suivant    telechargermiroir


Différence entre un tableau et un tableau statique dans une structure ?
auteur : Comtois
Un tableau statique dans une structure ne se comporte pas de la même façon qu'un tableau défini avec la commande Dim. Ceci pour être conforme au format de structures en C/C++ (pour permettre un portage direct des structures de l'API). Ce qui signifie que a[2] assignera un tableau de 0 à 1 (deux éléments) alors que Dim a(2) assignera un tableau de 0 à 2 (trois éléments).

Structure MaStructure
  TableauStatique.l[2] ; Comporte 2 éléments de 0 à 1.
EndStructure
Dim Tableau.l(2) ; Comporte 3 éléments de 0 à 2

Comment rendre un tableau global ?
auteur : Comtois
Par défaut un tableau est local, pour le rendre global il suffit d'ajouter le mot clé Global devant la déclaration du tableau.

Dim TableauLocal.l(10) ; Ce tableau sera local
Global Dim TableauGlobal.l(10) ; Ce tableau sera global

Comment passer un tableau en paramètre ?
auteur : Comtois
Pour passer un tableau en paramètre d'une procédure, il suffit d'indiquer le nombre de dimensions du tableau dans le paramètre de la procédure et d'appeler la procédure en indiquant l'adresse du tableau.
- Tableau() renvoie l'adresse du tableau, vous pouvez également écrire @Tableau().

Procedure Modifier(ptr.point(2)) ; Tableau de type 'point' à deux dimensions
  ptr(1,3)\x=10
EndProcedure

Dim Tableau.point(2,5)

Tableau(1,3)\x=15 ; Tableau(1,3)\x vaut 15
Tableau(1,3)\y=23 ; Tableau(1,3)\y vaut 23 
Modifier(Tableau()) ; Tableau(1,3)\x vaut maintenant 10 , Tableau(1,3)\y est inchangé

Comment copier un tableau vers un autre ?
auteurs : Bob, Emmanuel Delahaye, Comtois
Pour copier un tableau vers un autre, on a deux solutions. La première consiste à copier chaque case du tableau numéro 1 dans la case correspondante du tableau numéro 2. Mais cette manière est parfois complexe et risque d'être lente.

La deuxième possibilité est d'utiliser la fonction CopyMemory(). Elle admet trois paramètres, le premier étant le tableau source et le deuxième le tableau destination. Enfin, le troisième est le nombre d'octets à copier. Par exemple, pour copier le tableau Tableau1 dans le tableau Tableau2, il suffit de faire :

Dim Tableau1.point(10)
Dim Tableau2.point(10)
CopyMemory(Tableau1(), Tableau2(), SizeOf(point)*11) ; 11 éléments
lien : faq Différence entre un tableau et un tableau statique dans une structure ?

rechercher
precedent    sommaire    suivant    telechargermiroir

Consultez les autres F.A.Q's


Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2008 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.