안녕하세요.
VC++에서 serialize(archive)를 썼었는데 그것을 대체할 것을 찾다가
구조체를 이용한 파일처리를 구현해 보았습니다.
근데 SysData구조체가 잘 말을 안듣는군요. 좀 도와주세요.
그리고, 더좋은 방법이 있으면 알려주세요.
data size는 약2KB(int 500개 정도)입니다.
==== SysData.cpp 내용 =====
//----------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "SysData.h"
//----------------------------------------------------------
#pragma package(smart_init)
BOOL LoadData(void)
{
int iFileHandle = FileOpen("SysData.txt", fmOpenRead);
if(iFileHandle == -1) {
iFileHandle = FileCreate("SysData.txt");
SysData.MotBdBankAddr = 1;
SysData.MotBdRelAddr1 = 1;
FileWrite(iFileHandle, &SysData, sizeof(SysData));
}
else {
FileSeek(iFileHandle, 0, 0);
// return FALSE;
FileRead(iFileHandle, &SysData, sizeof(SysData));
}
FileClose(iFileHandle);
return TRUE;
}
//----------------------------------------------------------
BOOL SaveData(void)
{
int oFileHandle = FileOpen("SysData.txt");//, fmOpenWrite);
if(oFileHandle == -1) {
ShowMessage("화일쓰기 오류");
return FALSE;
}
FileWrite(oFileHandle, &SysData, sizeof(SysData));
FileClose(oFileHandle);
return TRUE;
}
//----------------------------------------------------------
==== SysData.h 내용 =====
//----------------------------------------------------------
#ifndef SysDataH
#define SysDataH
//----------------------------------------------------------
#endif
struct {
//Board Addr Form
int MotBdBankAddr;
int MotBdRelAddr1;
//이하생략
} SysData;
//----------------------------------------------------------
BOOL LoadData(void);
BOOL SaveData(void);
|