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



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

我对几个家庭进行了测量,他们的数据每天都在变化。我的目标是将所有的测量结果(用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

谢谢。

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

我看到了两个基本的选择。

  1. 使用序列化库来生成不是格式化为简单文本而是格式化为Json或XML的输出。也许助推会有所帮助。

    优势:可访问性,可使用各种开放标准格式的工具(电子表格、数据库、编辑器)。轻松生成各种输出格式,如普通Ascii、HTML、PDF等

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

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

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

    缺点:无法使用电子表格和数据库等工具(这可能是最大的长期缺点,会再次困扰你)。也许还有更多的工作要做。每种输出格式都需要对序列化功能进行完整的重写。

最新更新