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
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
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
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.
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.
ça me rappelle mon terminal 5250il 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![]()
Partager