内容存放在名为20060813_WEB_000.w3c的文件中,可以用记事本打开,其中格式如下:
#Software: Microsoft Internet Security and Acceleration Server 2004
#Version: 2.0
#Date: 2006-08-13 00:00:12
#Fields: c-ip       date         time    cs-protocol     cs-uri
172.16.102.13     2006-08-13    00:00:12      http http://c.msn.com/c.gif?di=4988
172.16.102.13 2006-08-13    00:00:26 http http://72.36.164.90/svc/?172.16.100.38 2006-08-13    00:00:49 http http://218.30.15.18/i_p.jpg
172.16.100.49 2006-08-13    00:01:26 http    http://218.30.15.18/i_p.jpg
..............现在要求根据输入IP和时间段把相应的记录查询出来并显示在页面上,请问各位大侠该如何实现,给个思路,多谢了!
如果查询IP=172.16.102.13 在00:00:00-01:00:00之间的记录,显示结果为
 c-ip               date         time    cs-protocol     cs-uri
172.16.102.13     2006-08-13    00:00:12      http http://c.msn.com/c.gif?di=4988
172.16.102.13 2006-08-13    00:00:26 http http://72.36.164.90/svc/?

解决方案 »

  1.   

    文本文件?
    你用textreader来一行行读取,格式固定,分别取出ip,datetime,url三部分,然后存入Datatable中。以后查找可以用DataTable.Select来完成。
      

  2.   

    用StreamReader 装入文件StreamReader sr = new StreamReader("TestFile.txt")
    一行一行读去进行处理
    string line = "";
    while ((line = sr.ReadLine()) != null) 
      {
         //处理一行。
         Console.WriteLine(line);
       }
      

  3.   

    ArrayList lt = new ArrayList();
            using (StreamReader sr = new StreamReader(FilePath))
            {
                String line;
                while (sr.Peek() != -1)
                {
                    line = sr.ReadLine();
    }}
    再对每一行的记录进行判断处理
      

  4.   

    如果有上百万条记录,那还不如在用textreader一边读取,一边判断读文件这一步是不可避免的,效率肯定不高,所以,长期地将这样的日志记录保存在一个文本文件中显然不是什么好的选择!如果非要用文本文件,要么就是定期清理,把文件限制在一定的大小,要么就是按一定的规则分多个文件存储
      

  5.   

    刚进公司的虚拟项目就是读log,显示。
    好像50m的要10来分钟。
      

  6.   

    看来只能一行行读数据再放到datatable中了,那再问一下,如何把每一行的数据拆分开来写入datatble呢
      

  7.   

    一个例子。
    select * from openrowset('MICROSOFT.JET.OLEDB.4.0','Text;HDR=Yes;DATABASE=c:\',a#txt)a.txt
    aa;5512,332;01.010.03
    bb;45,6125;02.01.04Schema.ini
    [a.txt]
    ColNameHeader=false
    format=Delimited(;)
    DatetimeFormat=DD.MM.YY
    DecimalSymbol=,
    col1=Name Text WIDTH 10
    col2=Num Currency
    col3=Date Date
    /*
    Date                                                   Name       Num                   
    ------------------------------------------------------ ---------- --------------------- 
    2003-10-01 00:00:00.000                                aa         5512.3320
    2004-01-02 00:00:00.000                                bb         45.6125
    */