现有一个需求:一个文本文件,我想查询每行的内容是否包括如“ABC”字符,并且当前行其后的内容为“123”,如果是看其下一行是否包括“abc”,如果包括则取此行后的第三行的内容,然后再从取的这行内容的下一行进行循环查询如果当前行包括“ABC”的内容,并且当前行其后的内容不为“123”则不进行下一行的比较,继续查找下一行关键字。如果当前行的内容包括“ABC”并且其后的内容也是“123”,则比较下一行内容是否包括“abc”,如果不是,则查找下一行,进行关键字比较。现困难的是:在当前行的情况下,如果取当前行的下一行内容,和当前行的第三行内容望高手指点简单的方法谢谢!

解决方案 »

  1.   

    文本内容如下:
    asdfa
    adfaABC 123
    abc 
    adfa
    adf
    111ABC adf
    abc
    adf
    adf
    222ABC 123
    bcd
    adfaf
    asdfadf
    333ABC 123
    abc 
    adfa
    adfa
    444
    结果如下:
    111
    444
      

  2.   

     首页| 空间| 新闻| 论坛| 博客| 下载| 读书| 网摘| 书店| 程序员| 项目交易| 乐知教育| 网址 欢迎您:zxp8819|退出|登录注册|帮助    
     CSDN-CSDN社区-.NET技术-C# 
    管理菜单 生成帖子 置顶 推荐 取消推荐 锁定 解锁 移动 编辑 删除 帖子加分 帖子高亮 取消高亮 结  帖 发  帖 回  复 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 请求好的处理方法!谢谢[问题点数:40分] 
    hlzyly
     
    (孤星) 等 级: 
    结帖率:97.92%  楼主发表于:2010-06-28 16:50:42现有一个需求:一个文本文件,我想查询每行的内容是否包括如“ABC”字符,并且当前行其后的内容为“123”,如果是看其下一行是否包括“abc”,如果包括则取此行后的第三行的内容,然后再从取的这行内容的下一行进行循环查询如果当前行包括“ABC”的内容,并且当前行其后的内容不为“123”则不进行下一行的比较,继续查找下一行关键字。如果当前行的内容包括“ABC”并且其后的内容也是“123”,则比较下一行内容是否包括“abc”,如果不是,则查找下一行,进行关键字比较。现困难的是:在当前行的情况下,如果取当前行的下一行内容,和当前行的第三行内容望高手指点简单的方法谢谢!
     
     
     
     
    对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 回复次数:5  
     
    ledmhcc
     
    (ledmhcc) 等 级:  #1楼 得分:0回复于:2010-06-28 17:18:32递归循环 
     
     
    对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:c#面试题:继承与构造函数的调用 
     
    dobear_0922
     
    (do熊) 等 级: 
     #2楼 得分:0回复于:2010-06-28 17:20:38把你的文件内容贴上来,然后说一下你要什么结果,看描述看得头晕。 
     
     
    对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:【oj每周推荐】谈谈.Net里的引用 
     
    hlzyly
     
    (孤星) 等 级:  #3楼 得分:0回复于:2010-06-28 17:26:39文本内容如下:
    asdfa
    adfaABC 123
    abc  
    adfa
    adf
    111ABC adf
    abc
    adf
    adf
    222ABC 123
    bcd
    adfaf
    asdfadf
    333ABC 123
    abc  
    adfa
    adfa
    444
    结果如下:
    111
    444
     
     
     
    对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:如何获得WINFORM 里的pictureBox中的图片中的事件 
     
    hlzyly
     
    (孤星) 等 级:  #4楼 得分:0回复于:2010-06-29 12:35:36怎么没人回答呢? 
     
     
    对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:VB和C#之间,你为什么选择了C#? 
     
    ghost281536992
     
    (ghost281536992) 等 级:  #5楼 得分:0回复于:2010-06-29 12:40:02拿你贴上来的那个文件档例子,把需求说详细点 
     
     
    对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 精华推荐:关于CAB/SCSF的技术问题讨论,请使用过的和感兴趣的朋友加入!:) 
    管理菜单 生成帖子 置顶 推荐 取消推荐 锁定 解锁 移动 编辑 删除 帖子加分 帖子高亮 取消高亮 结  帖 发  帖 回  复 相关问题 
    C#通讯编程(整理)|大家可以进来学习- .NET技术/ C# 求计算机专业的本科学士学位的教学课程计划,详细一点的我想自学谢谢 ... 高分求救咨询silverlight访问remoting的方法- 多媒体/设计/Flash ... [已处理]删除资源,谢谢- 社区支持/ 下载频道 TCP/IP 的socket服务器怎么处理高链接(1万个以上) 高并发的链接请求 ... 100分规划Linux服务器的问题,先谢谢各位- Linux/Unix社区/ 系统维护与 ...   
    公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告
    北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
     Email:[email protected]
    Copyright © 1999-2010, CSDN.NET, All Rights Reserved
     
      

  3.   

    写个伪代码吧
    使用时 for(int i= 0 ;i < 文本行数 ; i++)
    {
       if(行[i]有 abc && 后面是 123)
       {
          if([i+1]<=文本行数)
          {
             return;
          }
          if(行[i+1]有 abc)
          { 
            if(i+3 <= 文本行数)
            {
              return;
            }
            取行[i+3]的值;
             i=i+3;
          }
       }
    }
      

  4.   

    using(FileStream stream = File.OpenRead("文件路径"))
    using (StreamReader reader = new StreamReader(stream, Encoding.Default))
    {
        string currRowStr = reader.ReadLine();
        string nextRowStr = reader.ReadLine();
        string nextNextRowStr = null;
        while (!string.IsNullOrEmpty(currRowStr))
        {
            nextNextRowStr = reader.ReadLine();        //在这里,变量currRowStr为当前行的内容,变量nextRowStr为下一行的内容,
             //变量nextNextRowStr代表下下行的内容。循环在遍历完文件所有行后自动退出。         currRowStr = nextRowStr;
            nextRowStr = nextNextRowStr;
        }
    }在注释的地方写你自己的逻辑。