なひです。

> From: Teruki Shigitani [mailto:shigi / jp.fujitsu.com]
> Sent: Thursday, October 04, 2001 3:41 PM

> 最後のカラムの isNull が false になることを確認しました。

ありがとうございました。

> > カラム数についてもバグです。これも同時に修正しました。
> 
> こちらはまだ修正されていないようです。
> 
> ただ、1.0.0 -> 1.0.1 の修正内容から考えると、現在の動作が
> 正しいような気がしてきました。
> 
> 今まで (1.0.0) は、
> 
> rows = Array.new
> idx = 0
> begin
>   row = Array.new
>   cols, idx = CSV.parseLine(csv, idx, row)
>   rows << row
> end until cols == 0
> 
> のように parse していました。これだと最後に cols が 1 を
> 返すと困るのですが、
> 
> rows = Array.new
> idx = 0
> while idx < csv.size
>   row = Array.new
>   cols, idx = CSV.parseLine(csv, idx, row)
>   rows << row
> end
> 
> とすれば良いのですね。

そうですね。colsは1行のカラム数が固定の時(多くの場合がそうだと思いますが)、
それをチェックするために利用することを想定していました。

5カラム + CRCのとき、
  if cols != 6
    raise DataFormatError.new( "カラム数あってないよ" )
  elsif cols[5] != calcCRC32( cols[ 0..4 ] )
    raise DataError.new( "CRCあってないよ" )
  end
みたいな。