IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

Streamreader et accents


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 184
    Par défaut Streamreader et accents
    Bonjour,

    J'essaie de faire un code permettant de lire un fichier (format csv)
    la difficulté vient que je n'arrive pas à lire les accents. J'ai essayé des paramétrés dans encoding comme UTF7;UTF8, UTF32, unicode (au cas où)...
    puis Default ainsi que de rentrer le code linguistique mais rien ne marche.

    Les accents sont bien affichés dans un bloc-notes mais je n'arrive pas à trouver la solution
    Sans tenir compte que le problème doit sans doute varier selon le poste d'après ce que j'ai lu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    StreamReader ^sr;
    	StreamWriter ^sw;
    	String ^line;
    	std::string linetemp ;
    	sr = gcnew StreamReader(myfile, System::Text::Encoding::Default);
    		Console::WriteLine("Début du fichier");
    		line = sr->ReadLine();
    		Console::WriteLine(line);
    ...
    Sauriez-vous comment afficher les accents d'un fichier?

    merci d'avance.

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Pour commencer, ton code c'est du C++ / CLI, comme l'indique l'utilisation de ^ ... je déplace le message dans la section ad-hoc dés que j'ai fini de répondre

    Ensuite, la classe std::string est la classe gérant les chaines de caractères ANSI... il n'est donc pas étonnant que tu récupères du grand n'importe quoi si tu essaye d'y placer des chaines de caractère de type unicode

    Tu devrais utiliser la classe std::wstring, à tout le moins
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 184
    Par défaut
    Intéressant (j'ai appris une chose, déjà un grand merci) mais je ne vois pas où est mon std::string ( à part le linetemp qui intervient plus tard).

    le contenu de la readline est mise dans une variable System::String^ nommée line.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 504
    Par défaut
    Vérifiez que le problème est bien à la lecture et pas à l'affichage.

    Utilisez le débuggeur de VS pour voir le contenu de "line".

    La Console est, de loin, l'une des pires méthodes pour vérifier le contenu d'une variable.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    184
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 184
    Par défaut
    J'ai tout de suite pensé à cela mais le problème vient de la lecture et non de l'affichage.
    Dans le débug, les accents ne semblent pas être reconnus.
    Le problème vient donc de la lecture du fichier et je ne vois pas comment résoudre cela.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 504
    Par défaut
    System::Text::Encoding:efault ???
    http://msdn.microsoft.com/fr-fr/libr...g.default.aspx

    Etes-vous bien sûr que le fichier en entrée respect cet encodage, qui est dangereux par son adhérence à la localisation de la plateforme d'exécution ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Accent avec StreamReader
    Par Pouknouki dans le forum VB.NET
    Réponses: 2
    Dernier message: 06/03/2012, 12h27
  2. Problème Streamreader accents
    Par Z4ng3tsu dans le forum C#
    Réponses: 8
    Dernier message: 08/04/2011, 10h39
  3. conversion des accents avec streamreader
    Par olibara dans le forum C#
    Réponses: 1
    Dernier message: 04/04/2008, 16h02
  4. [vb.net][StreamReader] perte des accents
    Par arnolem dans le forum Windows Forms
    Réponses: 4
    Dernier message: 08/02/2006, 17h30
  5. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo