大文本文件怎样进行操作??? 抢分呀 (100分)

  • 主题发起人 主题发起人 tank37
  • 开始时间 开始时间
T

tank37

Unregistered / Unconfirmed
GUEST, unregistred user!
问题:
文本文件 1百万行 到 1千万行 记录!(50M)
要对其进行索引,就是去除相同的行。

可以考虑用数据库(本地的)
注意:不可以使用大型数据库,如MS SQLServer, Oracle.....:)只能使用桌面数据库
我要对这个大文本进行类似于索引的操作,把结果存入另一个文本。
大家帮帮忙!
 
用数据库是可以的,但主要的问题可能是效率。
也可以直接用“分类”的方法
 
能不能直接对文本操作?

如果采用数据库,是不是先要把这1,000,000的记录导入到
数据库里呀!!!我现在需要高效的方法!!!还有用什么数据库比较好呢??

分我可以再加!!!

 
用sql
sql支持导入文本格式的文件(当然文本文件的格式要规范,可以先看看sql导出的文本文件)
事先创建好表格
//用以下语句去除相同的行并保存至新的表格
select distinct(字段名) as 字段名 into newtable from tablename
 
还使用数据库方便
 
在内存中开个128M的虚拟盘(假设你的内存>=256M,呵呵),把文件拷贝到虚拟盘上,然后自己编段程序读文件对它进行排序吧。
可以用一些个中间文件。至于算法,随便找一个排序算法吧。
 
导入ORACLE8I以上的数据库中,然后用RANK()函数找出重复记录删除,效率很高
我们处理过1300多万条记录(其中重单有300多万),大概一个半小时就删完了
 
打开另一个文件,这边读,那边写。
 
既然可以用数据库,为什么还要写到文件中?!——尤其是这样的问题!!!
 
是否可以考虑THashStringList,
算法
while not fileA.eof do
read line from fileA
if not exists line in Hashstringlist then
hashstringlist.add line
wend
hashstringlist.save fileB
我想效率会比数据库要高,欢迎继续讨论。
 
先把文件分成若干份,然后开几个进程同时做处理,也可以利用多台电脑一起做,再把结果
拼起来,可以吧。[:D]
 
因为文本里就只有email地址,只不过是邮件列表,比如说一般是从MYSQL中得到的。
现在需要对其进行筛选、索引。
 
{===============================================
是否可以考虑THashStringList,
算法
while not fileA.eof do
read line from fileA
if not exists line in Hashstringlist then
hashstringlist.add line
wend
hashstringlist.save fileB
我想效率会比数据库要高,欢迎继续讨论。
============================================}

THashedStringList
哈希表如何使用呀???请详细介绍一下!!!!
 
一是轉為memo中處理
二是使用cds的xml功能
將其轉為xml處理
 
dos下的fc比较好吧,那个肯定快
 
linux下的sort,但好像不能删除重复的行
 
随便用一个办法,反正就一次,1小时,10小时有区别吗?发贴已超20个了。
 
后退
顶部