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

Project1

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

[已经解决] 请问一下怎么把string类型的marshal直接读取

[复制链接]

Lv1.梦旅人

梦石
0
星屑
238
在线时间
23 小时
注册时间
2018-12-11
帖子
14
跳转到指定楼层
1
发表于 2019-1-30 00:36:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 ISfishes 于 2019-1-30 12:47 编辑

变量a为marshal形式的文件的【全部字节】
比如a=“\004\010o:\rRPG::Map………………”  (marshal形式)
我知道可以用File.write a然后Marshal.load
但是这样要先生成文件,再读取,甚至还要删除生成的文件。速度太慢了
有没有办法直接处理a【不生成文件】得到和上面一样的效果呢?

Lv4.逐梦者

梦石
0
星屑
19279
在线时间
3074 小时
注册时间
2013-1-11
帖子
1288
2
发表于 2019-1-30 09:01:14 | 只看该作者
  1. save_data('abc', "1.txt")
  2. p load_data('1.txt')
复制代码

点评

好像明白你的意思了,以前把对象inspect后,想还原为对象属性是一个意思,后来没找到方法就放弃了。。  发表于 2019-1-30 13:42
直接的话操作File类read读取  发表于 2019-1-30 13:26
这样是间接获取结果,有没有直接的方法  发表于 2019-1-30 12:30
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
238
在线时间
23 小时
注册时间
2018-12-11
帖子
14
3
 楼主| 发表于 2019-1-30 12:46:05 | 只看该作者
本帖最后由 ISfishes 于 2019-1-30 12:47 编辑

可能1f没说清楚,修改了一下
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
238
在线时间
23 小时
注册时间
2018-12-11
帖子
14
4
 楼主| 发表于 2019-2-3 20:11:53 | 只看该作者
有没有办法嘛……
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

5
发表于 2019-2-3 20:15:26 | 只看该作者
本帖最后由 guoxiaomi 于 2019-2-3 20:20 编辑

在 XP 里执行 Marshal.methods - Object.methods,显示:
  1. ["load","dump","restore"]
复制代码

第三个函数干啥用的,你已经知道了吧……

点评

这猫叔,不好好看文档  发表于 2019-2-3 22:44
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9497
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

6
发表于 2019-2-3 23:02:31 | 只看该作者
本帖最后由 RyanBern 于 2019-2-3 23:05 编辑

按文档中所说,Marshal.dump 本身就是支持直接写入到字符串的,因此 Marshal.load 自然也支持直接从字符串读取。所以你什么额外操作都不用做,只需要对这个字符串进行 Marshal.load 即可。
RUBY 代码复制
  1. s = Marshal.dump($game_temp)
  2. s1 = Marshal.load(s)
  3. p s1 # => 恰好是 $game_temp 的内容

在这里补充 Marshal.dump 的用法
RUBY 代码复制
  1. Marshal.dump(obj [, port][, limit])

表示将对象 obj 写入端口 port 中,递归写入的最大层数是 limit。这里的 port 可以是个 IO 实例,也可留空表示输出到字符串。当省略这个参数时,Marshal.dump 的返回值就是一个字符串。

点评

明明刚刚测试了一下发现不行的……结果又可以了= =  发表于 2019-2-3 23:20

评分

参与人数 2+2 收起 理由
张咚咚 + 1 认可答案
fux2 + 1 强瞎

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
238
在线时间
23 小时
注册时间
2018-12-11
帖子
14
7
 楼主| 发表于 2019-2-8 09:39:17 | 只看该作者
666666,感谢2位版主大大
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-20 16:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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