On Friday 25 January 2013 14:57:23 Rudra Banerjee wrote:
> Dear friends,
> as evident from my last few posts, I am struggling with opening a file
> as buffer and write to it
> (guess it has *nothing* to do with gtk, but C. Still I will be grateful
> if you people kindly help). 
> So, first, how to open file in buffer?
> 
> /* Files opened and edited directly*/
> /*  FILE *fop = fopen(filename, "a" );
>   if (!fop){
>     filename="Untitled.bib";
>     fop= fopen(filename,"a");
>   }
> */  
> 
> /*Trying to open file as buffer and edit that*/
>   FILE *fopf = fopen(filename, "a" );
>   if (!fopf){
>     filename="Untitled.bib";
>     fopf= fopen(filename,"a");
>   }


You have to open, read  (and then close) the file into a static or malloced 
buffer of sufficient size,
then you can operate on the buffer. When your are done you write out the buffer
to a newfile, delete the old and rename the new to old.

>   char fop[]="Hello World";
>   int buf_size= strlen(fop)+1;
>   fwrite(fop,buf_size,1,fopf);
>   if(!fop){
>     printf("failed");
>   }
>   fclose(fopf);
> 
>   gtk_label_set_text(GTK_LABEL(flabel), filename);
>     printf( fop, "@%s{%s,\n", strcombo, strkey );
>   if( strlen(strAuth)!=0)
>     printf( fop, "\tAuthor=\"%s\",\n", strAuth);
>   if( strlen(strEditor)!=0)
>     printf( fop, "\tEditor=\"%s\",\n", strEditor);
>   if( strlen(strTitle)!=0)
>     printf( fop, "\tTitle=\"%s\",\n", strTitle);
> //  fclose(fop);
> 
> 
> The very first part of the code (commented) used to access the file
> directly, an approach that I was advised against. So I tried to open the
> file in buffer. But this implementation makes the program crash as soon
> as enter some value. 
> 
> Please help
> 

PS.: at the first glance it seems to me you need a database backend
like sqlite to save, store, change and retrieve your data.

Ciao,
ZZ
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to