现在我要做一个类似于EXECL的自动筛选的东西不需要画面需要做的是筛选的操作我的文本类容大概有124列和6000行,每列文本以制表符为分隔(原有格式)现在我要在这大概2.07M的文本文件里面通过4个条件进行筛选怎么样才能向EXECL那样快速呢?或者怎么样才能实现我需要的效果呢?欢迎指教

解决方案 »

  1.   

    用纯文本方式来存储表格数据,这个不大好提高效率。必须要读所有流的数据,拆分后到数组,比较麻烦。
    改成本地的Access来存应该比这个好多了。从数据库select。 
    2M的数据量不是很大,以后会增加到很大吗?
    如果不会很大,所有数据放到DataSet中后存为XML形式也可以。DataTable的视图可以定义RowFilter来过滤。
      

  2.   

    那可以用XML来存。            //保存
                DataSet ds = new DataSet();
                ds.Tables.Add(new DataTable());
                DataTable dt = ds.Tables[0];
                dt.Columns.Add("col1");
                dt.Columns.Add("col2");
                dt.Rows.Add(new object[] { "d00", "d01" });
                dt.Rows.Add(new object[] { "d10", "d11" });
                ds.WriteXml(@"F:\a.xml");
                //读取和筛选
                   DataSet ds = new DataSet();
                ds.ReadXml(@"F:\a.xml");
                DataTable dt = ds.Tables[0];
                DataView dv = new DataView(dt);
                dv.RowFilter = "col1 like 'd1%'";
                Console.WriteLine("dv:" + dv.Count);
      

  3.   

    XML方式的操作还可以用 XmlDocument、XmlReader、XmlWriter等
                  XmlDocument doc = new XmlDocument();
                doc.Load(@"F:\a.xml");
                doc.SelectNodes("路径"); //筛选。
    这方面代码太多,看看帮助文档吧。
      

  4.   

    查找的数据可以从datatable的视图中显示。
    dataGridView1.DataSource=dv;
    或者从数据库读取到一个datatable中。
      

  5.   

    xml或者数据库方式你选一种,先自己尝试做做,不可能让别人列出大堆的代码来吧。
      

  6.   

    将整个TXT文件转换成XML文件后 由原来的2.xM成长到20.xM了查询的时候也有点慢有什么优化的方法吗?实在是没有搞过这方面的东西~~
      

  7.   

    如果换个查询,例如查询另一个字段,岂不是要在需查找的字段上重新排序?多运行几次查询,分别针对几个不同的字段,会是什么效果?
    用ACCESS试试吧