4

Rubyでは、区切り文字またはファイルの終わりに到達するまでデータを読み取ろうとしています。

$/これは、または$INPUT_RECORD_SEPARATORを区切り文字に再定義することで可能であることがわかりました。ただし、Ruby言語のすべての「機能」を使用して、これを行うためにグローバルの値を変更するのは難しいようです。また、readlineは区切り文字を消費するために使用されましたが、返されるものには含まれていませんでした。

ループ内で文字ごとに値を取得する必要のない区切り文字を使用しながら「まで読み取る」方法は他にありますか?

4

2 に答える 2

5

基本的に、からのすべてのreadlineスタイルのメソッドはIO、オプションのパラメーターとしてセパレーター文字列を受け入れます。

>> s = StringIO.new('hello from string')
=> #<StringIO:0x52bf34>
>> s.readline ' '
=> "hello "
>> s.readline ' '
=> "from "
>> s.readline ' '
=> "string"
于 2010-03-17T16:17:46.030 に答える
1

getの引数としてレコード区切り文字を指定できます。例:

while line = gets("\r")
  puts line
end
于 2010-11-24T21:16:40.053 に答える