从文本文件中获取csv类型的数据

时间:2013-04-23 14:38:21

标签: c# serialization csv deserialization

我有字符串,它提供更像csv格式的数据。

&stamp;field1;field2;field3;field4;&event 
10:44:00.6100;0.000;0.000;0.000;0.000; 10:44:00.7100;23.2;0.230;411.2;0.000; 10:44:00.8100;0.000;0.000;1.022;0.000;      10:44:00.9100;8.000;0.000;232.3;0.000;
 10:44:01.2100;0.000;0.000;0.000;0.000; 10:44:01.3100;23.2;0.230;411.2;0.000; 10:44:01.5100;0.000;0.000;1.022;0.000; 10:44:01.7100;8.000;0.000;232.3;0.000;

我想反序列化这些数据。我该怎么做呢?请提供一些帮助或建议。 Tnxs

2 个答案:

答案 0 :(得分:0)

这将为您提供每个字符串“拆分”的列表;焦炭。你会想要修剪和解析后面的值。希望这有帮助

var stringOfData = "0:44:00.6100;0.000;0.000;0.000;0.000;     10:44:00.7100;23.2;0.230;411.2;0.000; 10:44:00.8100;0.000;0.000;1.022;0.000;      10:44:00.9100;8.000;0.000;232.3;0.000;";
List<string> parsed = new List<string>();
parsed.AddRange(stringOfData.Split(';'));

答案 1 :(得分:0)

string line = String.Empty;
string[] parts = null;
using (StreamReader sr = new StreamReader(new FileStream(@"C:\yourfile.csv", 
                                          FileMode.Open)))
{
    while ((line = sr.ReadLine()) != null)
    {
        parts = line.Split(new [] { ';' });
        //Do whatever you want to do with the array of values here
    }
}

至于问题的反序列化部分;你需要指定你想要的格式。如果您只想要循环遍历的数字集合,则可以将每个值添加到通用List中。

如果您需要特定格式,可以创建一个包含每个值的字段的类,并使用这些值填充该类的通用列表。