#1 Le 10/08/2008, à 22:15
- geenux
[Résolu] [Gtkmm] Lire un fichier utf8
Décidément, c'est dur de débuter avec gtkmm...
Comment lire un fichier utf8? On peut le faire avec l'opérateur >>, mais pas avec getline.
ifstream fichier("test.txt", ios::in);
Glib::ustring line;
fichier>>line;
Avec ça je récupère bien le premier mot, les accents affichés correctement...
Maintenant j'aimerais faire la même chose en utilisant std::getline (ou équivalent) pour récupérer une ligne entière
ifstream fichier("test.txt", ios::in);
Glib::ustring line;
getline(fichier, line);
Bien sur, ça ne marche pas à cause d'un problème de type.
Merci d'avance.
Hors ligne
#2 Le 11/08/2008, à 07:18
- robrob
Re : [Résolu] [Gtkmm] Lire un fichier utf8
ifstream fichier("test.txt", ios::in);
string line;
getline(fichier,line);
Sinon ifstream et string c'est la STL, ça n'a rien à voir avec GTKmm
Hors ligne
#3 Le 12/08/2008, à 09:13
- geenux
Re : [Résolu] [Gtkmm] Lire un fichier utf8
ça je sais.Mais le problème c'est que j'ai des fichiers en utf8, et que quand je les récupère dans une string et que je convertis en ustring pour les utiliser avec Gtk, les caractères spéciaux (accents...) sont remplacés par des espèces de carrés.
Hors ligne
#4 Le 12/08/2008, à 11:04
- Karl_le_rouge
Re : [Résolu] [Gtkmm] Lire un fichier utf8
Glib::IOChannel::read_line() ?
Hors ligne
#5 Le 12/08/2008, à 12:52
- robrob
Re : [Résolu] [Gtkmm] Lire un fichier utf8
Le problème mentionné ressemble typiquement à un problème d'encodage...de la source
(getline ne fait aucune conversion)
test.txt, est-il bien utf-8?
Hors ligne
#6 Le 13/08/2008, à 10:24
- geenux
Re : [Résolu] [Gtkmm] Lire un fichier utf8
Oui, il est en utf8, comme tout mes documents. Je vais essayer avec IOChannel::read_line, je vous tiens au courant.
[Edit] Je ne comprend pas trop comment ça fonctionne avec la doc (pas claire je trouve) et je ne trouve pas d'exemple d'utilisation nulle part. Pourriez vous me donner un exemple simple.
Hors ligne
#7 Le 13/08/2008, à 13:56
- Karl_le_rouge
Re : [Résolu] [Gtkmm] Lire un fichier utf8
T'as un exemple avec du vrai code qui compile dans le chapitre 21 du gtkmm book, si tu fouilles dans les exemples de code, tu en trouveras d'autres (notamment dans le répertoire giomm)
http://www.gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/index.html
http://www.gtkmm.org/docs/gtkmm-2.4/examples/book/
C'est un peu fouilli, mais la doc est d'assez bonne qualité et très bien fournie.
Dernière modification par Karl_le_rouge (Le 13/08/2008, à 13:57)
Hors ligne
#8 Le 14/08/2008, à 15:11
- rniamo
Re : [Résolu] [Gtkmm] Lire un fichier utf8
tu peut convertir un std::string en Glib::ustring avec glibmm
< Quelques un des mes programmes | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
\ ^__^
\ (o o)\_______
(___)\ )\
Hors ligne
#9 Le 22/08/2008, à 12:19
- geenux
Re : [Résolu] [Gtkmm] Lire un fichier utf8
Bon, j'ai réussi.
Pour lire un fichier entier avec Glib, il suffit de faire:
Glib::RefPtr<Glib::IOChannel> iochannel =Glib::IOChannel::create_from_file("fichier","r");
Glib::ustring fichier;
iochannel->read_to_end(fichier);
Merci à tous !
Hors ligne