2012-06-25 51 views
2

如何从文件中读取连续的结构,当它们具有不同的字段时,并为它们中的每个创建适当的字段(标题:值)?我是一名初学者。我认为这是关于动态添加新字段,同时阅读第i个结构并动态删除i-1结构中的字段,在阅读结构i后它仍为空。但是,我怎么能够做到这一点,不知道以前的所有领域的名称?为此,我无法在文档或论坛中找到示例。动态删除或添加结构中的字段

谢谢!

回答

1

如果某些字段出现在每个对象中,请将它们放在一个公用的结构中,使其具有实例。对于变量字段,在主结构中创建一个字段“变量”或其他内容,然后在内动态分配字段名称和值。因此,例如,你的结构可能是:

a.name = 'Name1'; 
a.value = 'Value1'; 
a.variable.price = 50; 


b.name = 'Name2'; 
b.value = 'Value2'; 
b.variable.year = 1996; 

data(1) = a; data(2) = b; 

,每一个对象都有字段“名”和“价格”和对象a具有价格领域,但不是一年领域,对象b有一年的领域,没有价格领域。

这将适用于您要阅读的数据类型。

+0

感谢您的好主意!然而,这里的问题是,我可能不知道一个结构有多少这样的特定领域,所以价格可变,但可能更多。那么该怎么办?如何从这个文件动态读取它们,然后在用新的特定字段/变量读新结构时如何覆盖/删除旧的文件? – beginh

+0

这不应该是一个问题 - 你可以在“变量”字段中放置尽可能多的字段 - 你可以说a.variable.price,a.variable.id,a.variable.size和任何数量的这样的子字段。基本上,你的主要结构保持不变,所以你不必覆盖任何东西。 – Ansari

+0

是的,我明白。所以我可以创建结构数组(a和b),并使用字段名称:名称,值,变量来启动这些结构。然后我可以在一个文件中找到合适的单词,使用正则表达式对它们进行索引,然后取出我想要的内容。但我不知道的是:如何从子结构变量动态读取 - 我不知道那里的名称和字段数量,也没有这些字段的值。 我正在考虑重复与'外部'结构相同的过程,只是在一个循环内部,但由于我不知道字段,不像我在外部的那样..我不能创建空洞结构。 – beginh

相关问题