已知格式化文件中的数据排列

时间:2015-04-21 09:48:33

标签: c++

我对已知格式化文件中的数据排列有疑问。它有点复杂,所以我希望我做对了。这是个问题:

我对几个家庭进行了测量,他们的数据每天都在变化。 我的目标是将所有测量结果(用c ++)写入文件,但是有条理且清晰。

这是我需要的格式:

several files- file name: family_name

每个文件都包含:

family member 1:
                 day1   ,   day2   ,   day3   ...
weight:
height: 
blood pressure:
etc...


family member 2:
                 day1   ,   day2   ,   day3   ...
weight:
height: 
blood pressure:
etc...


family member 3:
                 day1   ,   day2   ,   day3   ...
weight:
height: 
blood pressure:
etc...

是否有某种众所周知的c ++库,我可以很容易地(在运行时):

1. make the table (number of rows and columns)
2. give title for every column and every row
3. insert data to specific cell 
4. save it as arranged file

感谢。

1 个答案:

答案 0 :(得分:3)

除非您想重新实现类似于记录的文件访问的COBOL,否则我认为您最好将整个文件读入内部数据表示,插入或更新有问题的数据,然后重写整个文件。

我看到了两个基本选项。

  1. 使用序列化库以生成未格式化为简单文本的输出,例如作为Json或XML。也许助力可以帮助。

    优势:使用适用于开放标准格式(电子表格,数据库,编辑器)的各种工具的辅助功能。轻松生成各种输出格式,如普通的Ascii,HTML,PDF等。

    缺点:直接人类可读性有限(但如果序列化为上述文本格式,则仍然可以。)

  2. 滚动您自己的序列化。简单数据并不难。为每个"记录"创建输出和输入例程。及其"子记录"使用标准iostream工具,或者可能更简单,printf / scanf

    优势:完美的人类可读性,完整的格式控制。

    缺点:使用电子表格和数据库等工具无法访问(可能是最大的长期劣势,它会回来并咬你)。也许还有更多的工作要做。每种输出格式都需要完全重写序列化功能。