jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 15 juil. 2007 à 17:05
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 !!!)
cs_Chatbour
Messages postés764Date d'inscriptionjeudi 27 juillet 2006StatutMembreDernière intervention 6 septembre 201018 15 juil. 2007 à 13:46
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 )
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 15 juil. 2007 à 13:59
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 15 juil. 2007 à 14:03
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 !...
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 15 juil. 2007 à 19:57
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.