Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


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 ?

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2008  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com