注册 登录
编程论坛 VB6论坛

求教如何高效有效的处理巨大TXT文件?(续贴)

ictest 发布于 2017-05-12 09:44, 1391 次点击
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

谢谢 风吹过b 版主大大。
在运行测试中,但还有几个疑问:
1、装载大文件有一定几率会出现“实时错误14,溢出串空间 ”的报错框,是否需要在装载文件前先清一下缓存?
2、如何删除指定DEVICE#:号?
   比如在Combo1中选择一个号,例如“5”,点击新建的一个“删除”键,数据中除去“DEVICE#:5”的这一个数据段外其他的数据段重新写入文件,要注len(5)是1,否则DEVICE#:5X、DEVICE#:5XX 或 DEVICE#:5XXX都会被删除。
2 回复
#2
风吹过b2017-05-12 10:28
1、装载大文件有一定几率会出现“实时错误14,溢出串空间 ”的报错框,是否需要在装载文件前先清一下缓存?

这个是文件实在太大了,在打开文件那一步,一次性读入内存时报的错。
要解决的话,还是回到老路,
1、一行一行的读,保存到数组里,时间会很长。
2、使用内存映像,然后仍然是一行一行的读。时间要稍短一点。

--------------
2、如何删除指定DEVICE#:号?
   比如在Combo1中选择一个号,例如“5”,点击新建的一个“删除”键,数据中除去“DEVICE#:5”的这一个数据段外其他的数据段重新写入文件,要注len(5)是1,否则DEVICE#:5X、DEVICE#:5XX 或 DEVICE#:5XXX都会被删除。

修改 DEVICE#:号 是按输入的号,匹配第一个,如果你要单独删除,那么需要在 DeviceNew 里做标记,然后保存时,就不保存。
如这个标志写成  -9999

那么在保存时,先判断一下
for i=1 to pf.conut  '原循环代码
   '原进度条代码
  if pf.device(i).devicenew<>-9999 then         '不等于 -9999 时,保存此节
   '接原保存代码

  end if
next i

显示里 加判断
if pf.device(noindex).devicenew = -9999 then
   text1.text ="[删除]"
else
  text1.text = pf.device(noindex).devicenew
end if

增加一个删按钮。
pf.device(noindex).devicenew = -9999        '设为删除标志
call combo1_clicek()                        '重新去显示


--------------
#3
wp2319572017-05-12 10:35
大到一定程度就不行了吧

记事本能打开的txt也是有容量限制的
1