Probleme GTK C Lecture dans un Text_Buffer

Résolu
mazareth Messages postés 271 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
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.
A voir également:

6 réponses

mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
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
0
mazareth Messages postés 271 Date d'inscription   Statut Membre Dernière intervention   28
 
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.
0
mazareth Messages postés 271 Date d'inscription   Statut Membre Dernière intervention   28
 
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??
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mazareth Messages postés 271 Date d'inscription   Statut Membre Dernière intervention   28
 
Quelque moi plus tard

merci !!!!


comment camarche ne m'avai pas averti de la reponse
0
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
Mieux vaut tard que jamais.
Pour les notifications pas mail ça se configure dans ton profil CCM.

Bonne continuation !
0