MFC按行读写文件,亲测有用!

void CViewAShareEvent::OnSaveType(CString type)
{
    CFile file;
    CString FileName = "data.txt";  //文件名称
    //如果没有此文件则需创建一个这样的文件
    file.Open(FileName, CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate);
    //按行存储
    if (file.GetLength() != 0)
    {
        file.SeekToEnd();
        file.Write("\r\n", strlen("\r\n"));//换行
    }

        //写入
    file.Write((unsigned char *)(type.GetBuffer(0)), type.GetLength());
    file.Flush();
    file.Close();
}    

 1 void CViewAShareEvent::OnGetType()
 2 {
 3     CString m_data;
 4     CFile file;
 5     CString FileName = "data.txt";
 6 
 7        //如果没有这个文件则退出
 8     if (!file.Open(FileName, CFile::modeRead)) //只读
 9         return;
10 
11     CString Type = "";
12     char Typestr;
13 
14         //根据/r/n判断文件是在哪里分隔,继而得出行内容
15     while (file.Read(&Typestr, 1))
16     {
17         if (Typestr == '\r')
18         {
19             m_arrNewTypes.Add(Type);
20         }
21         if (Typestr == '\n')
22         {
23             Type = "";
24         }
25         else
26         {
27             Type = Type + Typestr;
28         }
29     }
30 
31        //由于最后一个没有/r/n所以在此处判断是否为空而确定有没有最后的类型
32     if (!Type.IsEmpty())
33     {
34         m_arrNewTypes.Add(Type);
35     }
36     
37     file.Close();
38 }

 下午折腾了一会,因为百度查的比较乱,最终经过测试,就是这样写啦

posted @ 2020-08-06 19:35  请叫我小小兽  阅读(1414)  评论(0编辑  收藏  举报