建议用于解析文本
问题描述:
我有一些像这样的文本的文本文件:建议用于解析文本
#rn=three rutid=svt#
#outgoing#
sz sucs sw-loss ans-comp cong dur-absy
0000000000 0000000000 0000000000 0000000000 0000000000 0000000000
dsz ratpt ovfl usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00008.00 00000.00 00008.00 00000.00 00000.00 00000.00
#incoming#
sz sucs ans-comp usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00008.00 00000.00 00008.00 00000.00 00000.00 00000.00
#rn=board rutid=svt#
#outgoing#
sz sucs sw-loss ans-comp cong dur-absy
0000000000 0000000000 0000000000 0000000000 0000000000 0000000000
dsz ratpt ovfl usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00000.00 00000.00 00000.00 00000.00 00000.00 00000.00
#incoming#
sz sucs ans-comp usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00000.00 00000.00 00000.00 00000.00 00000.00 00000.00
#rn=conf6 rutid=svt#
#outgoing#
sz sucs sw-loss ans-comp cong dur-absy
0000000000 0000000000 0000000000 0000000000 0000000000 0000000000
dsz ratpt ovfl usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00000.00 00000.00 00000.00 00000.00 00000.00 00000.00
#incoming#
sz sucs ans-comp usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00000.00 00000.00 00000.00 00000.00 00000.00 00000.00
#rn=dtimon rutid=svt#
#outgoing#
sz sucs sw-loss ans-comp cong dur-absy
0000000000 0000000000 0000000000 0000000000 0000000000 0000000000
dsz ratpt ovfl usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00000.00 00000.00 00000.00 00000.00 00000.00 00000.00
#incoming#
sz sucs ans-comp usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00000.00 00000.00 00000.00 00000.00 00000.00 00000.00
#rn=conf10 rutid=svt#
#outgoing#
sz sucs sw-loss ans-comp cong dur-absy
0000000000 0000000000 0000000000 0000000000 0000000000 0000000000
dsz ratpt ovfl usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00000.00 00000.00 00000.00 00000.00 00000.00 00000.00
#incoming#
sz sucs ans-comp usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00000.00 00000.00 00000.00 00000.00 00000.00 00000.00
#rn=rconf6 rutid=svt#
#outgoing#
sz sucs sw-loss ans-comp cong dur-absy
0000000000 0000000000 0000000000 0000000000 0000000000 0000000000
dsz ratpt ovfl usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00000.00 00000.00 00000.00 00000.00 00000.00 00000.00
#incoming#
sz sucs ans-comp usg-bsy usg-ovall usg-ans
0000000000 0000000000 0000000000 00000.00 00000.00 00000.00
usg-idle usg-mnt usg-inst usg-flt usg-cns usg-lock
00000.00 00000.00 00000.00 00000.00 00000.00 00000.00
现在我要分析它,我必须将它转化成一个列表或数组。 我有一个想法来解析模式的每一行,但我认为有一个简单的方法,我不知道。 请帮助我,如果你有一个解决方案 我想一个C#解决方案
答
int counter = 0;
string line;
// Read the file and display it line by line.
using (StreamReader file = new System.IO.StreamReader("c:\\test.txt");
{
List<string> items = new List<string>();
while((line = file.ReadLine()) != null)
{
if (!line.Trim().StartsWith("#") && !line.Trim().StartsWith("0"))
{
string[] arr = line.Split('\t'); //each item
items.Add(line); //or if you want the whole row
}
counter++;
}
}
它的更好,如果你告诉我们,你的代码。分享你的研究有助于每个人告诉我们你发现了什么,以及它为什么不符合你的需求。这表明你已经花时间去尝试帮助自己,它使我们避免重申明显的答案,最重要的是它可以帮助你得到更具体和相关的答案:)祝你好运! – 2013-03-09 08:17:18
预期产量是多少? – VladL 2013-03-09 08:17:51
编写它最简单的方法是自己做(特别是因为你已经知道如何做到这一点)。否则,请发布您的代码,详细解释您遇到的问题。 – 2013-03-09 08:18:51