刚开始用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); //显示数据

解决方案 »

  1.   

    就是想把edit、radio button、combo button的状态保存起来,下次打开程序时还能用
      

  2.   

    /************************************************************************************************/
    /* 以下为加载按键程序内容 */
    /************************************************************************************************/
    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: 在此添加控件通知处理程序代码
    }