Conversion ANSI <-> OEM pour le mode console par API

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Lna
Messages : 181
Inscription : mar. 21/juin/2005 11:11

Conversion ANSI <-> OEM pour le mode console par API

Message par Lna »

Bonjour à toutes et à tous,
Pour afficher des caractères dit spéciaux en console, il faut utiliser la fonction Chr(Code).
Les plus fréquents :
- Chr(130) : é
- Chr(136) : ê
- Chr(133) : à
- Chr(138) : è
Pour ceux qui ne connaîtraient pas les API de conversion ANSI <-> OEM pour les accents du mode console. 8)

ANSI -> OEM : CHARTOOEM_(a$,a$)
OEM -> ANSI : OEMTOCHAR_(a$,a$)

Code : Tout sélectionner

a$="abc ABC àâçéèêîôù ÀÂÇÉÈÊÎÔÙ 123"

OpenConsole()

ConsoleColor(15,0)

Debug "ANSI -> OEM"
PrintN("ANSI -> OEM")

Debug a$
PrintN(a$)

CHARTOOEM_(a$,a$)

Debug a$
PrintN(a$)

Debug ""
PrintN("")

Debug "OEM -> ANSI"
PrintN("OEM -> ANSI")

Debug a$
PrintN(a$)

OEMTOCHAR_(a$,a$)

Debug a$
PrintN(a$)

Repeat
Until Inkey()<>"" ; Touche pour quitter

CloseConsole()
A peluche les nounours #nounours #nounours #nounours
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

J'ai cru que j'allais devenir dingue parce que je cherche à faire ca depuis super longtemps. J'avais testé cette méthode mais sans succès, et malheureusement ton code ne fonctionne pas plus que le mien.

Et comment fait-on au passage en mode "pas console" ?

Dri :(
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Ce code fonctionne bien chez moi!

Ou est le Pb, Dr Dri?
Lna
Messages : 181
Inscription : mar. 21/juin/2005 11:11

Message par Lna »

Dr. Dri, je pense que ton Autoexec.bat n'utilise pas le bon jeu de caractères MS-DOS. 8O

( Pour Win 98 )
Tu fais une copie du fichier Autoexec.bat pour le cas où.
Dans Autoexec.bat, tu t'assures de la présence des 2 lignes qui utilisent 850.

Code : Tout sélectionner

mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)
mode con codepage select=850
Tu sauvegardes et tu redémarres pour la prise en compte.

@peluche
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

je vois, j'avais un codepage "en"
(à la place des é par exemple j'avais des Ñ)
effectivement ca fonctionne

ca donne le résultat inverse de ce qu'affiche le debugger ^^

Dri
Répondre