2013-04-23 104 views
0

我有一個字符串,它使數據更像csv格式。從文本文件中提取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

+0

這是什麼內容?你想對數據做什麼?你確定你不只是想在Excel或類似的應用程序中打開它嗎? – Kjartan 2013-04-23 15:18:23

回答

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(';')); 
+0

Thnxs的建議,但任何方式反序列化它在某些特定的格式,因爲通過使用拆分我必須使用循環,數組,使其按順序...... – user1260967 2013-04-23 14:53:31

+0

你可以更具體到你的意思是「在某些特定格式?」你能舉一個例子說明你得到了什麼,你想從中得到什麼,所以我可以更好地回答你的問題 – workabyte 2013-04-23 15:26:04

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 
    } 
} 

至於問題的反序列化部分;你需要指定你想要的格式類型。如果您只想要一組想要循環的數字,您可以將每個值都添加到一個通用列表中。

如果你想要一個特定的格式,你可以創建一個包含每個值的字段的類,並使用這些值填充該類的通用列表。