Re: open an existing file in buffer and write on it
- From: zz excite it
- To: gtk-app-devel-list gnome org
- Subject: Re: open an existing file in buffer and write on it
- Date: Fri, 25 Jan 2013 16:10:22 +0100
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]