CSVファイルの読み込み
papas  2016/04/10(Sun) 17:14
1000行×2列で文字列が入った52KBのCSVを読み込むのに2秒近くかかっているのですが、もっと時間を短縮する方法はありませんか?
以下のようにして測って見ました。

# include <Siv3D.hpp>

void asdf()
{
const CSVReader csv(L"Example/test.csv");

if (!csv)
{
return;
}


}

void Main()
{
Stopwatch stopwatch;
stopwatch.start();
asdf();
stopwatch.pause();
Println(stopwatch.ms());
WaitKey();
}
記事編集
Reputeless  2016/04/10(Sun) 17:48
Release ビルドで実行してください。
編集
papas  2016/04/10(Sun) 17:58
ありがとうございます。Release ビルドでやるとうまくいきました。

もう一点質問なんですが、CSVファイルに"\"が含まれていると以下のエラーが出るのですが"\"を読み取る方法はないですか?

ハンドルされない例外が 0x00007FFE59388A5C で発生しました (○○.exe 内): Microsoft C++ の例外: boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::escaped_list_error> > (メモリの場所 0x000000F1789DE708)。
編集
Reputeless  2016/04/10(Sun) 19:15
CSVReader の処理は外から変更できません。次期アップデートでの対応を検討します。
"\" はどのような形で使われていますか? エラーが発生する CSV の行データを教えてください。

応急処置としては、TextReader と TextWriter を使って、
エラーが発生しないようテキストを事前に変換しておくとよいでしょう。
編集
papas  2016/04/10(Sun) 20:46
例えば(1174,2)に
……ルート確保は完了したよ。\cいつでも行ける。
などの形で入っています。エクセルで表示させると円マークとして表示されます。

何度か実験してみたところ、セルの最後にあった場合は","として表示され、"\"の後ろに文字があるとエラーが起きるみたいです。
編集
Reputeless  2016/04/10(Sun) 20:55
検証し、次期バージョンで対応をします。ご報告ありがとうございました。
編集
Reputeless  2016/08/24(Wed) 17:15
アップデートです。
Siv3D August 2016 で、\ を含む場合でもクラッシュしないよう対応しました。
\ は \\ とエスケープすること推奨します。Siv3D March 2016 以前でも、エスケープにより対応できます。
編集
件名
Re: CSVファイルの読み込み
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -