高橋です。

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

う、すみません。確かに間違ってますね。正規表現もruby流にして
なかったし。

その他、ruby1.1b8に環境を替えた(でも、もうb9だし……)のもあって、
細かいところを直したりしました。ので、もう一度投稿します。

# a ? b : c とか、 String::empty? とかが使えるようになったので(^^)



#!/usr/local/bin/ruby # # csv2table.rb # ### String::csv_split class String def csv_split(delimiter = ',') csv = [] data = "" self.chomp.split(/#{delimiter}/o).each{|d| data += (data.empty? ? '' : delimiter) + d if /^"/o =~ data if /[^"]"$/o =~ data or /^""$/o =~ data csv << data.sub(/^"(.*)"$/o,'\1').gsub(/""/o,'"') data = '' end else csv << d data = '' end } data.empty? ? csv : raise("cannot decode CSV\n") end end ### main print "<TABLE>\n" while gets print "<TR><TD>#{$_.csv_split.join('</TD><TD>')}</TD></TR>\n" end print "</TABLE>\n"