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] Conversion de caractères


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut [VB.NET] Conversion de caractères
    Salut à tous,

    J'ai un problème pour convertir une chaîne de caractère en sa valeur réelle:

    31323334 -> 1234

    Donc en fait 31 = 1, ...
    D'après les tables ASCII ca devrait correspondre mais la fonction CHR de VB me renvoie des caratères farfelus.

    Quelqu'un peut me dire s'il existe une fonction pour convertir 31 en 1, 32 en 2, .......... et ce pour tout les caractères?

    D'avance merci pour votre réponse.
    WebAgency www.cpstyle.net
    BncAgency www.bncmasters.net

  2. #2
    Membre expérimenté Avatar de DotNET74
    Homme Profil pro
    Watch R&D Engineer & Apprenti .NET
    Inscrit en
    Août 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Watch R&D Engineer & Apprenti .NET

    Informations forums :
    Inscription : Août 2003
    Messages : 1 986
    Points : 1 453
    Points
    1 453
    Par défaut
    Hello,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonNumero = Right(MaChaine,1)
    La Théorie c'est quand on comprends tout mais que rien ne fonctionne.
    La Pratique c'est quand tout fonctionne mais qu'on ne sait pas pourquoi !

    Si vous aimez ma réponse, cliquez sur la main verte Merci

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 56
    Points : 64
    Points
    64
    Par défaut
    Bonjour,
    Le code ASCII du caractère "1" n'est pas 31 mais 49... Or si on considère que 31 est un nombre en héxadécimal ça fait bien 49 en décimal...

  4. #4
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut
    J'avais déjà pensé a vos deux réponses.

    La première, prendre la partie droite du nombre ne m'interesse èas car je n'aurai pas forcément que des chiffres à convertir, donc ca tombe à l'eau.

    Pour la seconde réponse, j'ai remarqué que le code converti en décimal était le code ascii...

    Comment pourrais-je convertir ce nombre dans vb.net? Y a t il une fonction de conversion existante ? L'inverse de HEX finalement?

    Merci
    WebAgency www.cpstyle.net
    BncAgency www.bncmasters.net

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2003
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 56
    Points : 64
    Points
    64
    Par défaut
    Il faut que tu utilises les classes CultureInfo et NumberFormatInfo (System.Globalization)

  6. #6
    Membre actif
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut
    Et si tu converti ta chaine en string tu trouveras
    ça peu etre une soluce

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 39
    Points : 37
    Points
    37
    Par défaut
    sinon tu as Chr(CodeAscii) qui te donne le caratcére du code ascii que tu cherche
    (Le code asci doit etre en decimal je crois)

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Hello

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string text = "FF";
    char c = (char)Byte.Parse(text, System.Globalization.NumberStyles.HexNumber);
    Et hop ton caractère contient la valeur adéquate. Il te suffit d'itérer à travers ta chaine tous les deux caractères en appelant Byte.Parse de cette manière.

    a+

  9. #9
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut
    Merci pour vos réponses.

    Par hasard, dans la doc, je suis tombé sur ceci:

    CHR(&h35) = 5

    Donc le préfixe &h permet de spécifier à CHR que la chaine est en hexa et non en décimal.

    Et voila, le tour est joué
    WebAgency www.cpstyle.net
    BncAgency www.bncmasters.net

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

Discussions similaires

  1. [C++.NET] Conversion Byte*/Byte[]
    Par SteelBox dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 13/02/2005, 19h12
  2. [VB.NET] Conversion int-> bytes sur 4 octets
    Par SteelBox dans le forum Windows Forms
    Réponses: 11
    Dernier message: 09/01/2005, 22h08
  3. [DOS] batch et conversion de caractères
    Par lujayne dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 14/12/2004, 16h05
  4. [DB2][Access]Conversion de caractères
    Par BAYRAL dans le forum DB2
    Réponses: 2
    Dernier message: 12/10/2004, 10h00
  5. Conversion et re-conversion des caractères reservé à MySQL
    Par Didier100 dans le forum Bases de données
    Réponses: 4
    Dernier message: 30/06/2004, 14h23

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