Précédent   Forum des professionnels en informatique > Général Développement > Programmation système > Linux > GTK
GTK Vos questions sur GTK sous Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/03/2011, 18h30   #1
Invité de passage
 
Inscription : mars 2011
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 6
Points : 2
Points : 2
Par défaut Ecrire un Label dans un fichier

Bonjour,

Mon problème est le suivant:
J'ai un tableau de label que je voudrais archiver dans un fichier mais rien n'y fait ça ne fonctionne pas, j'obtenais au début des caractères incohérents. J'ai donc changé mon code mais maintenant j'obtiens (null) tout le temps.
Voici la partie de mon code
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
        GtkTextBuffer* pTextBuffer;
        GtkTextIter iStart;
        GtkTextIter iEnd;
        gchar* sBuffer;
        /* On recupere le buffer */
        pTextBuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(pLabel[0]));
        /* On recupere l'origine du buffer */
        gtk_text_buffer_get_start_iter(pTextBuffer, &iStart);
        /* On recupere la fin du buffer */
        gtk_text_buffer_get_end_iter(pTextBuffer, &iEnd);
        /* On copie le contenu du buffer dans une variable */
        sBuffer = gtk_text_buffer_get_text(pTextBuffer, &iStart, &iEnd, TRUE);
 
        /*On prepare le BUFFER a ecrire dans le fichier*/
	sprintf( BUFFER,"blabla %s\n",sBuffer);
	fputs(BUFFER, FICHIER );
Merci d'avance pour votre aide.
Amidamarou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2011, 20h25   #2
Membre Expert
 
Avatar de gerald3d
 
Homme Gérald
Conducteur de train
Inscription : février 2008
Messages : 1 282
Détails du profil
Informations personnelles :
Nom : Homme Gérald
Âge : 42
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Conducteur de train
Secteur : Transports

Informations forums :
Inscription : février 2008
Messages : 1 282
Points : 2 218
Points : 2 218
Que donne un simple g_print("%s\n", sBuffer);?
__________________
Système d'exploitation : Debian Amd64 Testing / Slackware 13.37 32 bits

Site perso : http://gerald3d.developpez.com (article Glade3 et Gtk+)

Site perso : http://linechec.sourceforge.net (jeu d'echec) v0.4-1
Site perso : http://m3dlib.tuxfamily.org/ (moteur 3d. Rendu dans un GtkDrawingArea avec utilisation de Cairo.) v0.24

contact jabber : gerald3d@jabber.tuxfamily.org
gerald3d est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2011, 23h00   #3
Modérateur
 
Homme Christophe
Inscription : janvier 2005
Messages : 1 259
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France

Informations forums :
Inscription : janvier 2005
Messages : 1 259
Points : 1 592
Points : 1 592
Envoyer un message via ICQ à teuf13
Utiliser sprintf est une très mauvaise idée. Regarde du côté de g_strdup_printf, ou bien fait plusieurs écritures dans le fichier plutôt que d'écrire le buffer en 1 seul coup.
teuf13 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/03/2011, 19h28   #4
Invité de passage
 
Inscription : mars 2011
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 6
Points : 2
Points : 2
Gerald, j'ai testé le g_print le résultat est le même mais dans ma console.

Teuf, j'ai déja essayé avec g_strdup_printf et cela me donnai des caractères spéciaux.

Je vais donner un peu plus d'explication sur ce que je veux faire.

Tout d'abord, j'ai fait quelque modification qui a mon avis devrait rendre plus simple le problème (enfin c'est ce que j'imagine)
En faite je récupère le chemin d'un fichier que je stock dans un gchar * puis j'essaye de créer un BUFFER avec un certain texte puis le chemin, d'ou le sprintf( BUFFER,"blabla %s\n",chemin);.

Maintenant lorsque je fais cela, j'ai une erreur de segmentation.

Voilà ou j'en suis, merci de votre aide.
Amidamarou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 00h17   #5
Modérateur
 
Homme Christophe
Inscription : janvier 2005
Messages : 1 259
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France

Informations forums :
Inscription : janvier 2005
Messages : 1 259
Points : 1 592
Points : 1 592
Envoyer un message via ICQ à teuf13
Tu vas me trouver un peu buté, mais commence par arrêter d'utiliser sprintf, c'est bien trop dangereux. Fais plusieurs fputs, ou bien utilise g_strdup_printf
teuf13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 09h48   #6
Invité de passage
 
Inscription : mars 2011
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 6
Points : 2
Points : 2
Non teuf t'es pas buté, t'essaye de m'aider, j'apprécie même si j'y arrive toujours pas

voilà ce que j'ai fait

Code :
1
2
3
4
5
6
7
8
 
gchar *chemin;
gchar* BUFFER;
 
/* Récupération du chemin */
 
BUFFER=g_strdup_printf("blabla %s\n",chemin);
fputs(BUFFER, FICHIER );
Et j'ai une erreur de segmentation quand j'exécute mon programme
Amidamarou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 11h23   #7
Modérateur
 
Homme Christophe
Inscription : janvier 2005
Messages : 1 259
Détails du profil
Informations personnelles :
Nom : Homme Christophe
Localisation : France

Informations forums :
Inscription : janvier 2005
Messages : 1 259
Points : 1 592
Points : 1 592
Envoyer un message via ICQ à teuf13
Le problème vient d'ailleurs alors à mon avis. Si tu es sous linux, valgrind t'en dira peut être plus
teuf13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 15h12   #8
Invité de passage
 
Inscription : mars 2011
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 6
Points : 2
Points : 2
J'ai résolu mon problème. Teuf, tu avais raison l'erreur venait d'ailleurs donc le code de mon dernier post fonctionne. Merci de votre aide
Amidamarou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h11.


 
 
 
 
Partenaires

Hébergement Web