我目前採用的方法是先一個字符一個字符讀進來,判斷是否與給定字串的首字母相符,相符就再讀進與字串一樣長度的字符串,再進行比較,這樣的方法感覺有點慢,但是又想不到還有甚麼更好的 辦法,希望高手指教

解决方案 »

  1.   

    可以看看时间,是不是大部分的时间都花在读文件上了?
    如果是这样的话,就一段一段的读进来(如果文件不大就全读进来)
    然后调CString的函数.find试试,如果还不快就没辙了
      

  2.   

    我讀得是bin文件,一般都有1M或2M的大小,感覺如果一個字符一個字符的讀會太慢
    但是如果又不能全讀到內存裡面再找吧
    ps;一個一個的讀和一次全讀進來有區別麼?是調用函數太花時間嗎?
      

  3.   

    CStdioFile file;
    if(file.Open("c:\\1.txt", CFile::modeRead))
    return; CString strLine, strKey="name";
    while(file.ReadString(strLine))
    {
    if(strLine.Find(strKey) != -1)
    {
    AfxMessageBox("find!");
    break;
    }
    }
      

  4.   

    那就得计算前面每一行的长度
    Find能返回找到的第一个字符位置然后相加