我有一个平面文件表,例如student.tbl和employee.tbl。两个文件都是固定长度的文件。我有两个文件的支持文件,包括信息字段代码,字段描述,字段偏移和字段大小。
例如,
ename string 0 10
eage number 10 2
ecity string 12 10
我编写了代码,用c ++中的STL从平面文件中获取数据。我正在使用vector来加载这些数据。
我从固定长度文件加载数据的简单算法。
1)阅读支持文件。
2)将支持文件数据加载到2D矢量字符串中,例如, column_records;
3)读取表文件。
4)从表格文件中获取第一行,比如数据行。
5)从支持表中获取第一列信息 column_records的第一行。
6)根据column_record
切断数据线7)将切碎的数据推入一维向量中, record_vector。
8)执行步骤5,直到最后一列信息处理完毕。
9)将record_vector推送到2D矢量,例如Table_Vector。
10)执行步骤4,直到固定文件的最后一行到达。
好。我做得很好。它工作正常。但我的问题是,在第5步。
对于每个固定长度的数据,我觉得有一些重复的迭代。 我知道,第一固定长度数据本身可以保留其他固定长度数据的列描述。但我反复做Iteration N * M.我希望我的迭代应该是1 * M.
我知道我可以将列描述存储在Structure数组中。但我有很多类型的表。 say students.tbl和employee.tbl。两者都有不同的列。因此,我认为让N' -struct声明加载N'支持表格是不错的主意。
我希望使用相同的例程从两个表中获取数据或者' N'表。我的支持表格式不会更改。它采用制表符分隔格式。这是我的情况。
如何通过1 * M迭代从表中获取数据?
我希望我可以使用枚举来做到这一点。但我不知道该怎么做?将使用枚举或宏来解决这个问题?
我希望本课题不需要我的工作源代码。如果您认为需要源代码来回答这个问题,我肯定会用该源代码更新此问题。我有中等水平的英语知识。很抱歉给您带来不便。
谢谢。