关于fileread读取文本文件内容不全是什么原因?
本帖最后由 ahphsautoit 于 2010-12-28 15:51 编辑用fileread命令读取一个文本文件(通常大小为几百K至几M),经常发生读取的内容尾部丢失部分数据,偶尔发生数据中段有部分数据丢失,同时丢失部分修改为一小段乱七八糟的代码的情况,请问是怎么回事?$1=FileOpen('文本.txt')
$2=FileRead($1)
FileClose($1)当文本文件大至几百K以上时,经常发生读取后的$2内容与文本文件原始内容不符的现象。 是不是过程有整理内存的动作引起的 回复 2# _ddqs.
采用读取全部内容的方式读取时间都是一瞬间就完成了,况且我没有主动整理内存。只能说是可能有关吧。对于数据尾部丢失的问题,我目前暂时的解决方法是:在读取前,先往该文本文件中续写至少500行以上的行,这样读取的结果就是丢失我续写上去的部分行,而相对地保全原有的内容。所以我才奇怪这问题的原因,似乎并不是数据量过大的问题。 在进行分次读取时,ReadFile函数确实有这么一个BUG,缓存区边界检查BUG。解决方法是用映射的方式一次性读取文件到内存中。
CreatFileMapping
MapViewOfFile 回复 4# pusofalse
哦,确认不是我的语法存在问题就是了。目前还是维持我采用的那种变通方式来处理的。Pusofalse给的方法正在学习中.l... 在进行分次读取时,ReadFile函数确实有这么一个BUG,缓存区边界检查BUG。解决方法是用映射的方式一次性读取 ...
pusofalse 发表于 2010-12-28 17:44 http://www.autoitx.com/images/common/back.gif
哦,还有这个BUG?
从来没有发现,也放是我比较喜欢读入数组的关系?
从来没试过映射到内存中,马上试试。
发表下感叹,经常从P大的字里行间学到新的东西。--虽然经常还要GOOGLE下P大的关键字。 哦,还有这个BUG?
从来没有发现,也放是我比较喜欢读入数组的关系?
从来没试过映射到内存中,马上试试 ...
3mile 发表于 2010-12-29 00:01 http://www.autoitx.com/images/common/back.gif
如果是类似于INI格式的文本,读入数组似乎没有问题。我处理的是几百万字的小说,能读入数组么?我转不过弯来啊,幸好前边不是树,哈哈哈!{:face (356):}
页:
[1]