.csv파일로 데이터를 저장합니다.
그리고 .csv파일에 저장되는 값이
CH1 값 값 값
CH2 값 값 값
CH3 값 값 값
이런식으로 저장이 되어야하는데 현재 제 소스에서는
CH1 값
CH2 값
CH3 값
CH1 값
CH2 값
CH3 값
이런식으로 저장이 되는 상황입니다.
데이터는 타이머가 실행될때마다 저장이되구요.
해결방법이 있을까요?
아래는 제 소스입니다.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(cnt != 0) cnt = 0;
Timer1->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Timer1->Enabled = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
cnt += 1;
Edit1->Text = cnt;
DataResult();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DataResult()
{
AnsiString ir, ocv, ir2;
AnsiString file_ir, file_reward, file_ocv, name, dir;
//0 -> date -> trayid
name = "C:\\TEST\\";
if(!DirectoryExists(name))MkDir(name);
name = name + "1" + "\\";
if(!DirectoryExists(name))MkDir(name);
name = name + Now().FormatString("yymmdd") + "//";
if(!DirectoryExists(name))MkDir(name);
file_ocv = name + Now().FormatString("mmdd_hhnn") + "curr.csv";
file_reward = name + Now().FormatString("mmdd_hhnn") + "volt.csv";
for(int i=0; i<3; ++i){
ocv = "CH" + IntToStr(i+1);
ir2 = "CH" + IntToStr(i+1);
for(int j = 0; j<=cnt; j++){
try{
ocv = ocv + "," + "~" + volt[j];
ir2 = ir2 + "," + "-" + curr[j];
}catch(...){}
ir2 = ir2 + "\n";
ocv = ocv + "\n";
WriteDataFile(file_reward, ir2);
WriteDataFile(file_ocv, ocv);
}
}
}
void __fastcall TForm1::WriteDataFile(AnsiString FileName, AnsiString Data)
{
AnsiString str;
int file_handle;
if(FileExists(FileName) == false){
file_handle = FileCreate(FileName);
}
else{
file_handle = FileOpen(FileName, fmOpenWrite);
}
FileSeek(file_handle, 0, 2);
FileWrite(file_handle, Data.c_str(), Data.Length());
FileClose(file_handle);
}
|