解决方案 »

  1.   

    先用System.IO.File.ReadAllLines();读出所有行 然后取每一行的前多少位比较一下就好~~
      

  2.   

    导入SQL 或DataTable中,然后再搜索
      

  3.   

    between 00:10:05 and 00:10:05 的数据,正则也可以吖
    00:10:05([\w\W]*)00:10:05
    pattern 就是上面的,取出第一个分组就好
      

  4.   

    var result = File.ReadAllLines(@"C:\Users\myx\Desktop\test.txt", Encoding.GetEncoding("GB2312")).Where(a => {
                    var m=Regex.Match(a, @"(?<=^|\s)(\d{1,2}):(\d{1,2}):(\d{1,2})");
                    int s = 0;
                    if(!string.IsNullOrEmpty(m.Value))
                        s = Convert.ToInt32(m.Groups[1].Value) * 60*60+Convert.ToInt32(m.Groups[2].Value) * 60 + Convert.ToInt32(m.Groups[3].Value);
                    if (s > (10 * 60 + 5) && s < (20 * 60 + 33))
                        return true;
                    else
                        return false;
                });
      

  5.   

    导入到DataTable之后用什么方法查询呢?
      

  6.   

    谢谢~我试下
    .Where=>  是linq吗?
      

  7.   

    谢谢~我试下
    .Where=>  是linq吗?
    可惜了,我项目是.net 2.0的,linq用不了!
      

  8.   

    导入到DataTable之后用什么方法查询呢?DataTable有select()
      

  9.   

    谢谢~我试下
    .Where=>  是linq吗?
    可惜了,我项目是.net 2.0的,linq用不了!

    List<string> list = new List<string>();
                foreach (string item in File.ReadAllLines(@"C:\Users\myx\Desktop\test.txt", Encoding.GetEncoding("GB2312")))
                {
                    var m = Regex.Match(item, @"(?<=^|\s)(\d{1,2}):(\d{1,2}):(\d{1,2})");
                    int s = 0;
                    if (!string.IsNullOrEmpty(m.Value))
                        s = Convert.ToInt32(m.Groups[1].Value) * 60 * 60 + Convert.ToInt32(m.Groups[2].Value) * 60 + Convert.ToInt32(m.Groups[3].Value);
                    if (s > (10 * 60 + 5) && s < (20 * 60 + 33))
                        list.Add(item);
                }
      

  10.   

    .Where=>  是linq吗?
    可惜了,我项目是.net 2.0的,linq用不了!

    List<string> list = new List<string>();
                foreach (string item in File.ReadAllLines(@"C:\Users\myx\Desktop\test.txt", Encoding.GetEncoding("GB2312")))
                {
                    var m = Regex.Match(item, @"(?<=^|\s)(\d{1,2}):(\d{1,2}):(\d{1,2})");
                    int s = 0;
                    if (!string.IsNullOrEmpty(m.Value))
                        s = Convert.ToInt32(m.Groups[1].Value) * 60 * 60 + Convert.ToInt32(m.Groups[2].Value) * 60 + Convert.ToInt32(m.Groups[3].Value);
                    if (s > (10 * 60 + 5) && s < (20 * 60 + 33))
                        list.Add(item);
                }
    谢谢``很周到贴心
    结贴给分!