在Ruby中,我希望读取数据,直到我到达分隔符或文件末尾。
我发现通过重新定义$/
或$INPUT_RECORD_SEPARATOR
到我的分隔符可以实现这一点。然而,使用Ruby语言中的所有“特性”,改变全局的值来实现这一目标似乎很不错。此外,readline用于使用分隔符,而不包括在返回的内容中。
在使用分隔符时是否还有其他方法可以“读取”,而不涉及在循环中通过char获取值char?
答案 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