OVH Cloud OVH Cloud

Pré remplir un tableau fraicheemnt declaré

12 réponses
Avatar
Arnaud
Salut à tous


Comment en VB6 , pré remplir un tableau fraîchement déclaré ?

DIM tableau ( 1 To 10 ) as integer = ???

En langage C , il suffit de taper :

int tableau[10] = { 1,2,3,4,5,6,7,8,9 };
Automatiquement , tableau [0] = première valeur de la liste ect


Arnaud

2 réponses

1 2
Avatar
Aski
Salutatoi Patrice,

Je me permets de redonner la fin de mon intervention précédente qui
semble avoir échapper aux lecteurs de cette discussion.

Par contre une autre solution pour ce faire (si les valeurs
sont connues à l'avance) et que le nombre le justifie c'est de les
rentrer dans un fichier à accès direct puis de lire directement le
tableau en une fois.

Soit un type quelconque, on veut initialiser un tableau T() de
ce type. les valeurs sont stockées dans un fichier binaire

Dim NbEléments as long, Elément as TypeQuelconque
Open <nom du fichier> For Binary As #1
NbEléments = LOF(1) / Len(Elément)
ReDim T(1 To NbEléments)
Get #1, , T
Close

Il ne faut pas oublier Erase T quand on n'a plus besoin de
celui-ci.
Cela renvoie bien un tableau du type choisi par l'utilisateur et non
un variant, de plus c'est très rapide même avec des tableaux très
grands. Inconvénient : il faut impérativement que chaque données soit
de même type car je ne crois pas qu'il existe en VB des types
conditionnels (comme en C je crois).



Non, la fin de ton message précédent ne nous avait pas échappé et la
remarque ne concernait pas cette partie de ton message.
Par contre effectivement ta méthode a un intérêt lorsqu'on veut initialiser
un tableau avec un grand nombre de données.
Dans le cas des chaînes, il me semble plus simple d'utiliser un fichier
texte avec Input ou Line Input (avec l'avantage de pouvoir le corriger avec
NotePad) lorsque qu'on lit tout le fichier.

Cordialement

Aski
Avatar
Patrice Henrio
"Aski" a écrit dans le message de news:
%
Salutatoi Patrice,

Je me permets de redonner la fin de mon intervention précédente qui
semble avoir échapper aux lecteurs de cette discussion.

Par contre une autre solution pour ce faire (si les valeurs
sont connues à l'avance) et que le nombre le justifie c'est de les
rentrer dans un fichier à accès direct puis de lire directement le
tableau en une fois.

Soit un type quelconque, on veut initialiser un tableau T() de
ce type. les valeurs sont stockées dans un fichier binaire

Dim NbEléments as long, Elément as TypeQuelconque
Open <nom du fichier> For Binary As #1
NbEléments = LOF(1) / Len(Elément)
ReDim T(1 To NbEléments)
Get #1, , T
Close

Il ne faut pas oublier Erase T quand on n'a plus besoin de
celui-ci.
Cela renvoie bien un tableau du type choisi par l'utilisateur et non
un variant, de plus c'est très rapide même avec des tableaux très
grands. Inconvénient : il faut impérativement que chaque données soit
de même type car je ne crois pas qu'il existe en VB des types
conditionnels (comme en C je crois).



Non, la fin de ton message précédent ne nous avait pas échappé et la
remarque ne concernait pas cette partie de ton message.
Par contre effectivement ta méthode a un intérêt lorsqu'on veut
initialiser un tableau avec un grand nombre de données.
Dans le cas des chaînes, il me semble plus simple d'utiliser un fichier
texte avec Input ou Line Input (avec l'avantage de pouvoir le corriger
avec NotePad) lorsque qu'on lit tout le fichier.

Cordialement

Aski



Tout à fait c'est d'ailleurs ce que j'avais fait au départ. Lorsque mes
données ont été bien stabilisées tant en lecture qu'en écriture je suis
passé au données typées qui gagne en concision.
Comme je l'ai rappelé plusieurs fois cette méthode plante parfois en VBA
selon la charge mémoire.

Salut.

Patrice
1 2