查看: 5777|回复: 12

[讨论] 怎么操作文件最简单?

[复制链接]
梦石
0
星屑
845
在线时间
579 小时
注册时间
2010-2-15
回帖
1116
发表于 2012-1-26 20:25:08 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 315038639 于 2012-1-27 10:00 编辑

R题,就是怎么创建一个文件(文本文档啊,应用程序拓展文件啊什么的,只要是能读取数据的都OK啦)
怎么读取/写入这个文件の最简单的方法

(&为什么我死活都找不到一个RGSS2/RGSS3脚本的教程捏!F1里的太简单了呀,6R难道没人写一个教程吗?!)

最好RGSS2的

【例题】
使用您答案中的解决方案实现下述效果:
在当前目录下建立一个子目录
在该子目录下新建一个文本文档
写入如下三行数据
楼主万岁
正解万岁
6R万岁万岁万万岁

保存文档
读取该文件第n行数据
显示第n行数据内容(print)

球史上最简单の解决方案

(脑细胞活跃的小盆友们可以看一下我的签名)

点评

http://bbs.66rpg.com/thread-217670-1-1.html  发表于 2012-1-27 11:57

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
回帖
6005

烫烫烫开拓者

发表于 2012-1-26 20:32:46 | 显示全部楼层
File.open("filemane","wb/rb"){|f|f.write/f.read...}

点评

你可是最近抢楼帖的主角呢 怎么被屏蔽了?难道也中无限警告了么?默哀。。。  发表于 2012-1-30 13:53
哎呀,蛋疼什么的最有爱了
回复

使用道具 举报

梦石
0
星屑
845
在线时间
579 小时
注册时间
2010-2-15
回帖
1116
 楼主| 发表于 2012-1-26 20:33:38 | 显示全部楼层
yangff 发表于 2012-1-26 20:32
File.open("filemane","wb/rb"){|f|f.write/f.read...}

能带点说明么……朕是脚本盲……
回复

使用道具 举报

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
回帖
550
发表于 2012-1-27 11:33:38 | 显示全部楼层
本帖最后由 wbsy8241 于 2012-1-27 11:36 编辑

1.PNG


2.PNG


3.PNG


4.PNG



F1 很简单吗? 那这个怎么不知道

点评

您的图挂掉了……  发表于 2012-1-27 14:33
GJ  发表于 2012-1-27 11:58
回复

使用道具 举报

名侦探小柯

梦石
10
星屑
4393
在线时间
3739 小时
注册时间
2006-9-6
回帖
36595

极短27获奖MZ评测员开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

发表于 2012-1-28 00:57:12 | 显示全部楼层
你看看默认脚本是怎么做档案的不就知道了。
制作档案看save,读取档案看load。
不定期回归 ~ 游戏开发之旅
———————————————————————————————
回复

使用道具 举报

(?????)

梦石
0
星屑
872
在线时间
1327 小时
注册时间
2011-7-18
回帖
3036

贵宾

发表于 2012-1-28 05:34:19 | 显示全部楼层
  1. read = []
  2. f = open("input.txt", "r")
  3. f.each_line do |line|
  4.   line.gsub!(/[\n]/) { "" }
  5.   read.push line
  6. end
复制代码
这样就都存到read这个数组里了。
然后
  1. read[0] # => 第 1(0+1) 行
  2. read[1] # => 第 2(1+1) 行
复制代码
依此类推

该文本文档(input.txt)需使用 UTF-8无BOM编码!

点评

才发现读完忘close了……  发表于 2012-2-20 15:32
能用readlines么?= =  发表于 2012-2-3 16:56

评分

参与人数 1星屑 +40 收起 理由
315038639 + 40 刚发现这贴没有设置悬赏……

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
246 小时
注册时间
2011-12-11
回帖
255
发表于 2012-1-28 09:02:24 | 显示全部楼层
本帖最后由 琪露诺 于 2012-1-28 09:03 编辑

@越前リョーマ  默认存档的Marshal是不行的(经过了序列化,打开文件看不到本身的字样)……建议去F1里面搜索下IO和File= =具体方法同猫君~ @各种压力的猫君
回复

使用道具 举报

梦石
0
星屑
100
在线时间
145 小时
注册时间
2011-8-3
回帖
67
发表于 2012-1-28 19:54:21 | 显示全部楼层
  1. Dir.mkdir("./temp") unless File.exist?("./temp")
  2. # 在当前目录下建立一个子目录

  3. f = File.open("./temp/temp.txt", "w")
  4. # 在该子目录下新建一个文本文档

  5. f.write text = \
  6. <<EOS
  7. 楼主万岁
  8. 正解万岁
  9. 6R万岁万岁万万岁
  10. EOS
  11. # 写入如上三行数据

  12. f.close
  13. # 保存文档

  14. text =  File.open("./temp/temp.txt", "r").read.split(/\n/).insert(0, nil)[n]
  15. # 读取该文件第n行数据

  16. print File.open("./temp/temp.txt", "r").read.split(/\n/).insert(0, nil)[n]
  17. #显示第n行数据内容
复制代码

点评

哦,忘了- -  发表于 2012-1-29 00:35
就算是读取也要关闭哦亲  发表于 2012-1-28 22:26
 
回复

使用道具 举报

梦石
0
星屑
50
在线时间
122 小时
注册时间
2009-6-12
回帖
68
发表于 2012-2-9 21:46:51 | 显示全部楼层
F1太简单了,楼主真的懂了吗

点评

没有啊,所以才求教程的啊  发表于 2012-2-11 20:08
回复

使用道具 举报

梦石
0
星屑
50
在线时间
24 小时
注册时间
2012-2-14
回帖
8
发表于 2012-2-14 09:10:34 | 显示全部楼层
本帖最后由 花晴兰 于 2012-2-14 09:34 编辑

纯粹省字数,不一定是最简单,LZ表被我误导了

[pre lang="ruby" line="1"]Dir.mkdir('temp')rescue 1
(open('temp\1.txt','w')<<"楼主万岁
正解万岁
6R万岁万岁万万岁").close
print line=open('temp\1.txt').readlines[(n=2)-1]
[/pre]

点评

codegolf.com 同好?:)  发表于 2012-2-14 10:15
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部