Project1

标题: 如何在XP里用外部TXT文件显示变量数那行的内容 [打印本页]

作者: clfy12    时间: 2015-2-19 15:55
标题: 如何在XP里用外部TXT文件显示变量数那行的内容
本帖最后由 clfy12 于 2015-2-19 15:55 编辑

比如将变量1=12,就能在XP里显示外部TXT文件中第12行的内容。大神们帮帮忙,谢谢啦
作者: wolves    时间: 2015-2-19 19:50
本帖最后由 wolves 于 2015-2-19 20:21 编辑

a=File.open("abc.txt")
a.each_line do |i|
p i if a.lineno==12
end
a.close

a是文件对象,abc.txt是txt文档,i是当前行内容,12是当前行数。
io的lineno方法可以获取each_line迭代的当前次数。

具体解释是
#第一行,打开文件abc.txt,打开文件的原型是
io=File.open(file,mode)
#或
io=open(file,mode)
#mode是打开方式,不想改文件的话缺省就可以了。
#如果想更改文件的话,要把mode改成"w+"或“r+"或"a+",使用"w+"会将已存在的该文件清空,使用a+会在文件结尾追加,\n是换行符,可以用正则表达式换掉。
#写文件用io的write方法:
io.write(str)
#想改变该文件现在读取的位置可以修改文件指针:
io.pos=0
#很像光标。具体内容请参考Ruby的IO类。

第二行是文件的迭代操作,打开一个文件我们可以用each_line的方法逐行获取文件内容(结尾的\n也会尾随)
两个|中间的变量是要被迭代的变量,文件相当于要被逐个迭代给变量的容器。
ruby中的for语句最终也要在ruby中变为迭代的方式each执行。
一不小心说多了-.-|||
知道i是每行的内容的字符串就行了。

最后,文件打开是占内存的,所以需要关闭,用文件的close方法就可以关闭文件了。
作者: clfy12    时间: 2015-2-20 01:06
wolves 发表于 2015-2-19 19:50
a=File.open("abc.txt")
a.each_line do |i|
p i if a.lineno==12

谢谢大神




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