cs_parabole
Messages postés19Date d'inscriptiondimanche 17 septembre 2006StatutMembreDernière intervention29 décembre 2010
-
28 sept. 2008 à 23:11
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 2018
-
30 sept. 2008 à 23:45
Bonjour ,
Sur une application , j'utilise le port com . Les infos en com.imput sont dirigées vers une variable string (INFORMATION_COM ) . Mon problème : je souhaiterais convertir les variables string en integer ou byte .
Je retire chaque octet recu via :--> com.input = INFORMATION_COM
data2 = (Mid(INFORMATION_COM, 1, 1)) .
J'ai essayé pleins de routines mais je tourne en rond .: erreur constatée : type incompatible avec : CInt ,Cbyte , etc ...
Merci beaucoup pour votre aide !
@+
A voir également:
Vb6 string to integer
Integer to string visual basic - Meilleures réponses
cs_parabole
Messages postés19Date d'inscriptiondimanche 17 septembre 2006StatutMembreDernière intervention29 décembre 2010 29 sept. 2008 à 22:36
Merci à tous pour vôtre aide . C sympa comme tout ! Je n'es pas beaucoup plus de code ; Je renvoi simplement la chaine de caractères qui sort de com.input vers une variable string INFORMATION_COM . Je pense que c'est OK car la propriété de l'objet Com.est en string . Afin de respecter le protocole de dialogue , je suis obligé d'extraire , et d'analyser chaque octet qui rentre . Pour éviter toutes erreurs de contrôle , les données doivent d'abord passer en valeur décimal quelqonque. ' integer , byte, etc ... ) car elles vont de 0 à 255 .
Comme je suis un débutant en VB6 , je m'apercoi que ce n'est si facile que cela !!!! xD . Mais le travail paye en général !!!!!
J'avou de pas trop comprendre les parenthéses après le b dans cette déclaration ?
Dim b() As Byte
Pourquoi le 0 dans les parenthéses ? MsgBox "'a' = " & b(0)
Mais je suis à fond preneur !!
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 29 sept. 2008 à 22:56
() est pour la déclaration d'un tableau
commençant à 0, toutes les "cases" vont alors prendre la valeur ascii de ta chaine
dim b() as byte => tableau non dimensionné, recevra de 0 à 255 inclus
b() s> le tableau reçoit la chaîne. elle fait 3 caractères ("abc"), le tableau aura donc 3 valeurs, en partant de 0
b(0) retournera 97
b(1) => 98
b(2) => 99 (ascii de "c")
b(3) => erreur car n'existe pas, il auraut fallut 4 caractères pour çà
nb : pour connaitre (récupérer) le dernier emplacement : MAX = ubound(b())
dans ce contexte, c'est forcément aussi : MAX = Len(s)-1
++
<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
68manu
Messages postés43Date d'inscriptionsamedi 20 septembre 2008StatutMembreDernière intervention 1 octobre 2008 28 sept. 2008 à 23:22
SAlut essaies ca, on sait jamais :-)
Function ReceiveSerialData() As integer
' Receive strings from a serial port.
Dim returnStr As String = " "
Using com1 As IO.Ports.SerialPort = _
My.Computer.Ports.OpenSerialPort("COM1")
Do
Dim Incoming As String = com1.ReadLine()
If Incoming IsNothingThen
Exit Do
Else
returnStr &= Incoming & vbCrLf
End If
Loop
EndUsing
Return cint( returnStr)
EndFunction
Bonne chance
_____________________
No problems, only soluces
Vous n’avez pas trouvé la réponse que vous recherchez ?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 29 sept. 2008 à 08:24
Salut,
> [../auteur/PARABOLE/861353.aspx parabole]: Il faut que tu nous montres le code utilisé pour la conversion (la ligne qui foire, les variables et leur type, etc). celui pour extraire UN caractère d'une chaine ne nous sert à rien ici
>[../auteur/68MANU/1479144.aspx 68manu] :Ton code est en .NET et nous cherchons ici une solution en VB6 (si [../auteur/PARABOLE/861353.aspx parabole] ne s'est pas trompé de section en posant sa question)
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 29 sept. 2008 à 08:41
parabole > essye d'utiliser la fonction Asc pour récupérer le code ascii du caractère reçu, le code ascci devrait normalement correspondre à l'integer que tu souhaite avoir.
cs_parabole
Messages postés19Date d'inscriptiondimanche 17 septembre 2006StatutMembreDernière intervention29 décembre 2010 30 sept. 2008 à 23:24
G encore un soucis !
Dim INFORMATION_COM2 As String
Dim data_temp() As Byte
com.input = INFORMATION_COM2
Si je fais : data_temp(0) = (Mid(INFORMATION_COM2, 1, 1)) ERREUR Type incompatible ...
La différence avec le code ci dessus en exemple est que INFORMATION_COM2 n'est pas une constante
Si je fais data_temp(0) = 170 , c'est OK ( exemple ! )
Si je remplace data_temp(0) par data_temp(1) : ERREUR indice Hors limite