IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Calcul du checksum et convertion d'un decimal en hexa


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut Calcul du checksum et convertion d'un decimal en hexa
    bonjour à tous ,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub Calcul_checksum()
    Dim TabEnvoyé As Byte() = New Byte(12) {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
     
    TabEnvoyé(0) = &H2 ' initialisation_connection(0)
    TabEnvoyé(1) = &H3F ' initialisation_connection(1)
    TabEnvoyé(2) = &H30 ' Id(0)
    TabEnvoyé(3) = &H31 ' Id(1)
    TabEnvoyé(4) = &H31 ' Id(2)
    TabEnvoyé(5) = &H44 ' Type_registre(0)
    TabEnvoyé(6) = &H52 ' Type_registre(1)
    TabEnvoyé(7) = &H48 ' Registre(0)
    TabEnvoyé(8) = &H52 ' Registre(1)
    TabEnvoyé(9) = &H30 ' Nb_registre(0)
    TabEnvoyé(10) = &H31 ' Nb_registre(1)
    TabEnvoyé(11) = &H30 ' Nb_registre(2)
    TabEnvoyé(12) = &H31 ' Nb_registre(3)
     
     
    Dim Somme As Integer = 0
     
     
    ' Calcul du Cheksum de la trame Envoyé
    For Each x As Byte In TabEnvoyé
    Somme = Somme + x
    Next
     
    Dim aa As String = Hex(Somme)
    voilà je viens de faire ce programme mais maintenant je ne sais pas comment faire pour convertir un nombre decimal en Hexa puis le stocker dans un byte
    Merci de votre aide

  2. #2
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut


    je ne vois pas ou est ton probléme ...

    je ne sais pas comment faire pour convertir un nombre decimal en Hexa puis le stocker dans un byte
    je supose que c'est pour envoyer une trame sur 12 octets
    pourquoi ne pas garder ta trame en décimale ??
    l'outil "SerialPort" gère très bien tout sa *testé et approuvé*

    il suffit juste de le configurer selon ton protocole (bit de start, stop, parité, etc.)

    je n'ais pas répondu a ta question,
    il va garder le nombre décimale quoique tu fasse dans le byte
    quel intérêt a tu après a le vouloir en héxa ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut
    Ok désolé pour la balise code

    Lorsque je tente , je vois que mon aa =2C5 et moi je veux voir que aa=C5

    Et apparement , d'apres un ami je devrais convertir un nombre decimal en hexa puis le stocker dans un byte
    Je débute evidement en visual basic

  4. #4
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    hummm je voi pas pourquoi le "2C5" te gène
    la calculette de windows dit la même chose

    après si tu ne veut que les deux dernier caractères c'est une autre histoire
    tu peut utiliser la fonction mid
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strTest = Mid(tonString, Start, lenght)
    sa peut extraire ton "C5" comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strTest = Mid( aa, 2,2)
    ou pour un usage plus universel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strTest = Mid( aa, aa.Length -1 ,2)

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Par défaut
    Bonjour,

    Je ne vois pas comment on peut stocker un nombre décimal dans un byte !

    Par contre transformer un nombre décimal en tableau d'octets ça c'est possible.
    il faut regarder du coté de la classe bitconverter et sa méthode GetBytes.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    strTest = Mid( aa, 2,2)

    il faut que je déclare strTest comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim strTest As ......
    Je vois pas la suite: je débute

  7. #7
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut


    je te donne des tuyaux alors * disons plutôt de la rigueur*

    quand tu déclare tu met en minuscule ce que c'est avant suivi du nom de ton élément avec un Majuscule.
    exemple:
    pctPalette => PictureBox
    txtNomBoite => TextBox
    lblNomBoite => Label
    tmrBoite => Timer
    intNumBoite => Integer
    strNomBoite => String
    spRS232 => SerialPort
    etc.

    (désolé pour le style palette/boite, mon projet m'a inspiré)
    trés pratique si tu a bien déclaré tous tes éléments de ton formulaire,
    tu y accéde rapidement en tapant les 3 premier caratéres
    comme pour une textBox ou un Label, tu tape "lbl" et hop t'a tous tes labels qui s'affichent dans la liste, je dirais mm que tes labels

    image a l'appuie :


    voila,
    sachant sa du doit savoir que strTest est un string maintenant
    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim strTest As String
    strTest = Mid( aa, 2,2)

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut
    Et cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bt = BitConverter.GetBytes(Somme)
    Elle sert à quoi : j'ai pas tout compris

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Par défaut
    Bonjour,

    Pour tout cela il y a une chose très simple:

    Google avec comme recherche : BitConverter.GetBytes

    Et s'il y a un lien qui contient MSDNil faut vite aller le lire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. calcul de checksum
    Par jerome86600 dans le forum Sécurité
    Réponses: 3
    Dernier message: 29/12/2007, 01h33
  2. Calcul de Checksum
    Par ktsys dans le forum C++
    Réponses: 12
    Dernier message: 11/05/2007, 09h27
  3. Recherche d'un algorithme pour calculer un Checksum
    Par noune40 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/11/2006, 10h46
  4. Convertion Chaine vers decimal
    Par tchraad dans le forum Langage SQL
    Réponses: 3
    Dernier message: 03/11/2005, 16h43
  5. Calcul de checksum ?
    Par elitost dans le forum Windows
    Réponses: 14
    Dernier message: 21/01/2005, 13h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo