我正在使用MFC编写一个测量应用程序。在第一次运行时,我将数据写入第一列,然后写入下一行和下一行。
问题来了。在第二次运行时,如何在第二列中写入数据?
CFile DataFile(m_strPathName, CFile::modeWrite | CFile::modeCreate);
sprintf_s(File,"%d,%f,%ern",i , position, buffer1);
GetLength = strlen(File);
DataFile.Write(File, GetLength);
buffer1是从测量硬件中提取的功率值。
实际上,我认为应该为文件设计一种格式。写入时,应该使用偏移量来确定写入位置。例如,列长度是一个特定的值,与行值相同,如下所示:
---column1----|----column2----|---column3----|...
---row1-------|----row2-------|----row3------|..
....
当您写入一列或一行时,只需找到"|"位置,然后写入您的值。
您的意思是按列写数据,哪一列紧挨着第一列?这不能按顺序进行。由于文件是一个流结构,我们也不能在文件中间插入数据。
另一种方法是:
- 使用写和追加权限创建一个新文件
- 从原始文件中按顺序读取一行,然后将其写入新文件
- 将第二列的一行写入新文件
- 重复步骤2和3,直到原始文件到达末尾
- 交换原始文件和新文件的文件名