Readline,输入记录分隔符和Ruby

时间:2010-03-17 15:45:17

标签: ruby readline

在Ruby中,我希望读取数据,直到我到达分隔符或文件末尾。

我发现通过重新定义$/$INPUT_RECORD_SEPARATOR到我的分隔符可以实现这一点。然而,使用Ruby语言中的所有“特性”,改变全局的值来实现这一目标似乎很不错。此外,readline用于使用分隔符,而不包括在返回的内容中。

在使用分隔符时是否还有其他方法可以“读取”,而不涉及在循环中通过char获取值char?

2 个答案:

答案 0 :(得分:4)

基本上,readline中的所有IO样式方法都接受分隔符字符串作为可选参数:

>> s = StringIO.new('hello from string')
=> #<StringIO:0x52bf34>
>> s.readline ' '
=> "hello "
>> s.readline ' '
=> "from "
>> s.readline ' '
=> "string"

答案 1 :(得分:1)

您可以将记录分隔符指定为get的参数,例如:

while line = gets("\r")
  puts line
end