Solved

how do you save data it disk?

Posted on 1998-04-08
3
187 Views
Last Modified: 2010-04-15
I have a program which stores its data in a list. How can I go about saving the contents of the list to disk so that thay can be read in at a later date?
0
Comment
Question by:gnik
  • 2
3 Comments
 
LVL 7

Accepted Solution

by:
galkin earned 30 total points
ID: 1258027
You can first store in first n bytes the number of the items in the list and then items themselves. When you need to read data you can first read n bytes, allocate memory for items and then read items into allocated memory block
0
 

Author Comment

by:gnik
ID: 1258028
galkin,
Could you explain to me the actual process for getting the information to the disk.
Thanks.
0
 
LVL 7

Expert Comment

by:galkin
ID: 1258029
Actual code depends on the item in the list you want to serialize to and from the disk. I guess everything is clear. Sa you have a list with 5 items and you wrote functions WriteItem and ReadItem that write and read single item to the disk.
First you open a file. Assume you are programming in windows

FILE* stream;
   if( (stream = fopen( "fread.out", "w+" )) != NULL )  
{
int item_count = 5;
// write number of item first
      fwrite( &item_count , sizeof( item_count ), 1, stream );
//write items themselves
for(int i = 0; i < item_count; i++)
{
WriteItem(i);
}
      fclose( stream );  
}

To read
FILE* stream;
   if( (stream = fopen( "fread.out", "r+" )) != NULL )  
{
int item_count;
// read number of item first
      fread( &item_count , sizeof( item_count ), 1, stream );
// allocate memory block dinamically according to the number of //items stored in file
Item *pItem = (Item *)malloc(sizeof(Item) * item_count);
//read items themselves
for(int i = 0; i < item_count; i++)
{
// read single item into memory block
ReadItem(i, pItem + i);
}
      fclose( stream );  
}
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Have you thought about creating an iPhone application (app), but didn't even know where to get started? Here's how: ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Important pre-programming comments: I’ve never tri…
Windows programmers of the C/C++ variety, how many of you realise that since Window 9x Microsoft has been lying to you about what constitutes Unicode (http://en.wikipedia.org/wiki/Unicode)? They will have you believe that Unicode requires you to use…
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use while-loops in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use switch statements in the C programming language.

760 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

27 Experts available now in Live!

Get 1:1 Help Now