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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    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.

  2. #2
    Membre extrêmement actif 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 : 53
    Localisation : France

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

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonNumero = Right(MaChaine,1)

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2003
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 56
    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 éclairé
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    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

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

  6. #6
    Membre éprouvé
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    388
    Détails du profil
    Informations personnelles :
    Âge : 51

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

  7. #7
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 39
    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 éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 105
    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 éclairé
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    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é

+ 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