Project1

标题: File.read还有什么限制么? [打印本页]

作者: secondsen    时间: 2009-11-14 17:35
标题: File.read还有什么限制么?
ruby File.read还有什么限制么?RT.。。。

怎么
f = File.open("xxx","r")
f.pos = pos  #获取的起始位置
str = f.read[0...length].clone  #length 是这要读取的长度

就这样。。。

print str[index]
当 index > 1326 时  都是 nil了  长度length 是 1693  还没超过长度啊。。。。怎么就是nil了

File.open ("xxx")这个文件 690M。。。文件读取的起始位置是 0x5DD  刚开始读呢。。。

我用winhex打开文件

pos:1326 + 0x5DD-> 10  ->这个读到了,后面都变成nil了
         1327+0x5DD-> 1A
         1328+0x5DD->69

为什么我写的这段就变成nil了呢?
作者: 紫苏    时间: 2009-11-15 05:25
你文件中有没有换行?如果有的话,把读取模式改为二进制模式(即把 "r" 改为 "rb"),否则你虽然知道长度是 1693 字节,但是按照 "r" 文本格式读取的时候,如果文件中有回车符 "\r",那么所有的回车符都会被抛弃,最后得到的字符串长度自然也就小于 1693 了
作者: secondsen    时间: 2009-11-16 00:37
谢谢!非常感谢!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1