質問: CSVファイルを選択し、実行ボタンを押下したらCSVファイルのレコード件数チェック処理が行われるようにしたいですがネットで調べても実装方法が分かっていない状態です。10件以上あればエラーのダイアログを表示するようにしたいです。どう修正したらよろしいでしょうか。 ●CSVファイルの中身の例 no,title,year 1,てすと,2011 2,テスト,2012 3,TEST,2015 ``` あいうえお商店 ```
回答: HTML5からFILE APIを使用してローカルファイルにアクセスできるようになりました。 この場合FileReaderを使用してファイルの中身をスクリプトにロードします。 まず、FileReaderオブジェクトを作成し `var reader = new FileReader();` 読込が完了(成功した場合`onload`イベントが起きる)した場合のイベントを設定します。 `reader.onload = function(e) { ... }` readAsTextでファイルの読み込みをします。 `reader.readAsText(file.files[0]);` 読込が完了すると`reader.result`に指定文字コード(エンコードが指定されなかった場合UTF-8)文字列で内容が保存されます。 ファイルの内容が何行あるかは `reader.result.split("\n").length`のようなやり方で調べることができます。 最後の行には改行がない、最初の行はフィールド名としてカウントしないなど指定行数については調整ください。 (または別の方法を実装下さい) 全体的な例は以下の様になります。 ``` $("#checkfile").click(function () { var file = $("#file1").get(0);//または単に file1 を使用 if(file.files.length == 0){ alert("現在ファイルは選択されていません"); } else { var reader = new FileReader(); reader.onload = function(e){ if(reader.result.split("\n").length >= 10) alert("10件以上のレコードがあります"); }; reader.readAsText(file.files[0]); } }); ```