写得啰嗦了点,见谅…… 
我做了一个光盘管理系统,现在已经写完了录入的代码,我建了一个单文档文件,然后录入后的数据分别显示在单文档中和保存在一个txt文件当中,现在我想在菜单栏中再加一项来读取数据,请问我该怎么来实现,我想了两、个方案,把数据从单文档中读出来,可是我的数据都是由控件录入的,每行记录一项数据,我怎么才能把数据按行读出来(不带乱码)并显示在另一个对话框中,请高手指点,如果有其他方案更好的我也可以接受,前提是我做好的代码我不想改了,费了很长时间弄的,而且我刚学MFC不久,东西不熟,所以别的方法我也不会,马上要交了,牛人帮忙,小弟谢过~!

解决方案 »

  1.   

    我写过这样的代码
    不知道你录入的代码怎么写的?
    text文件中是怎样的格式保存的GetPrivateProfileString()           可以读取数据
    SetWindowText()             可以显示数据具体的还要看你的具体情况了
      

  2.   

    这样的~!关键是读取时怎么定位从哪读到哪,这个我很头疼,尤其是,象光盘名称这样的,文字长度是不定的,不知怎么办
    @_@  @_@  @_@  @_@  @_@  @_@// // // // // 基 本 信 息 // // // // // 光 盘 名 称: 22入 手 日 期: 22内 容 分 类: 22光 盘 格 式: DVD光 盘 容 量: 4.7G入 手 方 式: 烧 录// // // // // 烧 录 信 息 // // // // //光盘未刻满,不可写入
    显示数据的代码在这里(部分代码)
    CString str;
    //获取编辑正文
    m_pParent->GetWindowText(str);
    str+="@_@  @_@  @_@  @_@  @_@  @_@";
    str+="\r\n";
    str+="// // // // // 基 本 信 息 // // // // // ";
    str+="\r\n";
    str+="光 盘 名 称: ";
    str+=m_ncdname;
    str+="\r\n";
    str+="入 手 日 期: ";
    str+=m_ndate;
    str+="\r\n";
    str+="内 容 分 类: ";
    str+=m_nkind;
    str+="\r\n";
    str+="光 盘 格 式: ";
    str+=m_nCd?"DVD":"CD";
    str+="\r\n";
    str+="光 盘 容 量: ";
    str+=m_nmemory;
    str+="\r\n";
    str+="入 手 方 式: ";
    str+=m_nBuy?"烧 录":"购 买";
    str+="\r\n";
    str+="// // // // // 购 买 信 息 // // // // //";
    str+="\r\n";
    str+="随 书 附 赠: ";
    str+=m_nfree?"是":"否";
    str+="\r\n";
    str+="购 买 价 格: ";
    CString str1;
    str1.Format("%d",m_nprice);
    str+=str1;
    str+=" 元";
    str+="\r\n";
    str+="出  版  商: ";
    str+=m_npublish;
    str+="\r\n";
    str+="I  S  B  N: ";
    str+=m_nisbn;
    str+="\r\n";
      

  3.   

    这样的~!关键是读取时怎么定位从哪读到哪,这个我很头疼,尤其是,象光盘名称这样的,文字长度是不定的,不知怎么办 
    @_@  @_@  @_@  @_@  @_@  @_@ // // // // // 基 本 信 息 // // // // //  光 盘 名 称: 22 入 手 日 期: 22 内 容 分 类: 22 光 盘 格 式: DVD 光 盘 容 量: 4.7G 入 手 方 式: 烧 录 // // // // // 烧 录 信 息 // // // // // 光盘未刻满,不可写入 
    显示数据的代码在这里(部分代码) 
    CString str; 
    //获取编辑正文 
    m_pParent->GetWindowText(str); 
    str+="@_@  @_@  @_@  @_@  @_@  @_@"; 
    str+="\r\n"; 
    str+="// // // // // 基 本 信 息 // // // // // "; 
    str+="\r\n"; 
    str+="光 盘 名 称: "; 
    str+=m_ncdname; 
    str+="\r\n"; 
    str+="入 手 日 期: "; 
    str+=m_ndate; 
    str+="\r\n"; 
    str+="内 容 分 类: "; 
    str+=m_nkind; 
    str+="\r\n"; 
    str+="光 盘 格 式: "; 
    str+=m_nCd?"DVD":"CD"; 
    str+="\r\n"; 
    str+="光 盘 容 量: "; 
    str+=m_nmemory; 
    str+="\r\n"; 
    str+="入 手 方 式: "; 
    str+=m_nBuy?"烧 录":"购 买"; 
    str+="\r\n"; 
    str+="// // // // // 购 买 信 息 // // // // //"; 
    str+="\r\n"; 
    str+="随 书 附 赠: "; 
    str+=m_nfree?"是":"否"; 
    str+="\r\n"; 
    str+="购 买 价 格: "; 
    CString str1; 
    str1.Format("%d",m_nprice); 
    str+=str1; 
    str+=" 元"; 
    str+="\r\n"; 
    str+="出  版  商: "; 
    str+=m_npublish; 
    str+="\r\n"; 
    str+="I  S  B  N: "; 
    str+=m_nisbn; 
    str+="\r\n"; 
      

  4.   

    可以这样:
    CStdioFile f;
    f.open(...);
    然后用一个死循环
    INT num = 0;
    while(1)
    {
       CString strTemp;
       if (!f.ReadString(strTemp))
           break;
       else
       { 
           //把要的数据从整行字符串中分开,写入对应变量
            num++;
        }
    }
    这样,可以得到总共多少条记录,以及每条记录中需要的信息