Optimisation de code [Résolu]

Messages postés
57
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
13 juin 2011
- - Dernière réponse : SebSemos
Messages postés
57
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
13 juin 2011
- 10 juin 2011 à 15:16
Salut à tous.

Je dialogue avec une carte via le port série, et à un moment je reçoit une donnée d'erreur. Le format de la donnée est : 51 pour aucune erreur, puis 5A pour 1%, 5B pour 2% .... je retrouve le pourcentage en retranchant 64 au code ascii de la lettre.

Pour le moment, j'extrait la lettre en placant la variable dans une texte box. Cela donne ce code :

        If Verif > "51" Then
            TextBox22.Text = Verif 'On place Verif dans une texte box ( invisible lors de l'execution )
            TextBox22.SelectionStart = Len(TextBox22.Text) - 1 'On récupère la Lettre Correspondant à l'erreur
            TextBox22.SelectionLength = 1
            Verif = TextBox22.SelectedText
            Pourc = Asc(Verif) 'On converti la lettre          
            Pourc = Pourc - 64 'On retire 64 pour obtenir le pourcentage
        End If

Cela marche impeccable, mais je pense qu'il y a une manière plus propre de le faire. La question est donc : Y'a t'il moyen d'extraire un "bout" de la variable ?

_______________________
Imports System.Thinking
'La vie Roxxx un max à qui s'en donne la peine
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
21
Date d'inscription
jeudi 12 mai 2011
Statut
Membre
Dernière intervention
9 juin 2011
3
Merci
Bonjour,

Pour extraire un bout de variable tu peux utiliser la fonction Mid
Par exemple

Dim test
Dim res


test="bonjour"
res=Mid(test,1,3)

res contient maintenant "bon"
1 est le caractère début
3 celui de fin

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Benjyii
Messages postés
57
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
13 juin 2011
1
0
Merci
Impeccable, j'était sur que 3 lettres pouvais remplacer mes 3 lignes de codes :)


_______________________
Imports System.Thinking
'La vie Roxxx un max à qui s'en donne la peine
Commenter la réponse de SebSemos
Messages postés
3247
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
26 décembre 2018
45
0
Merci
Salut

la fonction mid est utilisée en vb6
en net utilises plutot SubString

test="bonjour" 
res= substring(test,0,3) 


attention la premier caractère indexé par 0

VB 6 vb.net
Len Length
Mid SubString
Replace Replace
InStr IndexOf
UCase ToUpper
LCase ToLower
Split Split
Join Join


Bonne prog
Commenter la réponse de cs_ShayW
Messages postés
57
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
13 juin 2011
1
0
Merci
Salut, merci pour la précision ShayW, mais qu'elle est la différence car les deux codes marchent? Le code Vb6 est il source d'erreur dans .net ou bien est il plus lent ?

Et merci pour les quelques correspondances, dans un autre prog .net j'ai utilisé UCase et Lcase, va falloir rectifié sa :)


_______________________
Imports System.Thinking
'La vie Roxxx un max à qui s'en donne la peine
Commenter la réponse de SebSemos
Messages postés
3247
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
26 décembre 2018
45
0
Merci
Oui je sais
Enfin on m'a dit vaux mieux utiliser les fonctions net peut etre plus performant en mémoire,rapidité

le lien n'est peut etre pas à voir mais il explique
des trucs intéressant avec les chaines

http://msdn.microsoft.com/en-us/library/aa260972(v=vs.60).aspx
Commenter la réponse de cs_ShayW
Messages postés
57
Date d'inscription
mardi 24 mai 2011
Statut
Membre
Dernière intervention
13 juin 2011
1
0
Merci
Ok, merci, le lien va me servir aussi pour mon autre progr :)


_______________________
Imports System.Thinking
'La vie Roxxx un max à qui s'en donne la peine
Commenter la réponse de SebSemos