Probleme GTK C Lecture dans un Text_Buffer [Résolu/Fermé]

Signaler
Messages postés
271
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
5 mars 2019
-
Messages postés
29277
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
3 septembre 2020
-
Bonjour,
Bonsoir,
j'espere trouver de l'aide ici.

voici mon probleme j'ecrit dans un fichier et ensuite je relit immediatement après.

Le fichier n'est pas du tous modifié??????

voila se que ca affiche

ON ENREGISTRE
save = DEBUT

MOV R1,A
ADD A,R7


AAAAA


FIN
save = MOV R3,R7
MOV R1,A
ADD A,R7
SUBB R5,R7
ANL A,R7
ORL R0,R1
XRL R3,R7
CLR
SJMP LBL1



MOV R1,#27
MOV R2,#12
ADD A,R1
SUB A,R2
CLR R1
?LBL1


le code
fprintf(stdout,"ON ENREGISTRE\n");
GtkWidget *window1;
GtkWidget *AffCode;
window1=lookup_widget(GTK_WIDGET(menuitem), "window1");
AffCode=lookup_widget(GTK_WIDGET(window1), "AffCode");
gchar save[1000];
LireDansTextView(AffCode, save);

long lSize;

//obtention des tailles
fseek(micro->code , 0 , SEEK_END);
lSize = ftell (micro->code);
rewind (micro->code);

fprintf(stdout,"save = %s\n",save);
// copie
fwrite (save,sizeof(char),lSize,micro->code);
rewind (micro->code);
fread (save,sizeof(char),lSize,micro->code);
fprintf(stdout,"save = %s\n",save);



Cela fait parti d'un tous mais je pense que l'erreur se trouve par ici.

6 réponses

Messages postés
29277
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
3 septembre 2020
6 930
Bah à un moment ton fprintf il faut le faire sur un FILE* ouvert en écriture via fopen (et qu'il faudra fermer avec fclose si tu l'ouvres avec succès) parce que pour le moment tu écris tout sur la sortie standard (stdout).
#include <stdio.h>

int main(){
  const char *filename = "pouet.txt";
  FILE *fp = fopen(filename,"w");
  if (!fp){
    fprintf(stderr,"can't write %s\n",filename);
    return 1;
  }
  fprintf(fp,"pouet pouet");
  fclose(fp);
  return 0;
}

Bonne chance
Messages postés
271
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
5 mars 2019
30
ici


fwrite (save,sizeof(char),lSize,micro->code);
rewind (micro->code);
fread (save,sizeof(char),lSize,micro->code);
fprintf(stdout,"save = %s\n",save);


normalement j'ecrit dans mon fichier,non??
j'ecrit se qu'il y a dans save.
ensuite mon fichier je reviens a la premiere ligne et je fait fread donc normalement il devrai valloir la meme valeur que le premier save.


en gros je fait une sauvegarde de fichier texte.
quand l'utilisateur fait enregistrer je veut prendre le text de ma widget qu'il a ou non modifié et l'envoyer des mon micro qui est une structure contenant toute mes données.
Messages postés
271
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
5 mars 2019
30
bon j'etai fatigué hier soir.

donc en faite tous marche bien a part que comme l'ouverture de fichier se fait dans un initmicro je me souvenait plus que j'ouvrai le fichier en "r" et pas en "r+"


merci tu ma mis sur la vois

petite idication quand meme en "r+" est ce que je peut agrandir le fichier initial??
Messages postés
29277
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
3 septembre 2020
6 930
Ah oui j'avais pas fait gaffe au fwrite, moi aussi j'étais fatiguée. Pour les différentes manières d'ouvrir un fichier, tape dans une console ou dans google :
man fopen

Si tu veux écrire à la fin d'un fichier, c'est peut être le mode append qui t'intéresse.

Bonne chance
Messages postés
271
Date d'inscription
mardi 25 décembre 2007
Statut
Membre
Dernière intervention
5 mars 2019
30
Quelque moi plus tard

merci !!!!


comment camarche ne m'avai pas averti de la reponse
Messages postés
29277
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
3 septembre 2020
6 930
Mieux vaut tard que jamais.
Pour les notifications pas mail ça se configure dans ton profil CCM.

Bonne continuation !