刚开始用MCF,请各位大侠帮帮忙,下面的程序段是我的程序里的一个button控件响应程序,打开程序后可以正常保存读取,但是关闭程序后再打开时总是不能读取上次关闭前保存的东西,但是TXT文件里的东西还在,这是为什么吖,怎么才能解决这个问题呢?CStdioFile myFile;
myFile.Open("C:\\Data.txt",CFile::typeBinary|CFile::modeRead);
//创建或打开Data.txt文件用于数据存储
for(int ll=0;ll<30;ll++) //读入long数据
{
CString strLoad_long="";
myFile.ReadString(strLoad_long);
load_long[ll]=atof(strLoad_long); //将字符转换为数据
} for(int ld=0;ld<6;ld++) //读入double数据
{
CString strLoad_double="";
myFile.ReadString(strLoad_double);
load_double[ld]=atof(strLoad_double); //将字符转换为数据
} for(int li=0;li<6;li++) //读入int数据
{
CString strLoad_int="";
myFile.ReadString(strLoad_int);
load_int[li]=atof(strLoad_int); //将字符转换为数据
} for(int lB=0;lB<11;lB++) //读入BOOL数据
{
CString strLoad_BOOL="";
myFile.ReadString(strLoad_BOOL);
load_BOOL[lB]=atof(strLoad_BOOL); //将字符转换为数据
} myFile.Close(); //关闭Data.txt文件 UpdateData(FALSE); //显示数据
myFile.Open("C:\\Data.txt",CFile::typeBinary|CFile::modeRead);
//创建或打开Data.txt文件用于数据存储
for(int ll=0;ll<30;ll++) //读入long数据
{
CString strLoad_long="";
myFile.ReadString(strLoad_long);
load_long[ll]=atof(strLoad_long); //将字符转换为数据
} for(int ld=0;ld<6;ld++) //读入double数据
{
CString strLoad_double="";
myFile.ReadString(strLoad_double);
load_double[ld]=atof(strLoad_double); //将字符转换为数据
} for(int li=0;li<6;li++) //读入int数据
{
CString strLoad_int="";
myFile.ReadString(strLoad_int);
load_int[li]=atof(strLoad_int); //将字符转换为数据
} for(int lB=0;lB<11;lB++) //读入BOOL数据
{
CString strLoad_BOOL="";
myFile.ReadString(strLoad_BOOL);
load_BOOL[lB]=atof(strLoad_BOOL); //将字符转换为数据
} myFile.Close(); //关闭Data.txt文件 UpdateData(FALSE); //显示数据
/* 以下为加载按键程序内容 */
/************************************************************************************************/
void CDMCDlg::OnBnClickedButton1() //加载参数
{
long load_long[30]={CS0,CS1,CS2,CS3,QS0,QS1,QS2,QS3,ZZ0,ZZ1,ZZ2,ZZ3,YW0,YW1,YW2,YW3,position0,position1,position2,position3,speed0,speed1,speed2,speed3,ZW0,ZW1,ZW2,ZW3,CSD,ZDSD};
double load_double[6]={JSSJ,YHJD,JS0,JS1,JS2,JS3};
int load_int[6]={card_num,YF0,YF1,YF2,YF3,YHFX};
BOOL load_BOOL[11]={mode_of_motion,deceleration,displacement_mode,acceleration_curve,pulse_mode,effective_level,shaft0,shaft1,shaft2,shaft3,stop_mode};
//将不同类型数据分为四个数组
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
CStdioFile myFile;
myFile.Open("C:\\Data.txt",CFile::typeBinary|CFile::modeRead);
//创建或打开Data.txt文件用于数据存储
for(int ll=0;ll<30;ll++) //读入long数据
{
CString strLoad_long="";
myFile.ReadString(strLoad_long);
load_long[ll]=atof(strLoad_long); //将字符转换为数据
} for(int ld=0;ld<6;ld++) //读入double数据
{
CString strLoad_double="";
myFile.ReadString(strLoad_double);
load_double[ld]=atof(strLoad_double); //将字符转换为数据
} for(int li=0;li<6;li++) //读入int数据
{
CString strLoad_int="";
myFile.ReadString(strLoad_int);
load_int[li]=atof(strLoad_int); //将字符转换为数据
} for(int lB=0;lB<11;lB++) //读入BOOL数据
{
CString strLoad_BOOL="";
myFile.ReadString(strLoad_BOOL);
load_BOOL[lB]=atof(strLoad_BOOL); //将字符转换为数据
} myFile.Close(); //关闭Data.txt文件 UpdateData(FALSE); //显示数据
// TODO: 在此添加控件通知处理程序代码
}/************************************************************************************************/
/* 以下为保存按键程序内容 */
/************************************************************************************************/
void CDMCDlg::OnBnClickedButton2() //保存参数
{
UpdateData(TRUE); //获取数据 long save_long[30]={CS0,CS1,CS2,CS3,QS0,QS1,QS2,QS3,ZZ0,ZZ1,ZZ2,ZZ3,YW0,YW1,YW2,YW3,position0,position1,position2,position3,speed0,speed1,speed2,speed3,ZW0,ZW1,ZW2,ZW3,CSD,ZDSD};
double save_double[6]={JSSJ,YHJD,JS0,JS1,JS2,JS3};
int save_int[6]={card_num,YF0,YF1,YF2,YF3,YHFX};
BOOL save_BOOL[11]={mode_of_motion,deceleration,displacement_mode,acceleration_curve,pulse_mode,effective_level,shaft0,shaft1,shaft2,shaft3,stop_mode};
//将不同类型数据分为四个数组
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
CStdioFile myFile;
myFile.Open("C:\\Data.txt",CFile::modeCreate|CFile::typeBinary|CFile::modeWrite);
//创建或打开Data.txt文件用于数据存储
CString strSave_long; //写入long数据
for(int sl=0;sl<30;sl++)
{
strSave_long.Format("%ld\n",save_long[sl]); //将数据转换为字符
myFile.WriteString(strSave_long);
} CString strSave_double; //写入double数据
for(int sd=0;sd<6;sd++)
{
strSave_double.Format("%f\n",save_double[sd]); //将数据转换为字符
myFile.WriteString(strSave_double);
} CString strSave_int; //写入int数据
for(int si=0;si<6;si++)
{
strSave_int.Format("%d\n",save_int[si]); //将数据转换为字符
myFile.WriteString(strSave_int);
} CString strSave_BOOL; //写入BOOL数据
for(int sB=0;sB<11;sB++)
{
strSave_BOOL.Format("%d\n",save_BOOL[sB]); //将数据转换为字符
myFile.WriteString(strSave_BOOL);
} myFile.Close(); //关闭Data.txt文件
// TODO: 在此添加控件通知处理程序代码
}