//创建
dataFileTemp.Open(strPathTemp,CFile::modeCreate|CFile::modeWrite);
dataFileTemp.SeekToBegin();
//关闭
dataFileTemp.Close();
//打开
if(dataFileTemp.Open(strPathTemp,CFile::modeWrite))
{
dataFileTemp.SeekToEnd();
//写入
dataFileTemp.Write(&g_TestDatas, sizeof(g_TestDatas));
dataFileTemp.Close();
}
//删除
dataFileTemp.Remove(strPathTemp);
*******************************************************定位读写****************************************************
typedef struct tagTestDatas
{
tagTestDatas()
{
dTemperature = 0;
dHumidity = 0;
dEnvHumidity = 0;
dFlowRate = 0;
dOxyAD = 0;
dOTR = 0;
dppm = 0;
dtime = 0;
dValtage = 0;
dVsteam = 0;
dZeroppm = 0;
}
double dTemperature;
double dHumidity;//上腔湿度
double dEnvHumidity;//环境湿度
double dFlowRate;
double dOxyAD;
double dOTR;
double dppm;
double dtime;
double dValtage;
double dVsteam;
double dZeroppm;
double dStandardOTR;;
} TESTDATAS;
//
void CDetailedDataDlg::OnBnClickedButton1()
{
DOUBLE dvalue = 0;
CString strText;
TESTDATAS data;
CFile dataFile;
dataFile.Open(strFileNameCur,CFile::modeRead);
int nRecord = dataFile.GetLength()/sizeof(data);
int i=0;
//重新定位
int CurRecNum;
int CurRec;
int totalRec=0;
if(nRecord % 1000!=0)
totalRec=nRecord / 1000+1;
else
totalRec=nRecord / 1000;
if (m_RecordNum/sizeof(data)==nRecord)
{
CurRecNum=m_RecordNum-(1000+nRecord % 1000)*sizeof(data);
GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
CurRec=totalRec-1;
}
else
{
CurRecNum=m_RecordNum-2000*sizeof(data);
if (CurRecNum==0)
{
GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
CurRec=1;
}
else
{
CurRec=CurRecNum/sizeof(data)/1000+1;
}
}
//文件绝对定位
dataFile.Seek(CurRecNum,CFile::begin);
CString strRec;
strRec.Format(_T("%d/%d"),CurRec,totalRec);
if (CurRec==1)
{
GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
}
GetDlgItem(IDC_STATIC1)->SetWindowText(strRec);
m_RecordNum=CurRecNum+1000*sizeof(data);
int j=CurRecNum/sizeof(data);
//下一页可用
GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
m_DataList.DeleteAllItems();
for(i=0; i<1000; i++)
{
dataFile.Read(&data,sizeof(data));
j++;
strText.Format(_T("%d"), j);
m_DataList.InsertItem(i, strText);
dvalue = data.dTemperature;
strText.Format(_T("%.1f"),dvalue);
m_DataList.SetItemText(i, 1, strText);
}
dataFile.Close();
UpdateData(FALSE);
}