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 6 et antérieur Discussion :

La fonction asc ne me renvoie pas le bon code ASCII


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut La fonction asc ne me renvoie pas le bon code ASCII
    La tâche paraissait si simple que je ne pensais pas rencontrer l'ombre d'une difficulté : récupérer le code ASCII d'un caractère.
    Oui, mais je me casse la tête depuis plusieurs jours sur les caractères accentués.
    Pour les caractères courants, pas de problème : asc(FenetredeTexte.text) me retourne le code correct.
    Mais dès qu'il est question d'un caractère accentué, panique à bord : pour é j'obtiens par exemple le code 233...
    J'ai fait le tour de l'aide, testé des solutions dans tous les sens et rien à faire.
    Help ! Avant que je ne me pende avec le câble de la souris !

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    Tu as intérêt à acheter une souris infrarouge

    Le code retourné est bien celui du caractère é.
    Regarde sur l'image attachée, le code correspondant à cette lettre est E9 en hexadécimal ce qui se traduit par 233 en décimal
    Images attachées Images attachées  
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par l_autodidacte Voir le message
    Tu as intérêt à acheter une souris infrarouge

    Le code retourné est bien celui du caractère é.
    Regarde sur l'image attachée, le code correspondant à cette lettre est E9 en hexadécimal ce qui se traduit par 233 en décimal

    Okay... J'avais tourné le problème dans tous les sens mais pas dans celui-là. Bon, eh bien j'y retourne ! Merci !!!!!

  4. #4
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2013
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par l_autodidacte Voir le message
    Tu as intérêt à acheter une souris infrarouge

    Le code retourné est bien celui du caractère é.
    Regarde sur l'image attachée, le code correspondant à cette lettre est E9 en hexadécimal ce qui se traduit par 233 en décimal
    J'ai résolu mon problème

    varCar=le caractère lu dans le fichier
    varCar=asc(varCar)
    varCar=str(varCar) car je ne peux transférer qu'une valeur string
    le piège était que cette conversion génère : espace + 3 octets. Il m'a fallu un moment pour comprendre.

    De l'autre côté, décodage de l'envoi selon la méthode inverse, je retranche le premier octet de la chaîne, je convertis en integer...


    Ouf !!!!

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 806
    Points
    5 806
    Par défaut
    varCar=le caractère lu dans le fichier
    varCar=asc(varCar)
    varCar=str(varCar) car je ne peux transférer.......
    Normalement avec ce code, l'IDE doit retourner une erreur(Type incompatible) car vacCar est du type String et quand tu mets : varCar = Asc(varCar) tu affectes un entier(Integer) à une chaine(String).
    Ensuite varCar = Str(varCar) doit aussi retourner la même erreur car la fonction Str s'applique à un nombre :
    Envoyé par MSDN :
    Str, fonction
    Renvoie une valeur de type Variant (String) représentant un nombre.
    Syntaxe:
    Str(number)
    L' argument number peut être toute valeur de type Long contenant une expression numérique valide.
    EDIT : L'espace dont tu parlais correspond au signe du nombre à convertir en chaine, s'il est négatif, le signe est bel et bien écrit sinon c'est un espace qu'on obtient au lieu du signe (+)
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

Discussions similaires

  1. Fonction Aggr qui ne renvoie pas les résultats attendus
    Par christelle_s dans le forum QlikView
    Réponses: 1
    Dernier message: 21/11/2013, 14h07
  2. La fonction .html() ne me renvoie pas ma balise <script>
    Par cpetitjean dans le forum jQuery
    Réponses: 12
    Dernier message: 15/07/2010, 18h05
  3. fonction groupCount() renvoi pas le bon nombre
    Par Elendhil dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 14/01/2008, 18h18
  4. Fonction récursive qui ne renvoie pas le résultat
    Par mathieugamin dans le forum Langage
    Réponses: 4
    Dernier message: 05/11/2007, 10h29
  5. Requête UNION renvoie pas le bon nombre de lignes
    Par le lynx dans le forum Contribuez
    Réponses: 2
    Dernier message: 29/06/2006, 10h52

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