- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSVファイルのデータの行数を取得したい)
CSVファイルの行数を取得する方法
このQ&Aのポイント
- CSVファイルのデータの行数を取得する方法について教えてください。
- Perlを使用してCSVファイルの行数を取得する方法について試していますが、正しく行数を取得できません。
- $#arrayという方法を使用していますが、なぜか-1が返されてしまいます。別の方法があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>data.csvにデータがあるのに というのは、「そのファイルがあるはずだ」なのか「@arrayに読み込んでいるのに」なのかで違うんではないでしょうか・・・ 下を実行してみてください。 「オープンエラー」なら、無いか場所が違うか名前が違うか、"./data.csv"で、カレントフォルダも指定しなくてはいけないのか・・・ エラーにならずに-1なら・・・ 結果を教えてください。 ちなみに、scalar(@array)で要素数はわかります、多分。 #!/usr/local/bin/perl use strict; use CGI::Carp qw(fatalsToBrowser); use CGI; #表示用設定 my $query = new CGI; print $query->header(-charset=>'Shift_JIS'); if(open(FH,"data.csv")){ my @array = <FH>; my $count = $#array; close(FH); print "count-1=$count<br>\n"; print "count=".scalar(@array)."<br>\n"; print "array0=$array[0]<br>\n"; }else{ print"オープンエラー"; exit; }
お礼
大変ご丁寧に回答をいただきまして、ありがとうございました。 教えていただいたスクリプトを実行してみたところ、配列の要素数や1行目のデータなども表示されました。したがって、@arrayにcsvファイルのデータが読み込まれていることが確認できました。 また、教えていただいたスクリプトを参考にコードを書き直してみたところ、無事動作しました。 いろいろ試してできなかったことだったのですが、無事解決をしました。本当に助かりました。どうもありがとうございました。