filereadEX逐行读取文件时候,出现警告pb调用内部系统函数内存不够。

lin1982 2006-04-30 04:10:54
filereadEX(ll_file,str_marc),第一个参数是文件号(long),第二个参数是string类型。

逐行读取得时候,中间有一行出现问题(其他行没问题)。提示“error calling pb system function memroy is not enough!"

工具+系统:pb10+mssql,xp
...全文
860 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dahaidao 2006-05-17
  • 打赏
  • 举报
回复
可以试一下单独读这一行可否。或者再试一下只读这一行中的一个部分。
lin1982 2006-05-09
  • 打赏
  • 举报
回复
谢谢,楼上。
首先,我要逐行读取文件,进行处理。要用linemode!。
FOR i = 1 to loops
FileRead(li_FileNum, Bolb[i]) //按行读取
NEXT

其中,loops不对,逐行读取,loops不是总行数。
在pb10,中filereadex()可以通吃大小文件。不必进行文件分割读取。
我把我得文件中有问题得几行从源文件中删除,剩下得20多万条就没问题了(共140M)。
我还没搞清楚为什么那几行有问题。贴一行出来看看。估计不是长度得问题,有比这更长的都没有问题。

00962nam0 2200265 450 00100130000000500170001301000350003010000410006510100130010610200150011910500180013410600060015220000790015821000310023721500250026830600520029333001410034551000280048654000340051460600400054869000120058870100490060070200260064980100210067501200602088020060314151607.0 a7-110-06206-6b精装dCNY390.00 a20060314d2006 em y0chiy0121 ea1 achiceng aCNb110000 aa z 001yy ar1 a彩图世界科技史ACai Tu Shi Jie Ke Ji Shif(英)彼得·惠特菲尔德著g繁奕祖译 a北京c科学普及出版社d2006 a2册(716页)c图d28cm a本书由英国Compendium Publishing Limited授权出版 a本书系统地展现了在人类几千年的历史进程中科技发展的主体脉胳,介绍了各个历史阶段科技创新和发现的代表人物及著名科学家的创新思维和发现过程。1 aHistory of Sciencezeng1 a世界科技史AShi Jie Ke Ji Shi0 a自然科学史AZi Ran Ke Xue Shiy世界 aN091v4 1c(英)a惠特菲尔德AHui Te Fei Er Deb彼得4著 0a繁奕祖AFan Yi Zu4译 0aCNbJGc20060314

爱猫的鱼V 2006-05-08
  • 打赏
  • 举报
回复
flen = FileLength(str_pathname)

IF flen > 32765 THEN
li_FileNum = FileOpen(str_pathname,LineMode!)
IF Mod(flen, 32765) = 0 THEN
loops = flen/32765
ELSE
loops = (flen/32765) + 1
END IF
Bolb[0]= string(loops) //文件所需最大数组数
FOR i = 1 to loops
FileRead(li_FileNum, Bolb[i]) //按行读取
NEXT

ELSE //当文件长度小于32765时,采用 StreamMode
li_FileNum =Fileopen(str_pathname,StreamMode!)
loops = 1
END IF
FileClose(li_FileNum)

楼主,这样试试...不然,你就限定一下每行的数据.
lin1982 2006-05-08
  • 打赏
  • 举报
回复
我打开文件得方式是:ll_file=fileOpen(str_pathname,LineMode!)
linemode!模式。我觉得是不是其中某个行数据量太大?可是string支持没问题。不知道是不是filereadEX()出问题。我读取另一个文件,80M都没问题。换一个文件每一个行太长就出问题?
ruky9988 2006-05-08
  • 打赏
  • 举报
回复
If the file was opened in Stream mode, FileRead reads to the end of the file or the next 32,765 bytes

这是help里的说法,你可以用循环的方式读入数组
lin1982 2006-05-08
  • 打赏
  • 举报
回复
lin1982 2006-04-30
  • 打赏
  • 举报
回复
自己顶。有谁能帮我?
我用fileread()函数得时候,读出来得是乱码。还有好像fileread不能读大文件。我得文件能达到100M啊

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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