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

Windows Forms Discussion :

[VB.NET 2.0] conversion caratère en binaire


Sujet :

Windows Forms

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut [VB.NET 2.0] conversion caratère en binaire
    bonjour,

    Je voudrais faire la convertion : chaine de caratère (variable string) => chaine en ASCII => chaine en binaire.
    Comment faire (dans les deux sens) ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    si j'ai bien compris tu veux récupérer le code ASCII des caracteres?

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    oui c'est ça et je veux les afficher en binaire.

    Et fait, j'envoie des caratères sur le port COM1 de mon PC de cette manière :
    Me.SerialPort1.Write("blablabla")

    Ce que je voudrais, c'est afficher dans une textbox, le code binaire de la trame envoyé sur le port COM1 : pour celà je dois convertir les caratères en binaire + ajouter le bit de start, de stop et de parité.

  4. #4
    Invité
    Invité(e)
    Par défaut
    En fait il suffit de prendre chaque caratceres de ton string et de les stocker une variable de type char[]. et pour les caracteres spéciaux il faut les déclarer en contante.

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    Une fois que j'ai mis mes caratères dans une variable char(), comment faut-il faire pour afficher la valeur binaire ?

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Points : 269
    Points
    269
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Byte toto = Convert.ToByte(MonChar);
    Devrait résoudre certains de tes problèmes, hésite pas a explorer cette classe "Convert".
    « L’erreur est humaine, mais un vrai désastre nécessite un ordinateur »

  7. #7
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    si je fais Msgbox(Convert.ToByte(MonChar))
    => ça m'affiche une valeur numérique et non pas la valeur binaire : je dois pouvoir faire une fonction qui transforme ce chiffre en binaire mais il doit bien y avoir une methode plus simple, non ?

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Points : 269
    Points
    269
    Par défaut
    A mon avis c normal puisque implicitement la convertion doit être faites vers un entier pour l'affichage.
    Mais si tu fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MessageBos.show( byte1.ToString("X2", null) );
    Tu auras la valeur Hexa afficher. Le type Byte peut être convertis dans tous les autres types (ou presque) et du coup l'affichage doit déclancher un cast...

    Je suppose que ca doit marcher comme ca.

    personnellement je doit écrire des trame sur une liaison Serie et j'utilise un tableau de Byte.

    Je fait la traduction de ma Trame pour l'affichage de la sorte :

    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
     
    public static String TrameToString(Byte[] pTrame)
            {
                String TrameFormatString = "";
     
                for (int i = 0; i < pTrame.Length; i++)
                {
                     TrameFormatString += ToHexString(pTrame[i]);
                      if (i != (pTrame.Length - 1)) TrameFormatString += " ";
                 }            
                return TrameFormatString;
            }
     
            static String ToHexString(byte byte1)
            {
                return byte1.ToString("X2", null);
            }
    « L’erreur est humaine, mais un vrai désastre nécessite un ordinateur »

  9. #9
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Points : 314
    Points
    314
    Par défaut
    si j'ai bien compris, ta fonction transforme ta trame en hexa (c'est pas ce que je voulais)

    Par contre je viens de trouver une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim MyChar As Char()
    Dim MaChaine As String
    Dim MaChaineBinaire As String
     
    MaChaine = "abcd"
    MyChar = MaChaine.ToCharArray
     
    MaChaineBinaire = ""
     
    For Each Element As Char In MyChar				
    	MaChaineBinaire += " " & Convert.ToString(Convert.ToByte(Element),2)
    Next Element
     
    Msgbox (MaChaineBinaire)
    => la convertion doit se faire assez rapidement avec cette methode mais ce qui est dommage c'est qu'il y a deux conversions effectuées (Char => Byte => String) : il doit bien y avoir une methode pour n'en faire qu'une ?

    Dans le sens inverse, quelqu'un sait-il faire la convertion ? MaChaine = "1100001" => MonCaratere = "a"

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Points : 269
    Points
    269
    Par défaut
    Négatif, ma fonciton permet uniquement d'afficher Sous forme d'Hexa un tableau de Byte...
    Rien de plus
    « L’erreur est humaine, mais un vrai désastre nécessite un ordinateur »

Discussions similaires

  1. [LabView-MATLAB] Conversion de fichier binaire
    Par flzox dans le forum LabVIEW
    Réponses: 3
    Dernier message: 20/01/2007, 18h42
  2. [C++.NET] Erreur de conversion
    Par raboin dans le forum VC++ .NET
    Réponses: 10
    Dernier message: 28/04/2006, 17h51
  3. [VB.NET]Comment obtenir conversion exacte Single>Double?
    Par Misterburma dans le forum VB.NET
    Réponses: 9
    Dernier message: 09/02/2006, 22h24
  4. Conversion ascii=> hexa=>binaire
    Par grunk dans le forum C++
    Réponses: 3
    Dernier message: 27/11/2005, 18h45
  5. [VB.net]problème de conversion de code c# vers VB.net
    Par cladsam dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/10/2005, 14h07

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