本人初学VC,最近要实现这么一个功能,却不知从何处下手?
我需要从一个文件中读取数据。这个文件的内容大致如下:电压 1
电流 2
我需要通过查找前面的字符串,然后再读出后面的数值。
即我查找“电压”,然后就可以得到其后的数值1。这个功能按说不难实现,可我就是不知如何实现,到底该使用哪些类和函数?请各位大侠帮忙详细解答。多谢了!

解决方案 »

  1.   

    1.先CStdioFile用ReadString一行行读出来或全部读出来
    2.再用String的Find,查找“电压”,Mid(位置+往后五个长度)
      

  2.   

    //*****示例文件 text.txt ****电压 1
    电流 2
    电工 10
    电能 20
    电容 30 
    哈哈哈哈 30//-----------------------#include <afx.h>
    #include <iostream.h>
    int main(){
    char* pFileName="text.txt";
    CString szText,szOut;
    int pos;
    try
    {
    CStdioFile f(pFileName,CFile::modeRead);
    while(f.ReadString(szText)){
    pos = szText.Find(" ");
    szOut = szText.Mid(pos+1);
    cout<<szOut<<endl;
    }
    }
    catch(CFileException e){
    e.ReportError();
    }
    return 0;
    }//------------------------
    注意:在控制台程序中,要修改一下设置:
    工程 --> 设置 -->Genernal --> Using MFC in a Share DLL
      

  3.   

    多谢二位。
    不过还有一个问题,就是关于文件路径应该怎么写?如果那个text文件放在应用程序当前目录,pFileName应该怎么写?采用相对路径,还是绝对路径?分别如何写呢?
      

  4.   

    CString sPath;
    GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
    sPath.ReleaseBuffer();
    int nPos;
    nPos=sPath.ReverseFind('\\');
    sPath=sPath.Left(nPos);
    CString lpszFileName = sPath + "\\text.TXT";lpszFileName存放的就是你的DEBUG文件夹下面的text.TXT的当前路径了。
      

  5.   

    直接用相对路径就可以了,如text.txt ..\\text.txt
      

  6.   

    当前目录就直接text.txt好了
    也可一绝对路径