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

Langage Delphi Discussion :

Convertir Char reçu par OnKeyPress du format Unicode vers le format ANSI local


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 93
    Par défaut Convertir Char reçu par OnKeyPress du format Unicode vers le format ANSI local
    Bonjour
    Y at-il une solution pour qu'un Key:CHAR reçu par OnKeyPress au format Unicode soit converti au format ANSI local ?
    Je suis avec Delphi10 et Windows10-64.
    Gab

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 101
    Par défaut
    Peut-être qu'il y a une autre approche
    le ANSI local en France c'est Windows 1252, en gros principalement des accents et le symbole €

    Quel le besoin ?
    Car caster un WideChar en AnsiChar, il y a une grand possibilité d'une perte à la conversion via une fonction comme LocaleCharsFromUnicode ou CharFromWChar : SetAnsiString
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 93
    Par défaut
    Merci pour les suggestions. La question vient d'un internaute russe qui utilise un de mes logiciels ( c'est bien la 1ère fois !) et qui se plaint que les caractères cyrilliques ne sont pas traités correctement. Il est vrai que je n'ai jamais testé mes programmes dans une configuration russe de Windows !!!!
    Je soupçonne que les caractères cyrilliques sont entrés en format Unicode et comme mon logiciel n'est prévu que pour traiter des caractères au format ANSI ça ne fonctionne pas. J'ai abandonné. Trop compliqué de modifier mon programme. Cdlt.

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par f6dqm1 Voir le message
    Merci pour les suggestions. La question vient d'un internaute russe qui utilise un de mes logiciels ( c'est bien la 1ère fois !) et qui se plaint que les caractères cyrilliques ne sont pas traités correctement. Il est vrai que je n'ai jamais testé mes programmes dans une configuration russe de Windows !!!!
    Je soupçonne que les caractères cyrilliques sont entrés en format Unicode et comme mon logiciel n'est prévu que pour traiter des caractères au format ANSI ça ne fonctionne pas. J'ai abandonné. Trop compliqué de modifier mon programme. Cdlt.
    ah il est clair qu'un caractère cyrilliques n'a pas d'équivalent dans la page de code ANSI Française ! tu obtiendras au mieux un caractère ANSI dans la page de code cyrillique

    peut-on savoir pour quel traitement utilises tu de l'ANSI uniquement ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 93
    Par défaut
    C'est un programme que j'ai écrit il y a déjà fort longtemps à l'usage des radioamateurs pour apprendre et s'entrainer à lecture du morse.
    Il est toujours utilisé un peu partout dans le monde par la communauté radioamateur mais je n'avais encore jamais eu de rapport venant de Russie ! Il faut dire que les communications en Morse se font normalement en anglais et en caractères latins. Le programme s'appelle CW_PLAYER. Vous le trouverez facilement sur Internet. Le programme manipule les caractères ANSI locaux pour les transformer en caractères morse standards ou spécifiques à certains pays comme les caractères accentués ou doubles. Toute l'architecture est donc faite autour d'une table de 256 caractères morse maximum (taille de la table ANSI locale). Cdlt.

  6. #6
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    ça me rappelle mon terminal 5250 il permet de se connecter sur un AS/400 qui utilise la table EBCDIC, j'ai donc deux tables de correspondance EBCDIC => ANSI et ANSI => EBCDIC...et mon soft a été utilisé en hébreux mais j'ai utilisé une astuce toute bête liée à la machine, en transférant en FTP binaire un fichier de 256 octets contenant les caractères de #0 à #255, quand je le relis en FTP texte, le système me fourni directement la table de conversion et dans l'autre sens pour l'autre table.

    alors tu ne peux pas utiliser l'astuce FTP mais rien ne t'empêche de créer un fichier de paramètre à destination des usagés qui pourront redéfinir la "table de 256 caractères morse" en fonction de leur pays. D'ailleurs les utilisateurs pourront alors te fournir les tables adaptées comme dans mon cas http://tothpaul.free.fr/sources.php?dpribm.tn400

    enfin je suppose que c'est juste une question de table de correspondance, car en fait je n'y connais rien en morse à part SOS évidemment
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/03/2005, 13h36
  2. Réponses: 4
    Dernier message: 06/06/2004, 12h07
  3. Traitement d'un char* renvoyé par une DLL en C++
    Par LuluTchab dans le forum Langage
    Réponses: 4
    Dernier message: 22/03/2003, 21h48
  4. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 13h34

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