Convertir un string en integer

cs_budylove Messages postés 10 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 4 juillet 2007 - 21 févr. 2006 à 10:39
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 21 févr. 2006 à 11:19
Bonjour





comme je l'ai deja dis je suis débutant en vb.





Comment convertir une chaine de caractere contenue dans une variable afin de la passer dans une autre variable en entier ?





j'ai essayé plein de fonction mais aucune ne marche ou je m'y prend mal ...









Dim nul As String

Dim nul2 As Integer



nul = "Ox10000000" + Sonde_1_Resol + "10" + Sonde_4_Type ' nul vaut ca : Ox1000000000100001



nul2 = CInt(nul)



TempControlword_Ch1 = nul2







merci
A voir également:

6 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 févr. 2006 à 10:45
Salut,

Ox.... c est une valeur En hexadecimal Non?

De toute facon tant qu il y aura autre chose que des chiffres dans ta chaine, tu ne pourras pas utiliser la fonction Cint() (Que les experts me corrigent si je me trompe)

@+
Julien
Pensez: http://www.codes-sources.com/reglement.aspx

<STRO< body>
0
cs_budylove Messages postés 10 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 4 juillet 2007
21 févr. 2006 à 10:53
ouais mais pourtant ca marche car avant de demander a mon utilisateur
de parametre les sonde, donc avant d'utiliser des variable j'ecrivait
ca :



Public TempControlword_Ch1 As Integer



TempControlword_Ch2 = Ox1000000000100001



et ca marchait bien ...
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 févr. 2006 à 10:57
Re,

Et bien moi ca ne marche pas.

Quel Vb utilises tu?

@+, Julien
(Pensez: www.codes-sources.com/reglement.aspx
0
cs_budylove Messages postés 10 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 4 juillet 2007
21 févr. 2006 à 11:07
c'est bon j'ai trouvé



voila au lieu de passer par une variable intermédiare je fais ca :



TempControlword_Ch1 = Ox10000000 + CInt(Sonde_1_Resol) + "10" + CInt(Sonde_1_Type)



et ca marhce du moins j'ai pas d'erreur



maintenant je m'appercois que mon automate s'en fou de mes variable ca me fait un peux plus peur ... 8O



Merci encore



a bientot
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
21 févr. 2006 à 11:14
Tu utilises le signe '+' pour concaténer des chaines de caractères ??? En quel langage travailles-tu ??


"Ox10000000" et "10" sont des constantes.

Sonde_4_Type est sur 4 bits.

Sonde_1_Resol est sur 2 bits.



Total : 16 bits.



Quand tu additionnes (pas les chaines de caractères, mais bien les nombres) les deux constantes, tu obtiens :

Ox1000000000100000 (=32800 en décimal)



L'ajout de Sonde_4_Type et de Sonde_1_Resol peut faire varier 6 bits, représentés par un X dans l'expression ci-dessous :

Ox10000000XX10XXXX



Il s'agit des puissances de 2 suivantes : 0,1,2,3,6 et 7.

En fonction des valeurs de Sonde_4_Type et de Sonde_1_Resol, tu vas ajouter (ou pas) 1,2,4,8,64 ou 128 à ta constante initiale (c'est-à-dire 32800)



Le code devient dès lors :





Dim Sonde_4_Type As String

Dim Sonde_1_Resol As String

Dim nul2 As Long



Sonde_4_Type = "00"

Sonde_1_Resol = "1000"

nul2 = 32800 'concaténation de Ox10000000, XX, 10 et XXXX, suivie d'une transformation en Long



If Left(Sonde_4_Type, 1) "1" Then nul2 nul2 + 128

If Right(Sonde_4_Type, 1) "1" Then nul2 nul2 + 64

If Left(Sonde_1_Resol, 1) "1" Then nul2 nul2 + 8

If Mid(Sonde_1_Resol, 2, 1) "1" Then nul2 nul2 + 4

If Mid(Sonde_1_Resol, 3, 1) "1" Then nul2 nul2 + 2

If Right(Sonde_1_Resol, 1) "1" Then nul2 nul2 + 1



MsgBox nul2





Il faut noter qu'en VB, un Integer est borné à 32767. Comme le
nombre que tu vas obtenir est forcément supérieur à 32800, il faut
utiliser un type Long, et pas Integer.


Manu
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
21 févr. 2006 à 11:19
budylove> La variable nul que tu attends doit être sur 16 bits.
Ce calcul : TempControlword_Ch1 = Ox10000000 + CInt(Sonde_1_Resol) + "10" + CInt(Sonde_1_Type)

te donnera un résultat sur 8 bits.


Manu
0
Rejoignez-nous