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

GTK+ Discussion :

Ecrire un Label dans un fichier


Sujet :

GTK+

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2 309
    Billets dans le blog
    5
    Par défaut
    Que donne un simple g_print("%s\n", sBuffer);?

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    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.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut
    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.

  5. #5
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    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

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Le problème vient d'ailleurs alors à mon avis. Si tu es sous linux, valgrind t'en dira peut être plus

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut
    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

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

Discussions similaires

  1. ecrire une chaine dans un fichier [prob]
    Par rogerio dans le forum C++
    Réponses: 5
    Dernier message: 31/05/2006, 02h20
  2. Ecrire une variable dans un fichier
    Par slam dans le forum Général Python
    Réponses: 2
    Dernier message: 14/04/2006, 18h58
  3. Ecrire 4 lignes dans un fichier texte
    Par kikica dans le forum Langage
    Réponses: 2
    Dernier message: 17/03/2006, 16h04
  4. Ecrire un objet dans un fichier
    Par mikebranque dans le forum C++
    Réponses: 3
    Dernier message: 14/03/2006, 13h39
  5. Ecrire et lire dans un fichier texte
    Par podz dans le forum C
    Réponses: 3
    Dernier message: 25/10/2005, 16h57

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