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

From: Fujioka <fuj@...>
Date: 2009-11-15 05:47:33 UTC
List: ruby-list #46547
藤岡です。

短く再現するコードと、
test.csvファイルを添付してくださると
検証しやすいのではないでしょうか。
もちろん小さいファイルでお願いしたいですが。

ichirojiro さんは書きました:
> 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