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

Project1

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

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

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2008-5-12
帖子
129
11
发表于 2009-2-5 08:59:27 | 只看该作者
直接用Notepad打開文件一看就知道……RM的數據根本不設防
你是個好人>////<
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
12
 楼主| 发表于 2009-6-12 08:00:00 | 只看该作者
以下引用Quarcy于2009-2-5 0:59:27的发言:

直接用Notepad打開文件一看就知道……RM的數據根本不設防

眼力那么地好....
我都看不出来分界在何处的(符号)说!

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

使用道具 举报

Lv2.观梦者

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

贵宾

13
发表于 2009-2-5 15:34:31 | 只看该作者
以下引用TERENCE于2009-2-5 0:19:35的发言:

呵呵~~
利用characters = []
可行了!!

你新放个变量进去到最前面也可以……
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

魔王 ⑨

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

贵宾

14
发表于 2009-2-5 16:33:10 | 只看该作者
读取存档的时候会不会错误啊
回复 支持 反对

使用道具 举报

Lv1.梦旅人

匿·蹤

梦石
0
星屑
65
在线时间
99 小时
注册时间
2006-3-19
帖子
456
15
发表于 2009-2-5 17:49:24 | 只看该作者
以下引用Quarcy于2009-2-5 0:48:16的发言:

是根據「」分割的,所以可以用split來處理

   file = File.open(dir, mode)
   Marshal.load( "" + file.read.split("")[n] )


n 由 1 開始數


这种方法似乎不行的吧?
因为感觉变量和开关的改变会使得存档文件的长短改变……那么一改变,鬼知道要取得哪个……
卐忍 → 解忍 → 元忍 → 隐忍 → 卍忍 → 匿踪(最终)
完全退步到了卐忍阶段
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
16
 楼主| 发表于 2009-2-5 19:08:00 | 只看该作者
以下引用亿万星辰于2009-2-5 7:34:31的发言:


以下引用TERENCE于2009-2-5 0:19:35的发言:

呵呵~~
利用characters = []
可行了!!

你新放个变量进去到最前面也可以……
以下引用玄月于2009-2-5 8:33:10的发言:

读取存档的时候会不会错误啊

我觉得不要放新的变量(Marshal.dump(obj, file))进去比较妥当
有加新的一层的Marshal.dump(obj, file),
读档时就必须按位置新加一层Marshal.load(file),

如果在做存档转移时,会在Marshal.load(file)层次少一层容易把资料放错变量
或因为先前没有那一层资料而读取错误。

(这里说的存档转移,也代表  游戏进行到一半的存档,如果中途改了Save Load 相关脚本)


如果利用characters = []
在读取,存取视窗生成角色图片的回圈范围稍加注意就可以,
如果是要显示当存档前的地图,
只要利用nil值去判断....
是否做存档转移时之前沒存到的錯誤。

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

使用道具 举报

Lv3.寻梦者

孤独守望

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

开拓者贵宾

17
发表于 2009-2-5 19:17:57 | 只看该作者
以下引用Quarcy于2009-2-5 0:48:16的发言:

是根據「」分割的,所以可以用split來處理

   file = File.open(dir, mode)
   Marshal.load( "" + file.read.split("")[n] )


n 由 1 開始數

这个要狠狠的PIA,喵的脚本编辑器是UTF-8编码,记事本是ASCII编码,如果你把他用记事本打开,Copy进编辑器,你会发现根本就不是那么回事,而且不同类型表示不同,根本没法用
要提高效率最简单的办法就是单独提文件出来保存。

你是对的
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2008-5-12
帖子
129
18
发表于 2009-2-5 19:34:45 | 只看该作者
以下引用OCTSJimmy于2009-2-5 9:49:24的发言:

这种方法似乎不行的吧?
因为感觉变量和开关的改变会使得存档文件的长短改变……那么一改变,鬼知道要取得哪个……

內容大小完全不關我事,甚至裏面有多少個元素都不關我事,我祗是根據段分割符號把數據重新分割開來,然後轉義。
以下引用IamI于2009-2-5 11:17:57的发言:

这个要狠狠的PIA,喵的脚本编辑器是UTF-8编码,记事本是ASCII编码,如果你把他用记事本打开,Copy进编辑器,你会发现根本就不是那么回事,而且不同类型表示不同,根本没法用
要提高效率最简单的办法就是单独提文件出来保存。

扶額……果然不能理解嗎?
無論甚麼碼都好,在二進制當中保持一致就可以了。你不會以為I/O還會因為編碼的差異而讀出來的東西有本質的不同吧?如果是這樣,那麼Matz的大腦真的進水了。

總之自己試一下就很清楚
你是個好人>////<
回复 支持 反对

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
19
 楼主| 发表于 2009-2-5 20:04:28 | 只看该作者
LS别生气
其实你的答案是正解的了

只是在RM脚本编辑器里头显示显示很丑


昨天本来要认可你的,但是先被前面的人抢先了
SORRY啦!!

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

使用道具 举报

Lv1.梦旅人

龙皇

梦石
0
星屑
50
在线时间
83 小时
注册时间
2007-8-8
帖子
2956
20
 楼主| 发表于 2009-2-6 07:29:13 | 只看该作者
疑~~本帖得到版主鼓励!?而且还改变主题排序??


无论原因如何谢谢BZ redant 的鼓励和加分!!

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

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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