Remplir tout le tableau.. [Résolu]

cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 15 juil. 2007 à 13:16 - Dernière réponse : cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention
- 15 juil. 2007 à 20:06
Bonjour à tous,

Est-ce qu'il existe en VB6 une façon de remplir un tableau tout entier en une seule ligne ?

je veux dire comme en C++ :
       int Tab[3] = {5, 3, 22};
       // à la place de Tab[0]=5; Tab[1]=3; Tab[2]=22;

Merci d'avance..
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 15 juil. 2007 à 17:05
3
Merci
j' avais du temps ...    alors...

Private Sub Command1_Click()
  toto = "1,2,3,a,b,c,d,e,f,"
  titi = Split(toto, ",")
  ReDim tableau(UBound(titi)) As String
  For i = 0 To UBound(titi)
    tableau(i) = titi(i)
  Next
  Set titi = Nothing
  For i = 0 To UBound(tableau)
    MsgBox tableau(i)
  Next
End Sub

et plus une seule "Variant" en mémoire
(acrobatie bien cher payée juste pour éviter un ARRAY !!!)

Merci jmfmarques 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 15 juil. 2007 à 13:34
0
Merci
Bonjour,

Ouvre ton aide en ligne sur le mot Array
!!!
Commenter la réponse de jmfmarques
cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 15 juil. 2007 à 13:46
0
Merci
Merci,

mais y a t-il pas un chemin qui évite les variant qui sont gourmands en mémoire, je veux que mon tableau soit du type long ou integer, pourquoi gaspiller 16 Octets (taille d'un seul variant, par contre un long coûte 4 Octets weulement )
Commenter la réponse de cs_Chatbour
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 15 juil. 2007 à 13:59
0
Merci
Je ne connais alors qu'un seul autre chemin (sans 'variant"). Il est par contre plus gourmand en temps d'exécution : une chaîne de caractères avec des "mots" séparés par un séparateur... puis analyse de cette chaîne.


C'est un chois à faire, mz foi...
Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 15 juil. 2007 à 14:03
0
Merci
Et si c'est la mémoire qui te préoccupe tant : donne donc dans l'acrobatie :
1) un array
2) faire le tableay "typé" à partir de l'array
3) zigouiller l'array.

PS : Je ne cesserai jamais d'être étonné de ce que l'on utilise sans sourciller ici et llà les Split et que l'on crie "au viol" pour bien moindre !...
Commenter la réponse de jmfmarques
cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 15 juil. 2007 à 16:54
0
Merci
Je suis acrobate par nature.

Merci pour votre disponibilité à aider les autres jmfmarques
Commenter la réponse de cs_Chatbour
Julien237 884 Messages postés vendredi 3 novembre 2000Date d'inscription 3 mars 2009 Dernière intervention - 15 juil. 2007 à 19:57
0
Merci
Ca fait bien longtemps que je n'ai plus fais de vb6, mais j'aurais essayé un truc avec LSet.
Style :

Type MyString
  str as String * 12  '24 S'ils sont codé sur 2 octets en vb6
End Type

Type MyArray
  array(3) as long
End Type

dim ms as MyString
ms.str = chr(&h0F) & chr(&hA5) & chr(&h42) & chr(&h10)...
'Si tu préfères apprends le code ascii par coeur
dim ma as MyArray
LSet ma = ms
'Ici si je ne me trompe, on a ma.array(0) = &h0FA54210

Je dis peut-être des bêtises, j'ai même pas vb6, mais si je ne me trompe c'est à ce genre de choses que servait LSet, sinon faire un copymemory...
<hr size="2" width="100%" />Julien.
Commenter la réponse de Julien237
cs_Chatbour 764 Messages postés jeudi 27 juillet 2006Date d'inscription 6 septembre 2010 Dernière intervention - 15 juil. 2007 à 20:06
0
Merci
Je vais le tester, Merci
Commenter la réponse de cs_Chatbour

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.