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

Project1

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

[原创发布] 关于rmxp中的文件读写操作的总结...

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2005-12-9
帖子
14
跳转到指定楼层
1
发表于 2006-1-15 01:39:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
抛砖引玉了,欢迎补充!:)

1。load_data
load_data可以在加密的情况下读取加密包中的数据。譬如:
load_data("Data/Actors.rxdata")
如果加密包中没有此文件则到实际的目录下去找这个文件。
帮助中告诉还告诉我们,load_data(filename) 的功能根
File.open(filename, "rb") { |f|
  obj = Marshal.load(f)
}
基本上相同,差别就在于加密的时候

2。save_data
save_data 是与 load_data 相对应的函数。跟
,File.open(filename, "wb") { |f|
  Marshal.dump(obj, f)
} 相同。
但是,在加密的时候,文件不会保存到加密包中,而是
保存在实际的目录中。

3。Marshal
Marshal.load,Marshal.dump 前面提到过,但无法读取加密包中的数据。
不在加密包中的数据,可以用Marshal来读取或保存

4。File
File.read, File.write 可以操作加密包之外的文件

5。load
load 的功能是读取一段rb的脚本并且运行之。注意,load(filename)中
filename 应该是一个绝对的路径,譬如 load( "%s/test.rb"%Dir.getwd)。
所以,load 无法调用位于加密包之中的脚本


6。eval
eval 来直接运行一段脚本,譬如说
  scr = 'load( "%s/test.rb"%Dir.getwd)'
  eval( scr )

结论:rmxp中提供的这些方法,在加密与非加密模式下都能够正常运行,
差别就是load_data可以从加密包中读取数据,而其的方法只能操作加密
包之外的数据。

BTW:做上述测试的时候,发现一个问题,就是rmxp在加密的情况下,读取
数据可能不稳定,不知道什么原因,可能是我的问题吧。


bbschat:

这个东西再加上点特殊手段就涉及到加密破解的禁忌话题了,
还是设置 VIP2点 以上吧。


              [本贴由 柳柳 于 2006-1-20 22:47:12 最后编辑]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2005-12-9
帖子
14
2
 楼主| 发表于 2006-1-15 01:39:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
抛砖引玉了,欢迎补充!:)

1。load_data
load_data可以在加密的情况下读取加密包中的数据。譬如:
load_data("Data/Actors.rxdata")
如果加密包中没有此文件则到实际的目录下去找这个文件。
帮助中告诉还告诉我们,load_data(filename) 的功能根
File.open(filename, "rb") { |f|
  obj = Marshal.load(f)
}
基本上相同,差别就在于加密的时候

2。save_data
save_data 是与 load_data 相对应的函数。跟
,File.open(filename, "wb") { |f|
  Marshal.dump(obj, f)
} 相同。
但是,在加密的时候,文件不会保存到加密包中,而是
保存在实际的目录中。

3。Marshal
Marshal.load,Marshal.dump 前面提到过,但无法读取加密包中的数据。
不在加密包中的数据,可以用Marshal来读取或保存

4。File
File.read, File.write 可以操作加密包之外的文件

5。load
load 的功能是读取一段rb的脚本并且运行之。注意,load(filename)中
filename 应该是一个绝对的路径,譬如 load( "%s/test.rb"%Dir.getwd)。
所以,load 无法调用位于加密包之中的脚本


6。eval
eval 来直接运行一段脚本,譬如说
  scr = 'load( "%s/test.rb"%Dir.getwd)'
  eval( scr )

结论:rmxp中提供的这些方法,在加密与非加密模式下都能够正常运行,
差别就是load_data可以从加密包中读取数据,而其的方法只能操作加密
包之外的数据。

BTW:做上述测试的时候,发现一个问题,就是rmxp在加密的情况下,读取
数据可能不稳定,不知道什么原因,可能是我的问题吧。


bbschat:

这个东西再加上点特殊手段就涉及到加密破解的禁忌话题了,
还是设置 VIP2点 以上吧。


              [本贴由 柳柳 于 2006-1-20 22:47:12 最后编辑]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2005-10-22
帖子
81
3
发表于 2006-1-15 02:08:30 | 只看该作者
加密文件读取的时候,载入较大的文件可能会出问题。大概是因为解密运算的原因吧:)

呵呵。顶之~
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

4
发表于 2006-1-15 03:20:50 | 只看该作者
加密之后load_data对绝对路径失效,只能使用打包时候里面的东西。
换言之,无法制作补丁
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2005-10-22
帖子
81
5
发表于 2006-1-15 03:26:39 | 只看该作者
补丁的话,除了解包重来,没有办法。
读取绝对路径下面的文件,还是自己写File.open和Marshal.load为好。

不加密的游戏,其实可以灵活的利用load功能来实现模块的加载以及删除。解释执行的语言,这一点真是不错啊:)
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

6
发表于 2006-1-15 03:51:54 | 只看该作者
以下引用柳柳于2006-1-14 19:20:50的发言:

加密之后load_data对绝对路径失效,只能使用打包时候里面的东西。
换言之,无法制作补丁


我错了……补丁制作成功……汗……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
8940
在线时间
4371 小时
注册时间
2005-10-22
帖子
6751

开拓者贵宾

7
发表于 2006-1-15 03:52:01 | 只看该作者
潘朵拉的盒子重现了....-_-0
回复 支持 反对

使用道具 举报

Lv1.梦旅人

贵宾

梦石
0
星屑
50
在线时间
261 小时
注册时间
2005-10-21
帖子
489

贵宾

8
发表于 2006-1-15 05:00:35 | 只看该作者
晕~~~这个还是不宜这么大张旗鼓的讨论吧
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2005-10-22
帖子
81
9
发表于 2006-1-15 07:23:04 | 只看该作者
这不是潘多拉的盒子,是可以增加脚本灵活性的东西。

另外,66这样制作的补丁……不在这帖后面说了,不能跑题-.-,我还是去那个VIP版的帖子后面说吧……
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
8940
在线时间
4371 小时
注册时间
2005-10-22
帖子
6751

开拓者贵宾

10
发表于 2006-1-15 17:23:06 | 只看该作者
感觉到很诡异的一点...似乎RMXP有些功能和F1说明书不一样的样子
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-26 09:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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