OVH Cloud OVH Cloud

Tableau dynamique

13 réponses
Avatar
scraper
bonsoir à tous ...

petit problème ...
dans un bout de code, je déclare un tableau dynamique

Dim sTest() as String

au cours du code, je suis amené à le remiensioner en utilisant Redim
Preserve ...

ça, OK ...

mais comment faire, par exemple, pour supprimer la dernière variable
stockée, et en même temps, le dernier dimensionnement ?

est ce possible ?

merci d'avance


--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper

10 réponses

1 2
Avatar
ng
Salut,

Peux-tu expliqué, je ne vois pas ce que tu veux faire.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

scraper wrote:
bonsoir à tous ...

petit problème ...
dans un bout de code, je déclare un tableau dynamique

Dim sTest() as String

au cours du code, je suis amené à le remiensioner en utilisant Redim
Preserve ...

ça, OK ...

mais comment faire, par exemple, pour supprimer la dernière variable
stockée, et en même temps, le dernier dimensionnement ?

est ce possible ?

merci d'avance


Avatar
scraper
Bonjour ng, dans le message
news://%
tu disais :


Salut,

Peux-tu expliqué, je ne vois pas ce que tu veux faire.



je vais essayer ?
par exemple :

Do
Redim Preserve Tabl(i)
Tabl(i)Úta ' Traitement ...
i=i+1
Loop until i

ensuite, je souhaiterais détruire la valeur tabl(10) par exemple, et
"reconstruire" le tableau en conservant les données ...
donc, tabl(11) passerait à tabl(10), etc
(je sais pas si je m'exprime correctement ? humm, j'en doute :-( )

est ce possible ?



--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
ng
Salut,

Il suffit de copier le tableau puis de le recopier dans l'autre avec une
boucle en décalant de 1.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

scraper wrote:
Bonjour ng, dans le message
news://%
tu disais :


Salut,

Peux-tu expliqué, je ne vois pas ce que tu veux faire.



je vais essayer ?
par exemple :

Do
Redim Preserve Tabl(i)
Tabl(i)Úta ' Traitement ...
i=i+1
Loop until i

ensuite, je souhaiterais détruire la valeur tabl(10) par exemple, et
"reconstruire" le tableau en conservant les données ...
donc, tabl(11) passerait à tabl(10), etc
(je sais pas si je m'exprime correctement ? humm, j'en doute :-( )
est ce possible ?


Avatar
Pascal B.
Bjr,

Si c'est le ou les derniers éléments qui doivent disparaitre un Redim suffit:

Redim Preserve Tabl(10) 'Si Tabl contenait 12 éléments les 2 derniers n'existe plus

Par contre, si tu veux retirer un élément à l'intérieur du tableau, il faut décaler chaque élément puis redimensionner.

ItemCount = UBound(Tabl)
ItemDel = 5
for i = ItemDel To ItemCount - 1
Tabl(i) = Tabl(i + 1)
next i
Redim Preseve Tabl(ItemCount -1)

Pascal B.

"scraper" wrote in message news:
| Bonjour ng, dans le message
| news://%
| tu disais :
|
|
| > Salut,
| >
| > Peux-tu expliqué, je ne vois pas ce que tu veux faire.
|
| je vais essayer ?
| par exemple :
|
| Do
| Redim Preserve Tabl(i)
| Tabl(i)Úta ' Traitement ...
| i=i+1
| Loop until i
|
| ensuite, je souhaiterais détruire la valeur tabl(10) par exemple, et
| "reconstruire" le tableau en conservant les données ...
| donc, tabl(11) passerait à tabl(10), etc
| (je sais pas si je m'exprime correctement ? humm, j'en doute :-( )
|
| est ce possible ?
|
|
|
| --
|
| Attention ! Adresse mail invalide ...
| Pour me contacter, cliquez sur le lien ci-dessous:
| http://scraper.chez.tiscali.fr/contact.htm
|
| scraper
|
|
Avatar
scraper
Bonjour Pascal B.
(dans news:)
tu nous disais :

Bjr,

Si c'est le ou les derniers éléments qui doivent disparaitre un Redim
suffit:

Redim Preserve Tabl(10) 'Si Tabl contenait 12 éléments les 2
derniers n'existe plus

Par contre, si tu veux retirer un élément à l'intérieur du tableau,
il faut décaler chaque élément puis redimensionner.



ah, OK ...

ItemCount = UBound(Tabl)
ItemDel = 5
for i = ItemDel To ItemCount - 1
Tabl(i) = Tabl(i + 1)
next i
Redim Preseve Tabl(ItemCount -1)




superbe, merci :-)
je vais essayer comme ça


--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
scraper
Bonjour ng
(dans news:)
tu nous disais :

Salut,

Il suffit de copier le tableau puis de le recopier dans l'autre avec
une boucle en décalant de 1.



OK, merci ....

à la lumière de la réponse de Pascal B, je vois mieux maintenant ce que tu
voulais dire

merci encore

--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
Zoury
Hug! :O)

tu feras cette opération souvent ? il y a peut-être une meilleure
solution...

--
Cordialement
Yanick
MVP pour Visual Basic
"scraper" a écrit dans le message de
news:
Bonjour Pascal B.
(dans news:)
tu nous disais :

> Bjr,
>
> Si c'est le ou les derniers éléments qui doivent disparaitre un Redim
> suffit:
>
> Redim Preserve Tabl(10) 'Si Tabl contenait 12 éléments les 2
> derniers n'existe plus
>
> Par contre, si tu veux retirer un élément à l'intérieur du tableau,
> il faut décaler chaque élément puis redimensionner.
>
ah, OK ...

> ItemCount = UBound(Tabl)
> ItemDel = 5
> for i = ItemDel To ItemCount - 1
> Tabl(i) = Tabl(i + 1)
> next i
> Redim Preseve Tabl(ItemCount -1)
>

superbe, merci :-)
je vais essayer comme ça


--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper




Avatar
scraper
Bonjour Zoury
(dans news:)
tu nous disais :

Hug! :O)



hello :-)

tu feras cette opération souvent ? il y a peut-être une meilleure
solution...



ben à chaque lancement de mon code ....
en fait, j'ai adapté et modifié mon code, ce qui fait que la question ne se
pose plus vraiment dans l'immédiat, mais je reste intéressé pour savoir
comment modifier dynamiquement un tableau ...

sait on jamais, ça pourra me servir un jour ...et puis ... curiosité ;-)




merci



--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper
Avatar
Zoury
> ben à chaque lancement de mon code ....



sans blague !? :OD

en fait, j'ai adapté et modifié mon code, ce qui fait que la question ne


se
pose plus vraiment dans l'immédiat, mais je reste intéressé pour savoir
comment modifier dynamiquement un tableau ...



La raison pour laquelle je m'informais de ce détail, c'est que ReDim demande
quand même un certain temps de traitement et ReDim Preserve encore plus.. Ce
ne serait pas une bonne idée (point de vue algo) de redimensionner un
tableau à chaque itération d'une boucle par exemple..

--
Cordialement
Yanick
MVP pour Visual Basic
Avatar
christophe-pasde
Salut,

Et ajouter un objet à une collection à chaque itération, d'un point de
vue temps ?

Merci

Christophe

Zoury a écrit :

ben à chaque lancement de mon code ....




sans blague !? :OD


en fait, j'ai adapté et modifié mon code, ce qui fait que la question ne



se

pose plus vraiment dans l'immédiat, mais je reste intéressé pour savoir
comment modifier dynamiquement un tableau ...




La raison pour laquelle je m'informais de ce détail, c'est que ReDim demande
quand même un certain temps de traitement et ReDim Preserve encore plus.. Ce
ne serait pas une bonne idée (point de vue algo) de redimensionner un
tableau à chaque itération d'une boucle par exemple..



1 2