楼主: TERENCE

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

  [复制链接]

蚂蚁卡卡

梦石
0
星屑
116
在线时间
66 小时
注册时间
2007-12-16
回帖
2991
发表于 2009-2-6 07:53:35 | 显示全部楼层
欢迎讨论有关RM的问题,你提出的问题能引起大家的积极讨论
我也受益匪浅 多谢

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

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

《隋唐乱》博客地址
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2009-2-6 21:04:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 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标志吗?
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
21 小时
注册时间
2007-7-3
回帖
570
发表于 2009-2-6 23:44:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
回帖
2623
 楼主| 发表于 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专题空间--龙使传说
回复

使用道具 举报

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

贵宾

发表于 2009-2-7 01:28:20 | 显示全部楼层
以下引用沉影不器于2009-2-6 13:04:46的发言:
str = ["\004\010"].pack("a*")

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

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2009-2-7 02:45:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
回帖
2623
 楼主| 发表于 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专题空间--龙使传说
回复

使用道具 举报

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

贵宾

发表于 2009-2-7 04:26:59 | 显示全部楼层
  1. a = "\004\010"
  2. b = ["\004\010"]
  3. p a == b.pack("a*")
复制代码

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

使用道具 举报

魔王 ⑨

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

贵宾

发表于 2009-2-7 05:40:52 | 显示全部楼层
越看越晕…………已经是我看不懂的程度了
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部