Hi Damien,
Thanks for your reply.
What I have ended up with is something like:
  FILE *fopf = fopen(filename, "a" );
  if (!fopf){
    filename="Untitled.bib";
    fopf= fopen(filename,"a");
  }
  char buffer[]="Hello World";
  int buf_size= strlen(buffer)+1;
  fwrite(buffer,buf_size,1,fopf);
  if(!buffer){
    printf("failed");
  }
//  fclose(fopf);

  GString *fop=g_string_new(NULL);
  g_string_append_printf( fop,buffer);

  gtk_label_set_text(GTK_LABEL(flabel), filename);
    g_string_append_printf( fop, "@%s{%s,\n", strcombo, strkey );
  if( strlen(strAuth)!=0)
    g_string_append_printf( fop, "\tAuthor=\"%s\",\n", strAuth);
  if( strlen(strEditor)!=0)
    g_string_append_printf( fop, "\tEditor=\"%s\",\n", strEditor);
  if( strlen(strSchool)!=0)
    g_string_append_printf( fop, "\tSchool=\"%s\",\n", strSchool);
    g_string_append_printf( fop, "}\n");
//  fclose(fop);
    g_file_set_contents(filename,
        fop,
        1026,
        NULL);
}

But this writes the data in unformatted form. 
Can you kindly explain a bit more?
On Fri, 2013-01-25 at 17:02 +0100, Damien Caliste wrote:
> Hello,
> 
> Le 25/01/2013, Rudra Banerjee <rudra.baner...@aol.co.uk> a écrit :
> > But is it so tough? database and all that?
> For managing several bibliography files, that should be better yes.
> 
> > All I want to do is to have the ability of editing an existing file.
> > Since directly editing the file is not recommended, this is the reason
> > why I want to open it as buffer!
> For just handling one file, that's not necessary of course.
> 
> The idea when you want to change a file on disk is (not too big) :
> - generate a buffer of the full content of the file in memory, using
>   GString for instance
>   (http://developer.gnome.org/glib/unstable/glib-Strings.html) since
>   they are automatically expending in size but can be used with
>   equivalent printf() convenient functions ;
> - copy atomicaly the buffer in the file with g-file-set-contents()
>   
> http://developer.gnome.org/glib/unstable/glib-File-Utilities.html#g-file-set-contents
> - delete the buffer.
> 
> Damien.
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


_______________________________________________
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