【问题标题】:MFC CFile writeMFC CFile 写入
【发布时间】:2013-07-25 02:13:55
【问题描述】:

我正在使用 MFC 编写一个测量应用程序。在第一次运行时,我将数据写入第一列,然后写入下一行和下一行。

问题来了。第二次运行时,如何在第二列写入数据?

CFile DataFile(m_strPathName, CFile::modeWrite | CFile::modeCreate);
sprintf_s(File,"%d,%f,%e\r\n",i , position, buffer1);
GetLength = strlen(File);
DataFile.Write(File, GetLength);

buffer1 是从测量硬件中提取的功率值。

【问题讨论】:

  • 必须按列增长吗?这对于文件来说是非常尴尬和低效的。但是它们可以通过在末尾添加一行来轻松增长。
  • 第一个数据将在第一列增长,第二个数据将在第二列增长。那就是我的意思。 @ScottMcP-MVP

标签: c++ mfc cfile


【解决方案1】:

实际上,我认为,您应该为文件设计一种格式。写的时候,应该用一个偏移量来确定写到哪里。例如,列长是一个特定的值,和行的值是一样的,像这样:

---column1----|----column2----|---column3----|...
---row1-------|----row2-------|----row3------|..
....

当你写一列或一行时,只需找到“|”定位,然后写下你的价值。

【讨论】:

    【解决方案2】:

    您的意思是按列写入数据,就在第一列旁边?这不能按顺序进行。由于文件是一个流结构,我们也不能在文件中间插入数据。

    另一种方法是:

    1. 创建具有写入和附加权限的新文件。
    2. 从原文件顺序读取一行,写入新文件。
    3. 将第二列的一行写入新文件。
    4. 重复第 2 步和第 3 步,直到原始文件到达末尾。
    5. 交换原文件和新文件的文件名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-20
      • 1970-01-01
      • 2014-02-12
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      相关资源
      最近更新 更多