Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/08/2008, à 23: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, à 08: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, à 10: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, à 12:04

Karl_le_rouge

Re : [Résolu] [Gtkmm] Lire un fichier utf8

Glib::IOChannel::read_line() ?

Hors ligne

#5 Le 12/08/2008, à 13:52

robrob

Re : [Résolu] [Gtkmm] Lire un fichier utf8

Le problème mentionné ressemble typiquement à un problème d'encodage...de la source wink
(getline ne fait aucune conversion)

test.txt, est-il bien utf-8?

Hors ligne

#6 Le 13/08/2008, à 11: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, à 14: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, à 14:57)

Hors ligne

#8 Le 14/08/2008, à 16: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, à 13: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