ReadString应如何用,参数如何定??

解决方案 »

  1.   

    char sz[MAX_PATH];
    UINT nMax;
    ReadString( (LPTSTR)sz, nMax );
      

  2.   

    楼上的有没搞错?
    CStdioFile f;
    CString strline;
    ...
    f.ReadString(strline);
    就可以了。
    如果要读整个文件到另一个文件中:
    CStdioFile fo;
    ...
    while (f.ReadString(strline))
    {
       fo.WriteString(strline+"\n");
    }
      

  3.   

    我有类市的问题:把一个文本文件,每行都是以“\n”,结尾的字湖串读出放到一个字符串类里,但有问题,编译没问题,运行时出错,
    CStdio file;
    CString tmp;
    CStringArray atrrArray;
    //用debug跟踪以下几句错
    if(!file.ReadString(tmp))  break;  
                     strArray.Add(tmp);  
                               }while(1);  
    可能是指针用错了或可能是字符串转化为数组时出问题了,怎么改,谁帮帮忙?
      

  4.   

    while(file.ReadString(tmp))
        strArray.Add(tmp);
      

  5.   

    virtualfunction(virtualfunction):你好,按你说的修改,还是没解决问题
      

  6.   

    virtual LPTSTR ReadString( LPTSTR lpsz, UINT nMax );
    throw( CFileException );BOOL ReadString(CString& rString);
    throw( CFileException );
    ------------------------------
    while(file.ReadString(tmp))
        strArray.Add(tmp);
    ------------------------------
    我劝你还是用CObList类好些!
    例如:
    void CDigitalToStringDoc::OnReadFromFile() 
    {
    // TODO: Add your command handler code here
      CStdioFile fileInput;
      CString strTemp;
      CDigital *pDigital;
      
       fileInput.Open("DigitalTest.txt",CFile::modeRead);
      
      this->m_isLoaded=true;  while(true)
      {
    if( fileInput.ReadString(strTemp))
    {
    pDigital=new CDigital;
    pDigital->m_strDigital=strTemp;
    m_DigitalList.AddTail(pDigital);
    }
    else
      break;
      }  fileInput.Close();
      CMainFrame *pFrame=(CMainFrame*)::AfxGetMainWnd();
      pFrame->GetActiveView()->Invalidate();
    }
    void CDigitalToStringDoc::OnCloseDocument() 
    {
    // TODO: Add your specialized code here and/or call the base class
      CDigital * pDigital;
      while(!this->m_DigitalList.IsEmpty())
      {
    pDigital=(CDigital*)this->m_DigitalList.RemoveHead();
    delete pDigital;
      }
    CDocument::OnCloseDocument();
    }
    void CDigitalToStringDoc::OnWriteToFile() 
    {
    // TODO: Add your command handler code here
     CStdioFile fileOutput;
     CString strTemp;
     fileOutput.Open("DigitalTest.txt",
       CFile::modeCreate|CFile::modeNoTruncate|CFile::typeText|CFile::modeWrite);  //定位文件指针到文件的末尾,否则会覆盖以前的数据
     fileOutput.SeekToEnd();
     //写入测试数据
     for(int i=0;i<100;i++)
     {
       strTemp.Format("%f",this->m_DigitalData[i].m_dblDigital);
       strTemp+="\n";//加入换行符
       fileOutput.WriteString(strTemp);
     }
     fileOutput.Close();}
    void CDigitalToStringDoc::OnCalculator() 
    {
    // TODO: Add your command handler code here
    // 测试用数据
      double TestData[100];
      for(int i=0;i<100;i++)
      {
    TestData[i]=i*0.97857779557;
    this->m_DigitalData[i].m_dblDigital=TestData[i];
      }
      
    }
    class CDigital:public CObject
    {
      public:
    CString m_strDigital;
    double m_dblDigital;
    CDigital(const char *szDigital="",double digital=0);
      
    };
    class CDigitalToStringDoc : public CDocument
    {
    protected: // create from serialization only
    CDigitalToStringDoc();
    DECLARE_DYNCREATE(CDigitalToStringDoc)
    public:
      CDigital m_DigitalData[100];
      bool m_isLoaded;
       CObList m_DigitalList;
    // Attributes
    ....
    };
    //The class  CDigital implementation in here!CDigital::CDigital(const char *szDigital,double digital ):m_strDigital(szDigital),m_dblDigital(digital){}//End of the implementation of the class CDigital!
    CDigitalToStringDoc::CDigitalToStringDoc()
    {
    // TODO: add one-time construction code here
    this->m_isLoaded=false;}