Bonjour,
venant de Linux je (re)découvre windows et je butte sur les problèmes d'accent dans un programme sous la console
en fonction de l’utilisation de l'unité crt l'affichage change.
alors comment faire ?
avec CRT
sans CRT
merci.
Bonjour,
venant de Linux je (re)découvre windows et je butte sur les problèmes d'accent dans un programme sous la console
en fonction de l’utilisation de l'unité crt l'affichage change.
alors comment faire ?
avec CRT
sans CRT
merci.
Bonjour !
Personnellement, je choisirais l'option sans CRT, et j'éditerais mon code source avec un éditeur utilisant l'encodage OEM, ce qui fait que mon code source ressemblerait à ça dans un éditeur normal :
mais donnerait un résultat correct à l'exécution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 program test; begin WriteLn(' '); ReadLn; end.
Je me suis fabriqué un petit éditeur exprès pour faire ça. Si ça t'intéresse je peux le mettre à ta disposition. Autrement je me rappelle que je faisais ça avant avec l'éditeur natif de Virtual Pascal.
Note que ce n'est qu'une solution parmi d'autres, et peut-être pas la meilleure.
Merci pour ta suggestion
Le souci c'est que l'unité CRT est très pratique avec les gotoxy(x,y); et les write('quelque chose'); et aussi pour les couleurs j’imagine...
comme éditeur j'utilise SciTE qui ne va pas mal mais je veux bien essayer le tien.
en ne mettant pas crt je peux afficher en codant par #144 par exemple :
ce qui donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 writeln('test affichage accents dans console windows sans CRT'); writeln('lettres en dur dans le programme e aigu majuscule #144 : ',#144);
à suivretest affichage accents dans console windows sans CRT
lettres en dur dans le programme e aigu majuscule #144 : É
entrez un texte avec des accents : é è ê
vous avez saisi : é è ê
Pour l'éditeur, je l'ai mis là :
http://delphi.developpez.com/telecha...43/Editeur-OEM
Je viens de faire un essai avec l'unité Crt. C'est curieux, en appuyant sur les touches du clavier je n'obtiens pas les bons caractères.
Pas trop le temps de creuser le pourquoi. Je n'utilise plus depuis longtemps l'unité Crt.
Voici une deuxième solution sans l'unité Crt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 program accents; {$APPTYPE DELPHI} uses Windows; procedure AnsiWrite(s: ansistring); var ls: ansistring; begin ls := s; CharToOemA(PAnsiChar(ls), PAnsiChar(ls)); Write(ls); end; procedure AnsiWriteLn(s: ansistring); begin AnsiWrite(Concat(s, #13#10)); end; var s: string; begin AnsiWriteLn('éèê'); ReadLn(s); WriteLn(s); ReadLn(); end.
Partager