报表
机构名称:某某机构名称       机构号:1234         日期:20121203
商户号         |代码   |交易名称      |交易时间|卡号            |交易金额     |手续费|应付手续费    |清算金额    | 净额
310130154113002|45000117|消费      |1501  |6257973497   |         2.50|         0.01 |         0.01 |         2.49|         0.00
310130154113002|45000117|消费      |1614  |6257971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
310130154113002|45000117|消费      |1648  |0007971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
310130154113002|45000117|消费      |1642  |0007971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
310130154113002|45000117|消费      |1655  |6259971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
310130154113002|45000117|消费      |1646  |6228480632   |        15.00|         0.08 |         0.06 |        14.92|         0.02
310130154113002|45000063|消费      |1640  |4007120951   |        17.00|         0.59 |         0.47 |       116.41|         0.12
310130154113002|45000045|消费      |1649  |1820207575   |         6.00|         0.03 |         0.02 |         5.97|         0.01总计:  笔数:8          总交易金额:37.88        总手续费:10.07       应付续费:776.46        
                     总清算金额:  7.81      总净额:293.61       
          
需要得到中间的交易信息,如何在数据量比较大的情况下较快捷的取出中间的交易信息。
最终结果如下:
310130154113002|45000117|消费      |1501  |6257973497   |         2.50|         0.01 |         0.01 |         2.49|         0.00
310130154113002|45000117|消费      |1614  |6257971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
310130154113002|45000117|消费      |1648  |0007971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
310130154113002|45000117|消费      |1642  |0007971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
310130154113002|45000117|消费      |1655  |6259971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
310130154113002|45000117|消费      |1646  |6228480632   |        15.00|         0.08 |         0.06 |        14.92|         0.02
310130154113002|45000063|消费      |1640  |4007120951   |        17.00|         0.59 |         0.47 |       116.41|         0.12
310130154113002|45000045|消费      |1649  |1820207575   |         6.00|         0.03 |         0.02 |         5.97|         0.01

解决方案 »

  1.   

     string str = @"                                            报表
    机构名称:某某机构名称       机构号:1234         日期:20121203
    商户号         |代码   |交易名称      |交易时间|卡号            |交易金额     |手续费|应付手续费    |清算金额    | 净额
    310130154113002|45000117|消费      |1501  |6257973497   |         2.50|         0.01 |         0.01 |         2.49|         0.00
    310130154113002|45000117|消费      |1614  |6257971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
    310130154113002|45000117|消费      |1648  |0007971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
    310130154113002|45000117|消费      |1642  |0007971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
    310130154113002|45000117|消费      |1655  |6259971228   |         2.50|         0.01 |         0.01 |         2.49|         0.00
    310130154113002|45000117|消费      |1646  |6228480632   |        15.00|         0.08 |         0.06 |        14.92|         0.02
    310130154113002|45000063|消费      |1640  |4007120951   |        17.00|         0.59 |         0.47 |       116.41|         0.12
    310130154113002|45000045|消费      |1649  |1820207575   |         6.00|         0.03 |         0.02 |         5.97|         0.01
     
    总计:  笔数:8          总交易金额:37.88        总手续费:10.07       应付续费:776.46        
                         总清算金额:  7.81      总净额:293.61       
               
    ";
                var ary = Regex.Matches(str, @"(?m)\d+\|\d+\|消费.*").Cast<Match>().Select(t => t.Value).ToArray();
              
      

  2.   

    builder = new stringbuilder();
    while(reader.Peek()!=-1)
    {
        string line = reader.ReadLine();
        int head = -1;
        int.TryParse(line[0],out head);
        if(head!=-1)
        {
           builder.append(line);
        }
    }数据量过大的时候 不要用正则完全match