redimensionner un tableau.

Sujets variés concernant le développement en PureBasic
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

redimensionner un tableau.

Message 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.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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.
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

peuvent-elles être utilisées dans une DLL ?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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
freddix
Messages : 101
Inscription : dim. 08/févr./2004 19:37

Message par freddix »

mouais ... c'est quand même plus complêxe qu'un simple Dim :(
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

freddix a écrit :mouais ... c'est quand même plus complêxe qu'un simple Dim :(
C'est toi qui voit.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message 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 ;)
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

Bip moi sur MSN si tu as besoin Freddix :)
Je pense aussi que les liste chainées sont les mieux adaptées
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Ou utiliser ma Lib Vector :D
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...)
:wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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 :D )

franchement met toi y , c'est tres simple ...

j'ai vraiment du mal a reutiliser les tableaux maintenant ! :D

le tableau reste la reference pour les données multi-dimentionnelles :D
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Par contre, tout est en global : listes et tableaux ...

Fred, ca sera modifié dans la V4 ??? :)
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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.
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message 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...
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Répondre