中田@Vectorです。

TAKAHASHI Masayoshi <maki / inac.co.jp> wrote:
> 高橋です。
(snip)
> というわけで、string#csv_split を書きました。こっちはコンテストに
> ノミネートしたいですんですけど、メソッドだけじゃだめですか?

これ、便利に使わせていだだいております。で、ちょっと不具合を見つけたので
修正してみました。

>       if data =~ /^"/
> 	if data =~ /[^"]"$/ or data == '""'
> 	  csv << data.sub(/^"(.*)"$/,'\1').sub(/""/,'"')
> 	  data = ''
> 	end
上の部分ですが、
      if /^"/o =~ data
        if /"$/o =~ data and /[^"]("")+$/o !~ data
          csv << data.sub(/^"(.*)"$/o,'\1').gsub(/""/o,'"')
          data = ''
        end
としないと、
1234,"I like network,""Steppen Wolf"",""M.Brown"" and programming...."
のようなデータは泣き別れになってしまいます。
#実際にこういうデータがあったんだ(^^;

--
Ataru NAKATA, anakata / vector.co.jp, anakata / vdnet.or.jp   http://www.slis.keio.ac.jp/~anakata/
 
下逸退散