设计更好的文本文件格式,用于读取可变长度的混合类型数据

时间:2013-04-04 21:26:07

标签: c# text-files vb6-migration

我正在设计一个用C#读取的文本文件格式。我需要在一行中存储类型:int,double和string。我打算使用.CSV格式,以便手动打开和读取文件。特定记录可能有8个已知类型,然后是(string,int,double)或(string,int,double,double)的可变数量的“指标”组合,而某些行可能不包括“指标”。因此,每条记录的长度可以是可变的。

在VB6中,我只是输入数据,将数据拆分成变量数组,然后确定数组中该行的元素数量,并使用*** VarType函数确定最终的“指标”变量是string,int或double,并相应地解析字段。

可能有更好的方法来设计文本文件,这可能是最佳解决方案。如果是这样,我有兴趣听取意见。我搜索过但发现没有专门讨论将混合类型的可变长度文本行读入C#的问题。

如果没有更好的格式,有没有办法在C#中复制VB6 VarType函数,如上面两段所述***?我可以在C#中轻松处理文本文件读取和行拆分。

2 个答案:

答案 0 :(得分:2)

你可以使用json或xml,因为它们在.NET中得到很好的支持并具有自动序列化功能

答案 1 :(得分:1)

首先,我同意Keith建议使用Xml或JSON。你在这里重新发明一个轮子。 This page有一个介绍性示例,说明如何将对象序列化为文件以及一些指向更多信息的链接。

如果您需要坚持自己的文件格式和自定义序列化/反序列化,请查看Convert类,以及挂起内部值类型的各种TryParse方法比如int和double。