RMXP/VX/VA利用外部文件储存和读取数据的实现原理

借助一个外部文件,为玩家独立保存跨存档数据,以实现多周目继承或记住游戏基础设置一类的功能。

创建一个文件,

file = "test.txt"
f = File.open(file, "a")
f.write("123\n\n")
f.close

传递给File.open的参数有两个,其中第一个参数file决定了这个新文件的路径和文件名,也可以写成例如file = "System/test.txt"但前提是System文件夹已经存在 ,而第二个参数"a"处可以改成“w”,决定写入方式,区别在于,假如该文件名的文件已经存在,是用接下来的内容覆盖写入该文件,还是把接下来的内容追加到该文件的尾部。

传递给write的参数就是要写入文件的内容了,字符串中可以使用\n、\t等转义符号。

读取一个文件,

text = File.open("System/test.txt","r").read

同样第一个参数是路径和文件名,第二个参数是决定读取的方式。
如果您希望读取出来的数据是一个纯数字,那么可以紧随其后执行text = text.to_i

更为复杂的需求需要保存多个数据、难以被直接用记事本修改的文件,则需要用到字符串的split方法和Marshal读写,下面暂时只提供基本写法,如有需要会再补充细节说明。
部分电脑在VA上进行文件的读写操作时,可能需要传入第三个参数,即在文件名、读写方式之后,再写入一个"0700",

f = File.open("test.txt", "a", 0700)
f.write("123\n\n")
f.close

file = File.open(text.txt ,"r", 0700).read

text = text.split(/,/)
for i in text
print i
end

file = File.open(DATA_FILENAME ,"wb", 0700) do |f|
Marshal.dump(data, f)
end

File.open(DATA_FILENAME, "rb", 0700) do |f|
data = Marshal.load(f)
end

发布者

ML4455739

宣传站维护团队

发表评论

电子邮件地址不会被公开。