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+ avec C & C++ Discussion :

Insérer du texte dans un GtkTextView depuis un fichier


Sujet :

GTK+ avec C & C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut d'un fichier à une textview
    bonjour!!
    jai crée une textview (st.p_textview) et je dois inscrire certains des éléments préalablement lu dans un fichier dans la textview

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      gchar *p_fiche ; 
        gchar *ptrf ; 
        gchar *init;
     
    if ((strncmp(p_fiche,"\"",1)) == 0){ 
                              p_fiche = p_fiche +1; //on déplace le pointeur 
                              ptrf=strchr(init,'\n');
                              strncpy(init,p_fiche,(ptrf+2)-p_fiche);
                              ......(c'est ici que je dois insérer mon "init" dans ma textview)
     
    }
    merci pour toute aide!!

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Bin commence déjà par essayer de le faire toi même, test puis poste ton code complet de la fonction si ca marche pas, on va pas écrire le code à ta place et toi tu recopies, ainsi tu n'apprend rien !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    je n'attends pas que vous me fassiez le code mais juste que vous me disiez quelle fonction je dois utiliser car jai cherché comment faire mais je n'ai pas trouver. merci

  4. #4
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 598
    Points : 7 837
    Points
    7 837
    Par défaut
    Regarde dans les cours de dvp.com sur gtk . Il y a un cours qui explique ça par l'exemple...

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Déjà le code que tu as fournie tu peux le jeter car il est faux, tu utilises des pointeurs qui ne sont même pas initialisés, ils pointent ici vers des adresses invalides, cela peut être par conséquent n'importe où dans la mémoire !

    Pour ajouter du texte dans un GtkTextView on utilise des fonctions du widget GtkTextBuffer, il convient donc de récupérer au préalable un pointeur sur celui-ci avec la fonction gtk_text_view_get_buffer.

    Après il faut voir le type d'insertion que tu veux faire, si c'est une insertion par la fin, tu peux procéder ainsi:

    1. Recherche du GtkTextIter de fin : gtk_text_buffer_get_end_iter
    2. Insertion du texte : gtk_text_buffer_insert


    Pour information, les GtkTextIter sont des positions dans le texte et on ne déclare pas de pointeur sur ce type car il faut passer l'adresse de la structure non un pointeur, on déclare donc un GtkTextIter ainsi:
    Voilà, en espérant avoir pû t'aider un peu

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    ok en fait mes pointeurs sont initialisés mais je ne les avais pas montrés. je commence par ouvrir mon fichier , je lisla taille du fichier, ensuite je mets

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    fiche = (gchar *)malloc((size + 1 )* sizeof(gchar)); 
    ....
    while (lecture != EOF) 
          { 
                lecture = getc(memocat222);//enregistrement du caractere 
                if (lecture != '\n'){ 
                          size2++; 
                          fiche[li]=lecture; 
                          li++; //incrémentation
                          } 
          } 
     
          fiche[li] = '\0'; //ajout du caractère de fin de chaine 
     
         //extraction des éléments du fichier
          p_fiche=fiche; 
          while (*p_fiche != '\0') 
          { 
                //recherche du guillemet dans le fichier
                if ((strncmp(p_fiche,"\"",1)) == 0){ 
                              p_fiche = p_fiche +1; //on déplace le pointeur 
                              ptrf=strchr(init,'\n');
                              strncpy(init,p_fiche,(ptrf+2)-p_fiche);
                 p_text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(st->p_textviewa));
                 gtk_text_buffer_insert (p_text_buffer, &iter, init, -1);
     
                  p_fiche = ptrf + 1 ; 
                 } 
     
                else 
                 p_fiche++;
    }
    ainsi je recupere mes éléments qui sont dans mon "init" et je les mets dans la textview. (enfin c'est comme ca que je fais et ca ne compile pas en marquant error).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        gchar *p_fiche ; 
        gchar *ptrf ; 
        gchar *init;
        gint size2; 
        gchar lecture ; 
        gchar *fiche; //contient les éléments du fichier  
        gint li ;
    merci

  7. #7
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Ouch, tout ceci me semble bien compliqué, tu as quoi dans ton fichier et qu'est-ce que tu dois inscrire dans ton GtkTextView ? init est initialisé comment ? Tu as au moins alloué un espace pour cette adresse étant donné que tu y stocke des données ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    p_text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(st->p_textviewa));
    gtk_text_buffer_insert (p_text_buffer, &iter, init, -1);
    Je t'ai encore dit plus haut qu'il faut que tu récupère un GtkTextIter valide plus haut avant de vouloir insérer quelque chose sinon tu utilise un GtkTextIer invalide !

Discussions similaires

  1. Insérer des données dans une BD depuis un fichier .bat
    Par kurkaine dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/11/2006, 08h31
  2. Insérer du texte dans un champ depuis un lien (smiley)
    Par arnolem dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/04/2006, 11h27
  3. Ajout de texte dans un GtkTextView
    Par youp_db dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 16/02/2006, 21h54
  4. [Excel] Insérer du texte dans un fichier Excel
    Par Longrais dans le forum Langage
    Réponses: 3
    Dernier message: 15/02/2006, 17h46
  5. [HWPF]Insérer du texte dans un doc word.
    Par Hoegaarden dans le forum Documents
    Réponses: 1
    Dernier message: 06/10/2005, 16h04

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