2016-06-09 147 views
-3

你好我是C#的新手,我必須解析格式化的文本文件,其中包含如下的數據。如何解析c#中的txt文件

 
H1|57535     |65644474|  243.34 
D1|671690160540  |FedEx Gnd |Ground   |Parcel |06082016 
D2|FCREADHCU3  | 10||||||  23.01 
H1|57521     |65642336|  923.31 
D1|671690161010  |FedEx Gnd |Ground   |Parcel |06082016 
D2|PS121B   |  1|  0.00 
H1|57521     |65642336|  923.31 
D1|671690161031  |FedEx Gnd |Ground   |Parcel |06082016 
D2|PS121B   |  1|  0.00 
H1|57521     |65642336|  923.31 
D1|671690161020  |FedEx Gnd |Ground   |Parcel |06082016 
D2|PS121B   |  1|  0.00 
snipping     

如何解析C#中的文本文件。幫助表示讚賞。

+1

執行谷歌搜索 – Gwasshoppa

+0

簡要查看您的數據,有3種不同的固定長度字段行,查看前兩個字符以確定使用哪種格式。您將不得不計數字符以確定每個字段的長度。 –

+0

如果您希望得到答案,請不要發佈您的文本圖片 - 如果我們需要幫助,我們需要原始文本。你應該在你的問題中的'

'標籤中發佈你的文字。 –
                        
                            
    Enigmativity
                                
                            
                        
                    

回答

2

開始與此:

var lines = File.ReadAllLines("<your path/filename>"); 
var stringBags = lines.Select(l => l.Split('|')); 
var objects = stringBags.Select(b => new {Id = b[0], Name = b[1], SomeOtherField = b[2]}); 

這給你一個方法來解析該文件,並將其投影到某種可處理的對象中

+0

如果你要逐行處理,然後使用'File.ReadLines'。如果您必須*同時在內存中存儲所有行,請僅使用'ReadAllLines'。 –

+0

如何根據H1,D1和D2拆分數據,因爲這些是字段標題,我希望字段標題數據與其相關聯。所以,每個H1的數據,每個D1的數據,每個D2的數據。 –

0

你可以對文件中的每一行做一個foreach循環和解析字符串...

foreach (string line in File.ReadAllLines("filepath")) 
+0

如果你要逐行處理,然後使用'File.ReadLines'。如果您必須*同時在內存中存儲所有行,請僅使用'ReadAllLines'。 –