设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1153|回复: 2
打印 上一主题 下一主题

[已经解决] File.read还有什么限制么?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
跳转到指定楼层
1
发表于 2009-11-14 17:35:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
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了呢?

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
2
发表于 2009-11-15 05:25:34 | 只看该作者
你文件中有没有换行?如果有的话,把读取模式改为二进制模式(即把 "r" 改为 "rb"),否则你虽然知道长度是 1693 字节,但是按照 "r" 文本格式读取的时候,如果文件中有回车符 "\r",那么所有的回车符都会被抛弃,最后得到的字符串长度自然也就小于 1693 了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
61 小时
注册时间
2006-9-15
帖子
946
3
 楼主| 发表于 2009-11-16 00:37:22 | 只看该作者
谢谢!非常感谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-26 21:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表