将输入存储到变量Ruby中

时间:2016-11-27 18:17:33

标签: ruby file

这可能是一个愚蠢的问题,但我从昨天起就无法做到这一点。 我有一个输入文件,其中包含我需要使用的一些数据,它应该如下所示:

pom.xml Maven > Reimport

我需要能够按照以下格式将其分成说明:x <= 42 & x >= 20 | x < 50 y > 10 & y < 20 z < 100 & z > 101 y > 5 w <= 0 a >= 0 | a <= 10 ,并且您可以通过'&amp;','|'分隔每条指令。或一个新行(在我的情况下意味着与'|'相同)。

请注意,<variable> <operator> <number>变量显示在2个不同的行中,但它引用相同的x,不应覆盖另一个。

我的猜测是迭代文本并将其拆分为4个字符串,这就是它。问题在于我不知道如何处理Ruby中的新行。

我试过了:

x

然后会返回并返回一行数,每行都分成单词,但我仍然需要获取换行符。

TL; DR:鉴于之前的输入,我需要能够做到:

lines = []


begin
  file = File.open(ARGV.at(0))

  while (t = file.gets.chomp)
    lines << line.split
  end


  file.close
rescue => e
  puts e
end

例如第一行

1 个答案:

答案 0 :(得分:0)

您可以按行阅读文件的内容

File.readlines(ARGV.at(0)).each do |line|

或获取所有内容并将其拆分

lines = File.read(ARGV.at(0)).split("\n")

上面适用于小文件,因为文件的内容已加载到内存中。 对于大文件,需要使用这种方法

File.foreach(ARGV.at(0)).with_index do |line, line_num|

end