c# 中处理 大文本数据 现在我要做一个类似于EXECL的自动筛选的东西不需要画面需要做的是筛选的操作我的文本类容大概有124列和6000行,每列文本以制表符为分隔(原有格式)现在我要在这大概2.07M的文本文件里面通过4个条件进行筛选怎么样才能向EXECL那样快速呢?或者怎么样才能实现我需要的效果呢?欢迎指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用纯文本方式来存储表格数据,这个不大好提高效率。必须要读所有流的数据,拆分后到数组,比较麻烦。改成本地的Access来存应该比这个好多了。从数据库select。 2M的数据量不是很大,以后会增加到很大吗?如果不会很大,所有数据放到DataSet中后存为XML形式也可以。DataTable的视图可以定义RowFilter来过滤。 那可以用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); XML方式的操作还可以用 XmlDocument、XmlReader、XmlWriter等 XmlDocument doc = new XmlDocument(); doc.Load(@"F:\a.xml"); doc.SelectNodes("路径"); //筛选。这方面代码太多,看看帮助文档吧。 查找的数据可以从datatable的视图中显示。dataGridView1.DataSource=dv;或者从数据库读取到一个datatable中。 xml或者数据库方式你选一种,先自己尝试做做,不可能让别人列出大堆的代码来吧。 将整个TXT文件转换成XML文件后 由原来的2.xM成长到20.xM了查询的时候也有点慢有什么优化的方法吗?实在是没有搞过这方面的东西~~ 如果换个查询,例如查询另一个字段,岂不是要在需查找的字段上重新排序?多运行几次查询,分别针对几个不同的字段,会是什么效果?用ACCESS试试吧 treeview中的数据如何与日期控件绑定? 日期比较的问题 一个奇怪的问题,请高手指点。。在线等 MapObject 地图坐标系转换 动太创建系统类 焦点的问题 C#打印问题:在打印预览里面正常,但点击预览里面得打印后,在纸上只打印出来了一部分 调用委托的时候出现错误! wpf多点触控点击文本框,如何不弹出系统自带的键盘 C# 中如何用正则表达式得到 两个字符串之间的 字符串啊 如何获取被展开或合拢的TreeNode控件? 紧急求助:C#基本问题(能回答者帮忙看看,谢谢)
改成本地的Access来存应该比这个好多了。从数据库select。
2M的数据量不是很大,以后会增加到很大吗?
如果不会很大,所有数据放到DataSet中后存为XML形式也可以。DataTable的视图可以定义RowFilter来过滤。
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);
XmlDocument doc = new XmlDocument();
doc.Load(@"F:\a.xml");
doc.SelectNodes("路径"); //筛选。
这方面代码太多,看看帮助文档吧。
dataGridView1.DataSource=dv;
或者从数据库读取到一个datatable中。
用ACCESS试试吧