[ruby-list:46546] CSV.openがうまく動きません

From: ichirojiro <ichirojiro@...>
Date: 2009-11-14 12:42:15 UTC
List: ruby-list #46546
ichiroと申します。
ruby1.8.7で動いているプログラムをruby1.9.1で動くようにする作業中にわから
ないことがありました。よろしければお教えください。

単純化したプログラム
# encoding: ASCII-8BIT
p RUBY_VERSION
p RUBY_PLATFORM
p __ENCODING__
require 'csv'
p "-----"
CSV.foreach("C:\\test.csv") do |row|
  p row
end
p "-----"
CSV.open("C:\\test.csv", 'r') do |row|
  p row
end
p "-----"

実行結果(windows XP RDEで実行しています)
"1.9.1"
"i386-mswin32"
#<Encoding:ASCII-8BIT>
"-----"
["111", "222", "\x8ER"]
["333", "444", "\x90\xEC"]
"-----"
<#CSV io_type:File io_path:"C:\\test.csv" encoding:Windows-31J lineno:0
col_sep:"," row_sep:"\r\n" quote_char:"\"">
"-----"
Complete(0)

1.8.7で動いていたプログラムを1.9.1で動かすとCSV.openのところで処理が進ま
なくなりました。試しに50行ぐらいあるcsvデータを10行程度に減らすと処理は
進むようにはなったのですが上記のようなrowデータが1件のみ得られるようにな
りました。いろいろ試してみてCSV.foreachなら上記のようにうまく動いたので
CSV.openをすべてCSV.foreachの変えることで一応解決しています。
よろしくお願いします。

In This Thread

Prev Next