Project1

标题: 请教关于RM读取文件的问题 [打印本页]

作者: 赛露休斯    时间: 2010-8-18 02:54
标题: 请教关于RM读取文件的问题
请问RM有没有办法直接读取一个rar或zip压缩包内的文件?
具体可以怎么做?
作者: 紫苏    时间: 2010-8-18 05:47
zip 的话,内置的没有,别人写的 gem 有:
http://rubyzip.sourceforge.net/classes/Zip/ZipFile.html

rar 就不知道有没有人写过了,可以参考、研究 Unrar 的源代码:http://www.rarlabs.com/rar_add.htm
这里有 rar 的解压算法,可以用 Ruby 重组一下
网上搜一下相信也能找到很多
作者: 赛露休斯    时间: 2010-8-18 06:34
本帖最后由 赛露休斯 于 2010-8-18 06:51 编辑

回复 紫苏 的帖子

找到了zip.rb等文件,不过里面的代码好像不能直接放到rmxp里,不知道怎么弄?   
作者: 紫苏    时间: 2010-8-18 08:30
本帖最后由 紫苏 于 2010-8-18 08:32 编辑

回复 赛露休斯 的帖子

看核心算法,然后提取到自己的工程里,这是比较高效的做法
如果想直接用现成的,也可以把所有 require 的文件一一都包含在你的工程里,其中包括这个项目的文件和用到了的标准库的文件,但是有些涉及底层的库又是 C 的 so 库,那样就需要用夏娜的那个可以 require so 库的 DLL,之后就可以在 RM 里使用了
注意要先 $: << Dir.getwd,把当前工作路径添加到包含路径列表中
作者: IamI    时间: 2010-8-18 08:43
乱入:要用rb最简单的方法是打开,复制所有代码,粘贴……
作者: 赛露休斯    时间: 2010-8-18 11:36
本帖最后由 赛露休斯 于 2010-8-18 11:37 编辑

回复 紫苏 的帖子

每个rb文件都用ruby运行了一下居然还真有几个能运行,不过require的文件中有很多都找不到,rmxp不能require吗?
不知道能不能直接用C++编写的unzip,然后用夏娜那个dll运行和读取
   
作者: IamI    时间: 2010-8-18 11:44
RM对于Ruby干了许多坏事,比如线程操作,和require方法。
本地C++编写的Unzip当然直接用了= =||要用的话最简单还是粘代码吧




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1