VS2010 文件存取之CStdioFile

问题提出:

                我们在实际编程中会将一些数据存储到文件中,用于更进一步的处理,或者便于另一些exe调用。方法有很多种。我这里只谈下CStdio类。

               需了解更多的知识可以去msdn  点击打开链接,下面是我实际的一些应用。

1.定义

   CStdioFile listCon;  

2.打开文件

    listCon.Open("D:\\list.txt",CFile::modeWrite | CFile::typeText | CFile::modeCreate | CFile::modeNoTruncate);

   我直接写入路径了,大家也可以重新定义。特别注意后面的模式,需要根据需求填写。最后附录会列下,以后好找些。

3.向文件写入内容

        CString temp;

temp.Format("%d %s %d %d %d %d \n  ",Curmoban.Id,file,Rectx,Recty,Rectwidth,Rectheight);
listCon.WriteString(temp); 

       通过循环写入后我们看到文件中内容。以空格隔开。

       0 P0.bmp 0 0 0 0 
      1 P1.bmp 953 1017 136 347 
      2 P2.bmp 1102 1429 172 382 
      3 P3.bmp 1290 820 152 369 
      4 P4.bmp 1523 995 110 230 

4.读取文件内容

  CStdioFile file("D:/list.txt",CFile::modeRead);//创建CstdioFile对象
  while(file.ReadString(linedata))//读取出一行中的所有字符
   {
      sscanf(linedata,"%d%s%d%d%d%d%ld",&Curmoban.ID,&Curmoban.filename,&Curmoban.Mobanbox.x,&Curmoban.Mobanbox.y,&Curmoban.Mobanbox.width,                  &Curmoban.Mobanbox.height,&Curmoban.Xiansi);//提取数据
   }

如此一来一个程序中产生的数据就在另一个程序中被提取出来了。可以为同一程序提供数据共享,也可以为不同程序提供数据共享。也可以调用Excel组件直接做数据处理。

5.总结:  数据文件的存贮还是非常有用的,方便了数据的记录,保存和处理。

附录:
参数二: nOpenFlags可组合为以下值:
CFile::modeCreate 创建一个新的文件,如果文件存在将文件截取成长度为0。 ·
CFile::modeNoTruncate 此标志总是与modeCreate 配合使用,如果文件存在,不将文件截取成长度为0;如果文件不存在即创建新文件。这个功能往往很好用,比如说,当你需要打开一个设置文件,但是你并不清楚这个文件是否已经存在。
CFile::modeRead 只读方式打开。
· CFile::modeReadWrite 读写方式打开。. ·
CFile::modeWrite 只写方式打开。 ·
CFile::modeNoInherit 阻止这个文件被子进程继承。 ·
CFile::shareDenyNone 打开这个文件同时允许其它进程读写这个文件。如果文件被其它进程以兼容的模式打开,这时create操作会失败。 ·
CFile::shareDenyRead 打开文件拒绝其它任何进程读这个文件。如果文件被其它进程用compatibility模式或者是读方式打开,create操作失败。. ·
CFile::shareDenyWrite 打开文件拒绝其它任何进程写这个文件。如果文件被其它进程用compatibility模式或者是写方式打开,create操作失败。 ·
CFile::shareExclusive 以独占方式打开这个文件,不允许其它 进程读写这个文件。如果文件已经在其它程序或当前程序以其他方式打开来进行读写,将返回失败。 ·
CFile::shareCompat 这个标志在32位的MFC中无效。 ·
CFile::typeText 设置成对回车换行对有特殊处理的文本模式(仅用在派生类中)。 ·
CFile::typeBinary 设置二进制模式(仅用在派生类中) 。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值