当前位置:编程学习 > C#/ASP.NET >>

请教各位高人,关于文本文件字符串查询的问题!

现有文本文件格式如下:
6901223650011
6901223650012
6901223650003
6901223250011
.。。。
长度都是定长的,共有13位。
共近百万条记录。而且是无序排序的,现将一条新记录写入到文件中,内容假设为:6258000145241,如何判断该记录在文件中不存在?
注:程序不是在PC机中运行的,是在WINCE设备中运行,内存只有32MB;
谢谢,在线等!!!
--------------------编程问答-------------------- 忘了,开发工具是C#,谢谢!! --------------------编程问答-------------------- 参考快速选择算法
也就是分治算法,先分批读入,然后快速选择
这方面资料网上很多,例如:http://www.cnblogs.com/yihui_L/archive/2008/10/25/1319551.html

PS:你问的这东西与语言种别基本上是没关系的 --------------------编程问答--------------------
引用 2 楼 batehurry 的回复:
参考快速选择算法
也就是分治算法,先分批读入,然后快速选择
这方面资料网上很多,例如:http://www.cnblogs.com/yihui_L/archive/2008/10/25/1319551.html

PS:你问的这东西与语言种别基本上是没关系的

谢谢,我看一下,有什么问题还要请教!!! --------------------编程问答-------------------- 还以为是数据库呢,
数据库中简单,
SELECT COUNT(*) FROM TB WHERE COL=6258000145241
程序中看能不能转换成数据,再用CONTAINS()来判断一下 --------------------编程问答-------------------- 使用.NET的话,可以用File类来操作,打开文件并搜索吧

  Version Information 
.NET Framework
Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework
Supported in: 3.5, 2.0, 1.0

XNA Framework
Supported in: 3.0, 2.0, 1.0

这个是该类的支持版本信息,有Compact说明就能在嵌入系统中用了,具体lz自己实践了。 --------------------编程问答--------------------
引用 5 楼 ztchen 的回复:
使用.NET的话,可以用File类来操作,打开文件并搜索吧

  Version Information
.NET Framework
Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework
Supported in: 3.5, 2.0, 1.0

XNA Framework
Supported in: 3.0, 2.0, 1.0

这个是该类的支持版本信息,有Compact说明就能在嵌入系统中用了,具体lz自己实践了。

谢谢回帖,但文件内容是无序的,搜索起来速度很慢的!有没有办法快速查询,就像是UEDIT里文本查找,速度奇快,不知道用的是什么方法?
还有我是在CE下进行查找!谢谢! --------------------编程问答-------------------- 请问多大的文件?感觉不会慢啊,有很多种打开文件的方法,如OpenRead优化为只用于读,然后用FileStream类来获取里面的数据,使用Seek方法可以快速在打开的文件里定位。这些通常都很高效的,不过CE下没有测试过。如果要真正高效的话,我想还是不要用.NET或JAVA了,机器语言比较合适吧 --------------------编程问答-------------------- 机器内存将就了,使用多线程吧。
使用20个线程,每个线程分配6万数据。
弄一个全局变量,那个线程先找到,则终止所有的线程。
这个东东,以前弄过,当时的效果是:
30多万数据开了5个线程,3秒钟左右可以搞定。
CPU将近400M,内存不到20M。
我使用的是C++ --------------------编程问答--------------------
引用 8 楼 mjp1234airen4385 的回复:
机器内存将就了,使用多线程吧。
使用20个线程,每个线程分配6万数据。
弄一个全局变量,那个线程先找到,则终止所有的线程。
这个东东,以前弄过,当时的效果是:
30多万数据开了5个线程,3秒钟左右可以搞定。
CPU将近400M,内存不到20M。
我使用的是C++



用汇编肯定比你还快,呵呵
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,