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

Project1

 找回密码
 注册会员
搜索
楼主: TERENCE
打印 上一主题 下一主题

Marshal.load(file)读取数据 順序层次的问题(纯讨论)

 关闭 [复制链接]

Lv1.梦旅人

蚂蚁卡卡

梦石
0
星屑
116
在线时间
66 小时
注册时间
2007-12-16
帖子
3081
21
发表于 2009-2-6 07:53:35 | 只看该作者
欢迎讨论有关RM的问题,你提出的问题能引起大家的积极讨论
我也受益匪浅 多谢

竖起一个拇指 也是为了让更多人来讨论
《隋唐乱》完整解密版点击进入
米兰,让我怎么说离开……

曾经我也是一个有志青年,直到我膝盖中了一箭……

《隋唐乱》博客地址
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

22
发表于 2009-2-6 21:04:46 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3132
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

23
发表于 2009-2-6 21:32:36 | 只看该作者
以下引用沉影不器于2009-2-6 13:04:46的发言:

整理成函数更方便...

module Marshal
def self.read(port, sect, proc=nil)
   str = ["\004\010"].pack("a*") ### - -||
   return self.load(str + port.read.split(str)[sect+1], proc)
end
end

file = File.open("Save1.rvdata", "rb")
a=Marshal.read(file,1)
p a



[本贴由作者于 2009-2-6 13:14:51 最后编辑]

pack是什么……第一句生成了那个EOF标志吗?
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
21 小时
注册时间
2007-7-3
帖子
573
24
发表于 2009-2-6 23:44:29 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
25
 楼主| 发表于 2009-2-7 00:44:05 | 只看该作者
以下引用沉影不器于2009-2-6 13:04:46的发言:
整理成函数更方便...
module Marshal
def self.read(port, sect, proc=nil)
   str = ["\004\010"].pack("a*") ### - -||
   return self.load(str + port.read.split(str)[sect+1], proc)
end
end

file = File.open("Save1.rvdata", "rb")
a=Marshal.read(file,1)
p a

["\004\010"].pack("a*")
这句我无法理解 pack (二进制把数组转成字符串) 怎么用??

而且为甚麼是"\004\010"和"a*"
沉影 可以举个例子 或 讲解吗??

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

26
发表于 2009-2-7 01:28:20 | 只看该作者
以下引用沉影不器于2009-2-6 13:04:46的发言:
str = ["\004\010"].pack("a*")

这……直接写"\004\010"多好……  - -|
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

27
发表于 2009-2-7 02:45:39 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
28
 楼主| 发表于 2009-2-7 03:33:09 | 只看该作者
以下引用沉影不器于2009-2-6 18:45:39的发言:

回TERENCE:
p "".unpack("a*")

回亿万星辰:
我也不知道,中午赶时间匆忙测试,有时候"\004\010"就得到nil...["\004\010"].pack("a*")貌似不出错...困了想睡觉去,先在这行后面注释"### - -||"

我终於知道沉影不器这样写的用意了
"".unpack("a*") 就表示["\004\010"] 而不是只有 "\004\010"
在RM里无法显示要不就显示的很丑(一般是打不出来的)
写成["\004\010"]就代表了""

                签名图来自:無限のファンタジア
                 我的RMXP专题空间--龙使传说
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

29
发表于 2009-2-7 04:26:59 | 只看该作者
  1. a = "\004\010"
  2. b = ["\004\010"]
  3. p a == b.pack("a*")
复制代码

嗯,是这样的。
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
90
在线时间
379 小时
注册时间
2006-10-16
帖子
4299

贵宾

30
发表于 2009-2-7 05:40:52 | 只看该作者
越看越晕…………已经是我看不懂的程度了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 04:38

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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