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

Signaler
Messages postés
1
Date d'inscription
mardi 10 mai 2005
Statut
Membre
Dernière intervention
9 septembre 2005
-
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
-
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

Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
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
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
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