Page 1 sur 1

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

Publié : lun. 07/août/2006 5:54
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

Publié : lun. 07/août/2006 7:54
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 :(

Publié : lun. 07/août/2006 14:13
par nico
Ce code fonctionne bien chez moi!

Ou est le Pb, Dr Dri?

Publié : lun. 07/août/2006 17:13
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

Publié : lun. 07/août/2006 17:21
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