Conversion string en byte

Signaler
Messages postés
9
Date d'inscription
mercredi 3 mars 2004
Statut
Membre
Dernière intervention
14 mai 2004
-
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
-
Est ce que qqun peut me dire pourquoi ce code ne marche pas :

Dim prompt As String
Dim promptByte As Byte

prompt = "coucou"
promptByte = CByte(prompt)

Si quelqu'un a une solution pour convertir des string en byte et aussi des integer en bytes??

Merci

lapolo13

5 réponses

Messages postés
55
Date d'inscription
mardi 2 mars 2004
Statut
Membre
Dernière intervention
18 juin 2004
1
Salut,

Une variable de type Byte attend une valeur comprise entre 0 et 255, il est donc normal que CByte("Coucou") te donne une erreur. Par contre Cbyte("128") ne doit poser aucun problème

Pour la conversion, d'integer en Byte, pense bien à vérifier que ton integer n'est pas supérieur à 255 et fait juste un CByte(tonint)
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Si par ton code tu pensais pouvoir récupérer le code ascii du 1er caractère de ta chaine, fais :
Promptbyte = asc(Prompt)

Christophe R.
Messages postés
9
Date d'inscription
mercredi 3 mars 2004
Statut
Membre
Dernière intervention
14 mai 2004

ok, merci de votre aide mais je comprend pas bien a quoi sert la fonction.

Par exemple j'ai testé CByte(152), ca me donne 152.
Ou est l'utilité??
Est ce que en fait l'integer 152 devient un byte 152??

lapolo13
Messages postés
27
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
29 octobre 2012

Salu voila un somution

Sub convert( str as string, data() as byte)
dim f as long
redim preserve data(1 to len(str))
do
if str="" then exit do
doevents
f=f+1
data(f)=ascb(left(str,1))
str=mid(str,2)
loop
'C'est terminé!
end sub
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
CByte() convertit une valeur en byte. Donc si tu lui transmet un byte (comme 152) il te retourne la même chose.
Mais si tu lui transmet une chaine, "152" par exemple, il te retourne 152

Dim b as byte
b = Cbyte("152")
if b = 152 then msgbox "b vaut 152" else msgbox "Oups!!"

Christophe R.