|
구조체에 저장된 데이터를 파일(*.txt)로 저장하고
그 파일을 읽어 데이터를 다시 구조체에 저장하는 프로그램을 구성하려고 합니다.
데이터를 저장하면 아스키문자가 파일로 저장됩니다.
visual C에서는 그대로 입력되었던 것같은데, 뭔가 더 추가해야 할 사항이 있는지...
예제를 올리겠습니다.
////////////////////////////////////////////////////////////////////////////////////////
void __fastcall TForm1::Button1Click(TObject *Sender) //파일로부터 읽기 버튼입니다.
{
AnsiString temp_filename;
int iFileHandle;
int iFileLen;
temp_filename=Edit1->Text;
if(!FileExists(temp_filename))
{ //file create
iFileHandle=FileCreate(temp_filename);
Memo1->Lines->Add("파일이 생성됨.");
}
else
{ //file에 있는 데이터 loading
iFileHandle=FileOpen(temp_filename,fmOpenReadWrite);
iFileLen=FileSeek(iFileHandle,0,2);
FileSeek(iFileHandle,0,0);
FileRead(iFileHandle,&G_DATA,iFileLen);<=======G_DATA를 찍어보면 이상한 문자가 있습니다.
FileClose(iFileHandle);
Memo1->Lines->Add(G_DATA.m_data1);
Memo1->Lines->Add(G_DATA.m_data2);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender) //파일에 쓰기 버튼입니다.
{
AnsiString filename;
int iFileHandle;
int iLen;
filename=Edit1->Text;
iFileHandle=FileCreate(filename);
G_DATA.m_data1=Edit2->Text;
G_DATA.m_data2=Edit3->Text;
FileWrite(iFileHandle,&G_DATA,sizeof(G_DATA));
FileClose(iFileHandle);
}
===> 다시 해보니, 문자열 빼고는 모두 적용이 됩니다.
데이터를 문자열로 하면(AnsiString), 엉뚱한 값이 나오네요.-_-
방법을 부탁드립니다.
|