解析文本的建议

时间:2013-03-09 08:14:29

标签: c# parsing text

我有一个文本文件,其中包含一些文字:

#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#解决方案

1 个答案:

答案 0 :(得分:1)

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