Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

how do you save data it disk?

Posted on 1998-04-08
3
Medium Priority
?
234 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 7

Accepted Solution

by:
galkin earned 120 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

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

Question has a verified solution.

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

An Outlet in Cocoa is a persistent reference to a GUI control; it connects a property (a variable) to a control.  For example, it is common to create an Outlet for the text field GUI control and change the text that appears in this field via that Ou…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
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 opening and reading files in the C programming language.

604 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