在Ruby中,我正在读取数据,直到达到分隔符或文件末尾。Readline,输入记录分隔符和Ruby
我发现这是可能的重新定义$/
或$INPUT_RECORD_SEPARATOR
我的分隔符。但是,对于Ruby语言中的所有“特性”,似乎hackey会更改全局的值来执行此操作。另外,readline用于使用分隔符,而不包括返回的内容。
是否有任何其他方式来“读取直到”,同时消耗分隔符,不涉及到在字符串中的char char值循环?
在Ruby中,我正在读取数据,直到达到分隔符或文件末尾。Readline,输入记录分隔符和Ruby
我发现这是可能的重新定义$/
或$INPUT_RECORD_SEPARATOR
我的分隔符。但是,对于Ruby语言中的所有“特性”,似乎hackey会更改全局的值来执行此操作。另外,readline用于使用分隔符,而不包括返回的内容。
是否有任何其他方式来“读取直到”,同时消耗分隔符,不涉及到在字符串中的char char值循环?
基本上,从IO
所有readline
式的方法接受分隔字符串作为一个可选的参数:
>> s = StringIO.new('hello from string')
=> #<StringIO:0x52bf34>
>> s.readline ' '
=> "hello "
>> s.readline ' '
=> "from "
>> s.readline ' '
=> "string"
非常好,我怎么能在“f.each do | line |”中使用它或“而行s.gets”? – QueueHammer 2010-03-17 17:14:29
'f.each(''){| s |把s}' – 2010-03-17 17:41:57
为了赢! <! - comment padding - > – QueueHammer 2010-03-17 18:25:07
您可以指定记录分隔符作为参数来获得,比如:
while line = gets("\r")
puts line
end
是什么“readline用于使用分隔符,而不包含在返回的内容中”意思是在这种情况下? – mbigras 2017-02-22 19:47:18