PB 读大文件的问题!

jkonline 2011-05-27 12:24:00
请教个问题。PB有没有类似于ReadHuge()这种一次性读大文本文件的函数。一次处理读入300多M文件太慢了。。或者有没有类似的API。
==========================================
现在处理了一下
blob ls_filecontext,ls_tmp
String str
int i,loops,j
//debugbreak()
k=1
ll_FLength = filelength(named)
ll_FileNum = FileOpen(named,StreamMode!, Read!, LockRead!)
if ll_FLength > 32765 then
if mod(ll_FLength,32765) = 0 then
loops= ll_FLength/32765
else
loops= ll_FLength/32765 +1
end if
else
loops=1
end if
// read file
//SetPointer(hourglass!)
for i=1 to loops
j=FileRead(ll_filenum,ls_tmp)

//ls_filecontext=ls_filecontext+ls_tmp//这句不加的话368M文本8秒读进来。

k++
sle_hang.text=string(k)
next
FileClose(ll_FileNum)
//str=String(ls_filecontext)

但是读进来的数据合并时非常耗时间,谁有好办法?
...全文
205 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jkonline 2011-05-28
  • 打赏
  • 举报
回复
谢谢结贴!
lightsword1 2011-05-27
  • 打赏
  • 举报
回复
确实有这个问题!
zlf19810306 2011-05-27
  • 打赏
  • 举报
回复
11.5之后有,filereadex
fm20027 2011-05-27
  • 打赏
  • 举报
回复
如果你用pb11.5的话可以用filereadex省去了中间每次只能读32k的循环。至于耗时没有计算过。不过这么大的文件会很占数据库空间的。
yyoinge 2011-05-27
  • 打赏
  • 举报
回复
我用的是512M内存的电脑,读331MB的文件用了104秒
yyoinge 2011-05-27
  • 打赏
  • 举报
回复
已经发到你的邮箱了
yyoinge 2011-05-27
  • 打赏
  • 举报
回复
用VC写的dll
jkonline 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yyoinge 的回复:]

100秒算不算长
[/Quote]

100秒可以,流模式?
yyoinge 2011-05-27
  • 打赏
  • 举报
回复
100秒算不算长
jkonline 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jkonline 的回复:]

自己顶一下~ll_FileNum = FileOpen(named,TextMode!, Read!, LockRead!)可以一次读入大文本20兆600多毫秒。
但是368 MB (386,400,256 字节)无法一次放入String里,奇怪的问题。
[/Quote]

PB11.5 Xp 2G内存
jkonline 2011-05-27
  • 打赏
  • 举报
回复
自己顶一下~ll_FileNum = FileOpen(named,TextMode!, Read!, LockRead!)可以一次读入大文本20兆600多毫秒。
但是368 MB (386,400,256 字节)无法一次放入String里,奇怪的问题。
jkonline 2011-05-27
  • 打赏
  • 举报
回复
PB11.5 FileReadEx()在流模式下怎么读不到字符?行模式下可以。求解!
gui41021 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lightsword1 的回复:]
有一堆文件,每个文件大小为2G,每个文件的内容格式一致,每行记录均为:字段1 字段2 字段3 字段4,记录有可能重复,也有可能不完整(其中一个或多个字段为空),要求把不完整的记录保存为错误文件,把完整而且不重复的记录保存为正确的文件。
[/Quote]
C++区对这种问题的处理方式:http://topic.csdn.net/u/20110516/17/6C8434DB-FB58-416C-BC65-A65690B23147.html#r_73360941

399

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 非技术版
社区管理员
  • 非技术版社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧