[#40753] RWiki is not WikiName - RWiki 2.1.0pre1 — Masatoshi SEKI <m_seki@...>
6 messages
2005/04/03
[#40785] nil以外のときメソッドを呼ぶ — Motomichi Matsuzaki <mzaki@...>
13 messages
2005/04/27
[#40794] Re: nil以外のときメソッドを呼ぶ
— Motomichi Matsuzaki <mzaki@...>
2005/04/27
[ruby-list:40791] Re: nil以外のときメソッドを呼ぶ
From:
小西 弘将 <konishi@...>
Date:
2005-04-27 05:46:08 UTC
List:
ruby-list #40791
小西 弘将です。
>
>松崎と申します。
>
>ruby 1.8.2 を使っております。
>
>タブ区切りテキストで与えられるデータを解釈しようとしているのですが、
>フィールドの数が不定の場合、
>
>例:
> array = line.chomp.split("\t")
> float = array.shift.to_f
> int = array.shift.to_i
> str = array.shift.sub(/^XX/, '')
> :
> :
floatとかにnilを入れる方法は、ほかの方が答えてられるので・・
単に、足りないレコードを満足させるのであれば
N = 3 #レコード数
array = line.chomp.split("\t")
array.fill("",(array.size)..(N-1))
float = array.shift.to_f
int = array.shift.to_i
str = array.shift.sub(/^XX/, '')
:
:
ブランクレコードをnilとするのであれば
N = 3 #レコード数
def my_split( text, splitter, size )
array = text.split(splitter)
array.fill("",(array.size)..(size-1)).map!{ |i| i=="" ? nil : i }
end
array = my_split( line.chomp, "\t", N )
float = array.shift.to_f
int = array.shift.to_i
str = array.shift.sub(/^XX/, '')
:
:
といった感じでしょうか。
split(sep,limit)で分割最大個数を決めることはできるのですが、いつも同じ個
数に分割できないんですよね。
split(sep,size,fill)で分割数固定とか導入できないのかな
あと、Arrayのリサイズがあるといいなと思ったりします。