Accents en APP Console [Résolu]

Messages postés
135
Date d'inscription
jeudi 22 mars 2007
Dernière intervention
25 juillet 2008
- - Dernière réponse : ELCouz
Messages postés
135
Date d'inscription
jeudi 22 mars 2007
Dernière intervention
25 juillet 2008
- 29 avril 2007 à 05:34
Bonjour,
j'ai une question stupide qui me chicote depuis longtemps,,,
comment on fait pour afficher du texte avec des accents avec la commande Writeln...
car moi sur mon windows xp anglais , sa maffiche des caracteres illisible dans mon app console... c'est fatiguant de faire des fautes pour quon puisse comprendre qui a un accent... jaimerais avoir comme texte dans mon programme ex: à été aulieu de a ete :P

jsuis pas prof de francais mais bon vaut mieu ecrire comme du monde :P

merci!

laurent !
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
1799
Date d'inscription
vendredi 27 décembre 2002
Dernière intervention
19 juillet 2018
3
Merci
Salut,

Sous D4/D6, les 2 codes de WhiteHippo fonctionnent parfaitement.
Peut-être que Delphi 2006 râlera moins si tu lui donne ça :

function ConsoleString(const Chaine: string): string;
begin
  SetLength(Result, Length(Chaine));
  CharToOem(PChar(Chaine), PChar(Result));
end;

?

Bonne prog'

Merci japee 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de japee
Messages postés
1270
Date d'inscription
samedi 14 août 2004
Dernière intervention
5 avril 2012
0
Merci
Bonjour

il existe une fonction dans l'API windows pour solutionner ce problème, elle s'appelle CharToOem. Son seul inconvénient est qu'elle travaille avec des PChar ; d'où l'utilisation d'une fonction intermédiaire de conversion :

function ConsoleString( const Chaine : String ) : String ;
const
  BUFFER_MAX = 1024 ;
var
  Buffer : Array[0..BUFFER_MAX-1] of Char ;
begin
  // Conversion ANI to OEM
  CharToOem( PChar( Chaine ), @Buffer ) ;
  // Conversion PChar to String
  Result := StrPas( @Buffer ) ;
end ;

Pour l'utilisation, voici un mini programme :

program Project1;



{$APPTYPE CONSOLE}



uses
  windows,SysUtils;



function ConsoleString ( const Chaine : String ) : String ;
const
  BUFFER_MAX = 1024 ;
var
  Buffer : Array[0..BUFFER_MAX-1] of Char ;
begin
  // Conversion ANI to OEM
  CharToOem( PChar( Chaine ), @Buffer ) ;
  // Conversion PChar to String
  Result := StrPas( @Buffer ) ;
end ;


const
  Test = 'essai avec des accents : éèùà' ;




begin
  writeln( Test ) ; // Sans accents
  writeln( ConsoleString( Test ) ) ; // Avec accents
  readln;
end.




Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
Commenter la réponse de WhiteHippo
Messages postés
135
Date d'inscription
jeudi 22 mars 2007
Dernière intervention
25 juillet 2008
0
Merci
salut !

jai assayer ton code mais jobtien

[Pascal Error] Project1.dpr(15): E2010 Incompatible types: 'Array' and 'Char'
[Pascal Error] Project1.dpr(17): E2010 Incompatible types: 'Array' and 'Char'

ligne15 =   CharToOem( PChar( Chaine ), @Buffer ) ;
ligne17=  Result := StrPas( @Buffer ) ;

lors de la compilation
 
jai delphi 2006...

merci beaucoup

Laurent
Commenter la réponse de ELCouz
Messages postés
1270
Date d'inscription
samedi 14 août 2004
Dernière intervention
5 avril 2012
0
Merci
Sous Delphi 7 pas de problèmes  !! Essaye avec :

function ConsoleString ( const Chaine : String ) : String ;
const
  BUFFER_MAX = 1024 ;
var
  Buffer : Array[0..BUFFER_MAX-1] of Char ;
begin
  // Conversion ANI to OEM

  CharToOem( PChar( Chaine ), PChar( @Buffer ) ) ;
  // Conversion PChar to String
  Result := StrPas( PChar( @Buffer ) ) ;
end ;

Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein
Commenter la réponse de WhiteHippo
Messages postés
135
Date d'inscription
jeudi 22 mars 2007
Dernière intervention
25 juillet 2008
0
Merci
merci japee! cest delphi 2006 qui deconne :P bref, jcomprend pas pkoi sa fait sa ,,, delphi cest delphi le language reste pas le meme entre chaque version ou quoi ?!?! jveux dire appart des nouvelles fonctions rajouter entre chaque version , jpense pas qui nen enleve...

merci a toi aussi WhiteHippo ;)

Laurent
Commenter la réponse de ELCouz

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.