Copier gros tableau d'un coup...

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Copier gros tableau d'un coup...

Message par scaraber »

Salut,
Je cherche un moyen de copier un tableau assez gros sans faire des boucle interminable ... et aussi de copier juste un morceau d'un tableau.
a+
Scaraber
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

bouton recherche (Search) sur le forum

retour :

http://www.purebasic.fr/french/viewtopi ... ht=tableau
Dernière modification par Backup le lun. 28/mai/2007 11:49, modifié 1 fois.
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

pour recopier l'intégralité d'un tableau un simple CopyMemory() est effectivement la plus rapide des solution :

Code : Tout sélectionner

;********** tableau initial

a_length = 100

Dim a.l(a_length)

For i = 0 To a_length - 1
  a(i) = Random(1000)
Next

;********** recopie dans le 2ème tableau

Dim b.l(a_length)

CopyMemory(a(), b(), a_length * SizeOf(Long))

;********** vérification

For i = 0 To a_length - 1
  Debug Str(a(i)) + " = " + Str(b(i))
Next

scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

ok, merci beacoup de votre aide
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

et pour juste un morceau - dans le même esprit :

Code : Tout sélectionner

;********** tableau initial

a_length = 100

Dim a.l(a_length)

For i = 0 To a_length - 1
  a(i) = Random(1000)
Next

;********** recopie 20 valeurs dans le 2ème tableau à la position 10.

Dim b.l(a_length)

CopyMemory(@a(10), @b(10), 20 * SizeOf(Long))

;********** vérification

For i = 0 To a_length - 1
  Debug Str(a(i)) + " => " + Str(b(i))
Next

scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

Ok merci ;) heu sinon il y a un moyen de definir toutes les case d'un tableau a une meme valeur (dans le meme style) c'est pour reinitialiser le tableau mais mon programme utilise le zero et identifie les case "vide" avec une valeur de -1
a+
Scaraber
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

scaraber a écrit :Ok merci ;) heu sinon il y a un moyen de definir toutes les case d'un tableau a une meme valeur (dans le meme style) c'est pour reinitialiser le tableau mais mon programme utilise le zero et identifie les case "vide" avec une valeur de -1
a+
Scaraber

Code : Tout sélectionner


Dim tableau.l(200)
Global valeur_dinitialisation =50


For i = 0 To 200
    PokeL(@tableau(i), valeur_dinitialisation)
Next 

CallDebugger
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

Merci :D
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

Heu j'ai encore une question :?:
Comment sa marche pour les tableau a deux dimenion ? sa marche par ligne ou par colone ? pour la copie d'un morceau
a+
Scaraber
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

scaraber a écrit :Heu j'ai encore une question :?:
Comment sa marche pour les tableau a deux dimenion ? sa marche par ligne ou par colone ? pour la copie d'un morceau
a+
Scaraber
il n'y a pas de ligne ou de colonne danbs un tableau, sinon tu as cette organisation en mémoire :
[ ] = une case mémoire,

[ tab(0,0) ][ tab(0,1) ][ tab(0,2) ]...[ tab(1,0) ][ tab(1,1) ]...
scaraber
Messages : 362
Inscription : ven. 15/juil./2005 17:32

Message par scaraber »

Merci c'est ce que je voulait savoir
Répondre