Récuperer et convertir une chaine de caractère

Signaler
Messages postés
15
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
23 avril 2012
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
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
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
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
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
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
Messages postés
15
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
23 avril 2012

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 ?
Messages postés
15
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
23 avril 2012

PS : lampe est un objet !
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
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
Messages postés
15
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
23 avril 2012

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
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
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
Messages postés
1263
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
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
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut Galain

Esperons que daerken t'écoutera
la salade vb6.net un peu indigeste