Comment affecter une chaîne de caractères en plusieurs variables

Chistian B Messages postés 1 Date d'inscription mardi 10 mai 2005 Statut Membre Dernière intervention 9 septembre 2005 - 9 sept. 2005 à 16:18
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 9 sept. 2005 à 16:29
Bonjour,

Je cherche à affecter une chaine de caractères -dont le séparateur est dans ce cas la virgule- en plusieurs variables.
Par exemple :

9596,379,18,1,10,-11,14,-19,-16,1,42.44,176.47,46.80,190,0.43
en
Var1=9596
Var2=379
Var3=18
Var15=0.43

Merci

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
9 sept. 2005 à 16:25
Exemple

function SecStr(byval Param as string) as single()

Dim Tableau() as string

Tableau=split(Param,",")

dim Tabl() as single

redim Tabl(ubound(Tableau))

dim i as integer 'pour VB.NET

Dim i as long 'pour VB6

for i=0 to ubound(Tabl)

tabl(i)=csingle(tableau(i))

next

return Tabl 'VB.NET

SecStr=Tabl 'VB6

end function


Voila ce que je te propose.



Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)

Une question se pose sur le forum, pas en privé


NH
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
9 sept. 2005 à 16:29
Le plus simple est de passer par un tableau et d'utiliser la fonction Split

Dim Var() As String
Dim Source As String

Source = "9596,379,18,1,10,-11,14,-19,-16,1,42.44,176.47,46.80,190,0.43"
Var = Split(Source, ",")

Si tu veux exploiter ensuite les valeur obtenu comme des valeurs numériques, il faudra que tu utilises la fonction CDBL() qui te convertit une chaine de caractère en double. Il faudra avant cela convertir les "." éventuel en virgule décimale, sinon CDbl() va planter. Je te propose donc ce code final :

Dim StrVar() As String
Dim DblVar() as Double
Dim Source As String
Dim i As Long

Source = "9596,379,18,1,10,-11,14,-19,-16,1,42.44,176.47,46.80,190,0.43"
StrVar = Split(Source, ",")
Redim DblVar(UBound(StrVar))
For i = 0 To UBound(StrVar)
DblVar(i) = CDbl(Replace$(StrVar(i), ".", ","))
Next
... Et tu utilises ensuite le tableau DblVar() pour obtenir tes valeurs

OK ?

Christophe
0
Rejoignez-nous