Solved

how do you save data it disk?

Posted on 1998-04-08
3
200 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

Control application downtime with dependency maps

Visualize the interdependencies between application components better with Applications Manager's automated application discovery and dependency mapping feature. Resolve performance issues faster by quickly isolating problematic components.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How do I avoid pointer to integer casting errors in C programming? 4 207
C#, VS15, StructLayout 1 122
UPD maximums on Red Hat 6 110
sameEnds challenge 3 134
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 nested-loops in the C programming language.
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.

910 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

22 Experts available now in Live!

Get 1:1 Help Now