2016-06-09 2 views
-3

Здравствуйте, я новичок в C#, и мне нужно разобрать текстовый файл, отформатированный, который имеет следующие данные.Как проанализировать txt-файл в C#

 
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

Сделайте поиск в google – Gwasshoppa

+0

Кратко глядя на ваши данные, есть 3 разных строчки поля фиксированной длины, посмотрите на первые 2 символа, чтобы определить ine, какой формат использовать. Вам нужно будет подсчитать символы, чтобы определить каждую длину поля. –

+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 (string line in File.ReadAllLines("filepath")) 
+0

Если вы собираетесь обрабатывать строки за строкой, используйте «File.ReadLines». Используйте «ReadAllLines», если вы * должны * иметь все строки в памяти одновременно. –

Смежные вопросы