Page 1 sur 1
redimensionner un tableau.
Publié : mar. 13/déc./2005 13:54
par freddix
Salut.
J'ai une question.
J'ai un tableau dont je veux gérer le nombre d'entités dynamiquement pour des problèmes de mémoire.
Au début le tableau sera dimensionné avec 1 élement.
A chaque fois qu'on ajoute une entité, le tableau augmentera de 1 composant.
A chaque fois qu'on supprime une entité, le tableau se réduit de 1 composant.
Le problème est le suivant.
Si j'utilise Dim MonTableau( NouvelleValeur )
Il supprime automatiquement le contenu de tout mon tableau de 0 à NouvelleValeur (que NouvelleValeur soit supérieur ou inférieur à l'ancienne dimension du tableau.
Y aurait-il une façon d'éviter cela ?
Merci.
Publié : mar. 13/déc./2005 13:58
par Chris
Soit tu utilises les listes chaînées, ce qui est le plus pratique, soit il faut que tu crées un second tableau pour stocker ce qui se trouve dans le premier, puis tu redimensionnes le premier, et tu recopies le second dans le premier.
Entre les deux, y a pas photo, les listes chaînées sont gagnantes.
Publié : mar. 13/déc./2005 14:47
par freddix
peuvent-elles être utilisées dans une DLL ?
Publié : mar. 13/déc./2005 16:03
par Chris
Oui, en principe, il n'y a pas de problème.
Mais ça, c'est facile à vérifier.
Tu fais une dll bidon avec une liste chainée dedans, et tu testes
Publié : mar. 13/déc./2005 18:37
par freddix
mouais ... c'est quand même plus complêxe qu'un simple Dim

Publié : mar. 13/déc./2005 19:23
par Chris
freddix a écrit :mouais ... c'est quand même plus complêxe qu'un simple Dim

C'est toi qui voit.
Publié : mar. 13/déc./2005 21:04
par Dr. Dri
Si tu ne veux pas créer de deuxieme tableau tu peux passer par un buffer temporaire (allocatememory, copymemory, dim, freememory)
Dri

Publié : mer. 14/déc./2005 7:17
par cederavic
Bip moi sur MSN si tu as besoin Freddix

Je pense aussi que les liste chainées sont les mieux adaptées
Publié : mer. 14/déc./2005 8:03
par lionel_om
Ou utiliser ma Lib Vector
Je mettrai la nouvelle version bientot en ligne (encore plus optimisée et avec des nouvelles fonctions...)
Liens de l'ancienne :
Lib Vector (avec la liste des confions quelle contient...)

Publié : mer. 14/déc./2005 13:16
par Backup
freddix a écrit :mouais ... c'est quand même plus complêxe qu'un simple Dim

je pensai comme toi avant de faire mon PUREGOLO
une liste chainéé c'est en faite une pile !!!
quant t'a compris ça t'as tout compris !!
tu cree ta liste , ensuite tu pose tes elements dedans
une simple boucle FOREACH -NEXT pour lire tout les element un par un
ou bien tu peut lire l'element que tu choisi , comme si des livres etaient rangé
dans une bibliotheque , et que t'en prend un au hasard , (sauf que dans une liste c'est comme ci tu pouvais lire ton livre sans le sortir du rayonnage

)
franchement met toi y , c'est tres simple ...
j'ai vraiment du mal a reutiliser les tableaux maintenant !
le tableau reste la reference pour les données multi-dimentionnelles

Publié : mer. 14/déc./2005 14:02
par lionel_om
Par contre, tout est en global : listes et tableaux ...
Fred, ca sera modifié dans la V4 ???

Publié : mer. 14/déc./2005 14:38
par Chris
lionel_om a écrit :Par contre, tout est en global : listes et tableaux ...
Fred, ca sera modifié dans la V4 ???

C'est très bien, que ce soit global!
Moi, j'espère que ça le restera, même si on peut les rendre locales par une déclaration.
Et pour ce cas précis, que ce soit tableau ou liste, c'est pour mettre dans une dll. Alors Local ou Global ne change pas grand-chose.
Publié : jeu. 15/déc./2005 10:14
par lionel_om
Oui, mais on est obligé de réécrire des algos pour chaque liste de chaque projet, alors que des fois c'ets les même, sauf qu'il n'y a qu'à changer le nom.
C'est pour ça que j'ai programmé ma Lib Vector, j'arrête pas de m'en servir. Je code les fonctions une fois, et op... Je suis tranquil pour toujours.
Tandis que si c'était local, on pourrait créer des fonctions, les distribuer plus facilement sur le forum...