Récuperer et convertir une chaine de caractère

cs_daerken Messages postés 15 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 23 avril 2012 - 20 avril 2012 à 20:08
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 24 avril 2012 à 09:20
Bonjour à tous,

lampe = Microsoft.VisualBasic.Right(Text2Display, 6)   

            Dim gauche = Microsoft.VisualBasic.Left(lampe, 2)
            Dim droite = Microsoft.VisualBasic.Right(lampe, 3)

            lampe = droite & gauche
            lampe = Replace(lampe, " ", "")

            Dim temp = "&H" & lampe
            Dim hexData As Integer = temp
            Dim sHex As String = Convert.ToString(hexData, 16)

            lampe = Convert.ToInt32(sHex, 16)





Je m'explique, j'ai une chaîne de caractère (ici : Text2Display ) qui à pour valeur par exemple : "00 2F 20 03 " (avec un espace à la fin).

C'est en fait une trame de réponse en base 16. Je souhaite sélectionner les deux dernier octets (soit "2003") et le convertir en base 10 afin d'avoir la valeur visuellement.
Le code plus haut fonctionne mais je trouve ça long et laborieux.

Si vous voyer une alternative je suis preneur !

Merci à tous !

12 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 avril 2012 à 21:54
Bonjour,
Et que donnerait l'utilisation "malsaine" de ce bon vieux Val de VB6, à savoir :
lampe val(lampe) vers string ?



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 avril 2012 à 22:11
sans compter (pour le cas où tu ne voudrais pas utiliser ce "bête" Val), que j'ai "comme l'impression" que tu aurais le même résultat en remplaçant (Par Replace) les espaces de lampe par ""


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Profil bloqué
22 avril 2012 à 11:59
Soit une form avec deux Textbox ( Entree contient la chaine d'origine et Sortie contiendra le résultat)
Attention on convertit ici en valeurs non signées
Pour les valeurs signées utiliser Convert.toInt32

 
        Dim chaine As String, valeur As UInteger

        Entree.Text = "00 2F 20 03 " ' ton exemple
        chaine = Entree.Text
        chaine = chaine.Replace(" ", "")
        chaine = chaine.Substring(4)
        valeur = Convert.ToUInt32(chaine, 16)
        Sortie.Text = valeur.ToString

    



La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
22 avril 2012 à 14:26
Salut

ce n'est pas la peine d'utiliser les fonctions du vb6 si on code en net
bien au contraire supprimer la réference visualbasic du projet
0

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

Posez votre question
cs_daerken Messages postés 15 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 23 avril 2012
23 avril 2012 à 16:01
lampe = Microsoft.VisualBasic.Right(Text2Display, 6)   

            Dim gauche = Microsoft.VisualBasic.Left(lampe, 2)
            Dim droite = Microsoft.VisualBasic.Right(lampe, 3)

            lampe = droite & gauche
            lampe = Replace(lampe, " ", "")

            Dim temp = "&H" & lampe
            Dim hexData As Integer = temp
          

            lampe = hexData


Ne peut on pas faire ça tout simplement ?
0
cs_daerken Messages postés 15 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 23 avril 2012
23 avril 2012 à 16:13
PS : lampe est un objet !
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 avril 2012 à 16:16
PS : lampe est un objet !

et
lampe = Microsoft.VisualBasic.Right(Text2Display, 6)

Ah !
Explique !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_daerken Messages postés 15 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 23 avril 2012
23 avril 2012 à 16:33
lampe = Microsoft.VisualBasic.Right(Text2Display, 6)


Veut juste dire que lampe prend les 6 derniers caractères de Text2Display.

Lampe est bien défini comme ça en tête du programme : Dim lampe
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
23 avril 2012 à 21:40
toute une salade vb6 vb.net
met ton projet à option strict on


Lampe est bien défini comme ça en tête du programme : Dim lampe

ç'est tout as
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 avril 2012 à 21:58
Veut juste dire que lampe prend les 6 derniers caractères de Text2Display.


Lampe n'est donc pas un objet !

Lampe n'est qu'une variable de type string

Quand même !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Profil bloqué
23 avril 2012 à 23:31
il faudrait surtout éviter ce mélange horrible VB 6.0 - VB Net
La solution précédente en VB Net pur tient en 3 lignes sans les déclarations de variables ni le remplissages des Textbox que j'ai utilisées dans mon post précédent

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
24 avril 2012 à 09:20
Salut Galain

Esperons que daerken t'écoutera
la salade vb6.net un peu indigeste
0
Rejoignez-nous