Page 1 sur 1
Copie de tableau [Résolu]
Publié : jeu. 15/mars/2007 12:59
par Kwai chang caine
Bonjour à tous
Est il possible de copier un tableau dans un autre sans avoir a passer par une boucle qui lis le premier pour le copier dans le second.
Ceci pour gagner du temps quand le tableau est grand.
Peut etre en passant par une copie de mémoire ???? Mais la , encore une fois mes capacités sont dépassées.
Merci et bonne journée
Publié : jeu. 15/mars/2007 13:18
par Patrick88
avec des pointeurs ?
pat
Publié : jeu. 15/mars/2007 13:38
par brossden
Exact pour Patrick88 !
Code : Tout sélectionner
Dim a.l(1000)
Dim b.l(1000)
; Remplissage avec des valeurs aléatoires !!
For n=0 To 1000
a(n)=Random(n)
Next
;Chaque élement du tableau prend 4 octets, la declaration 1000 crée de a(0) à a(1000) donc 1001 élements
; Donc 1001*4 = 4004 octets de long !
CopyMemory(@a(),@b(),4004)
; Vérification !
For n=0 To 1000
Debug Str(a(n))+" "+Str(b(n))
Next
Pour un tableau chaines de caractères c'est impossible je pense car la taille du tableau est changée dynamiquement en fonction des éléments stockés dans ce tableau !
Publié : jeu. 15/mars/2007 16:12
par Kwai chang caine
Je vous remercie tous les deux de votre réponse.
Vous allez me dire que je ne suis jamais content, mais si le tableau contient des strings, la méthode ne marche pas car on ne connait pas la longueur de chaque enregistrement.
Publié : jeu. 15/mars/2007 17:34
par Frenchy Pilou
Swap ?
Publié : jeu. 15/mars/2007 19:47
par Dr. Dri
Kwai chang caine a écrit :Je vous remercie tous les deux de votre réponse.
Vous allez me dire que je ne suis jamais content, mais si le tableau contient des strings, la méthode ne marche pas car on ne connait pas la longueur de chaque enregistrement.
Si si! soit la chaine a une longeur fixe donc on connait sa taille, soit elle n'est pas fixe et c'est donc un pointeur...
Dri
Publié : lun. 19/mars/2007 13:20
par Kwai chang caine
Merci docteur
Tu as evidemment raison (Comme dab)
J'ai modifié le code de BROSSDEN pour que ce soit un tableau de variable et effectivement çamarche aussi.
C'est génial
Code : Tout sélectionner
Dim a.s(1000)
Dim b.s(1000)
; Remplissage avec des valeurs aléatoires !!
For n=0 To 1000
a(n)="Cette fois c'est bien du texte dans le tableau " + Str(Random(n))
Next
;Chaque élement du tableau prend 4 octets, la declaration 1000 crée de a(0) à a(1000) donc 1001 élements
; Donc 1001*4 = 4004 octets de long !
CopyMemory(@a(),@b(),4004)
; Vérification !
For n=0 To 1000
Debug a(n)+" "+ b(n)
Next
Cela va enormement simplifier les copies de tableau que je faisais avec une boucle FOR/NEXT.
Merci à tous de votre aide

Publié : lun. 19/mars/2007 15:56
par Dr. Dri
Kwai chang caine a écrit :Merci docteur
Tu as evidemment raison (Comme dab)
Bah quand on a besoin d'aide on espère une réponse donc en retour quand on peut la donner on se prive pas ^_^
Dri
PS. c'est quoi cette habitude que tout le monde prend de m'appeler docteur ?
Publié : lun. 19/mars/2007 18:30
par Kwai chang caine
Publié : lun. 19/mars/2007 18:39
par Flype
ah c'est beau l'entraide

Publié : lun. 19/mars/2007 18:56
par Kwai chang caine
Salut FLYPE
Tu as raison, on se sent moins seul.
Surtout pour des gens comme moi, car parfois devant mon ecran j'ai l'impression de suivre une emmission sur le tricotage
J'y comprend rien, alors, j'appelle ALICE, euuuh non, le forum et la famille pure, et y'a toujours un grand frere pour me pousser un peu plus loin....................
Pas beaucoup plus loin car je doit surement avoir oublié de déssérer le frein à main, mais plus loin quand même.
Vive la grande famille PURE
