Writing a struct to a binary file
Code:
#ifndef _FILE_H_
#define _FILE_H_
#include "main.h"
#include <fstream>
using namespace std;
struct MusicRecord
{
char * Artist;
char * Album;
char * Title;
long size;
std::basic_string<WCHAR> Path;
};
class FileSystem
{
private:
ofstream Create;
public:
FileSystem(void);
~FileSystem(void);
void ALP_InsertRecord( MusicRecord Rec, int Index );
void ALP_GetRecord( MusicRecord &Rec, int Index );
};
#endif
....
#include "FileSystem.h"
FileSystem::FileSystem(void)
{
}
FileSystem::~FileSystem(void)
{
}
void FileSystem::ALP_InsertRecord(MusicRecord Rec, int Index)
{
fstream Stream( "playlist.alp", ios::out|ios::binary|ios::app);
Stream.seekp( ( Index ) * sizeof ( MusicRecord ) );
Stream.write( (char*) &Rec, sizeof( MusicRecord ) );
Stream.close();
}
void FileSystem::ALP_GetRecord(MusicRecord &Rec, int Index)
{
fstream Stream( "playlist.alp", ios::binary|ios::in );
Stream.seekg( ( Index ) * sizeof( MusicRecord ) );
Stream.read( (char *) &Rec, sizeof( MusicRecord ) );
Stream.close();
}
......
MusicRecord Rec;
Rec.Album = mp3fi.szAlbum;
Rec.Artist = mp3fi.szArtist;
Rec.Path = FilePath;
Rec.Title = mp3fi.szTitle;
FileSystem File;
Rec.size = sizeof(Rec);
File.ALP_InsertRecord( Rec, ItemCount );
It simply isn΄t working any ideas?