void CCalenderDlg::OnBtnSave() 
{
// TODO: Add your control notification handler code here
CString filename;
UINT index = m_listTitle.GetCurSel();
m_listTitle.GetText(index, filename);
CString str;
str.Format("%s%s%s",".\\memo\\",filename,".txt");
AfxMessageBox(str);
CFile myFile;
if(!myFile.Open(str, CFile::modeCreate | CFile::modeReadWrite ))
AfxMessageBox("wrong : could not create new file");
int lineCount = m_EditRecord.GetLineCount();
CString text;
for(int i=0; i<lineCount; i++)
{
CString temp;
int lineLenth = m_EditRecord.LineLength(i);
m_EditRecord.GetLine(i, temp.GetBuffer(lineLenth));
text += temp;
text += "\r\n";
}
myFile.Write(text, sizeof(text));
}能成功的创建文件,就是文件内容是空的

解决方案 »

  1.   

    CString 使用 GetBuffer之后记得要 ReleaseBuff
      

  2.   

     myFile.Write(text.Getbuffer(text.GetLength()), text.GetLength()));
    myFile.Close();
      

  3.   

    sizeof(text),长度就不对!
    文件没有关闭
    所以,有两个错误!
      

  4.   

    你跟踪调试一下,将断点设置在myFile.Write(text.Getbuffer(text.GetLength()), text.GetLength())); 
    看看text里面的内容是什么?
      

  5.   

    void CCalenderDlg::OnBtnSave() 
    {
        // TODO: Add your control notification handler code here
        CString filename;
        UINT index = m_listTitle.GetCurSel();
        m_listTitle.GetText(index, filename);
        CString str;
        str.Format("%s%s%s",".\\memo\\",filename,".txt");
        AfxMessageBox(str);
        CFile myFile;
        if(!myFile.Open(str, CFile::modeCreate | CFile::modeReadWrite ))
        {
            AfxMessageBox("wrong : could not create new file");
            return;//返回
        }
        int lineCount = m_EditRecord.GetLineCount();
        CString text;
        for(int i=0; i<lineCount; i++)
        {    
            CString temp;
            int lineLenth = m_EditRecord.LineLength(i);
            m_EditRecord.GetLine(i, temp.GetBuffer(lineLenth));//temp未赋值
    //如果m_EditRecord.GetLine是取数据,第二个参数应该为CString &
    //否则下面的temp为"".
            text += temp;
            text += "\r\n";
        }
        myFile.Write(text, sizeof(text));//改为 myFile.Write(text, text.GetLength());
        myFile.Close();//加上
    }
      

  6.   

    void   CCalenderDlg::OnBtnSave()  
    {
            //   TODO:   Add   your   control   notification   handler   code   here
            CString   filename;
            UINT   index   =   m_listTitle.GetCurSel();
            m_listTitle.GetText(index,   filename);
            CString   str;
            str.Format( "%s%s%s ", ".\\memo\\ ",filename, ".txt ");
            AfxMessageBox(str);
            CFile   myFile;
            if(!myFile.Open(str,   CFile::modeCreate   |   CFile::modeReadWrite   ))
            {
                    AfxMessageBox( "wrong   :   could   not   create   new   file ");
                    return;//返回
            }
            int   lineCount   =   m_EditRecord.GetLineCount();
            CString   text;
            for(int   i=0;   i <lineCount;   i++)
            {        
                    CString   temp;
                    int   lineLenth   =   m_EditRecord.LineLength(i);
                    m_EditRecord.GetLine(i,   temp.GetBuffer(lineLenth));//temp未赋值
    //如果m_EditRecord.GetLine是取数据,第二个参数应该为CString   &
    //否则下面的temp为 " ".
                    text   +=   temp;
                    text   +=   "\r\n ";
            }
            myFile.Write(text,   sizeof(text));//改为   myFile.Write(text,   text.GetLength());
            myFile.Close();//加上
    }
      

  7.   

    myFile.Write(text,lstrlen(test));
    myFile.Close();