• ベストアンサー

csvfileがあるかを判定する関数を教えて下さい。

こんにちは。今、とっても困ってます。助けてください。 VCで作ったプログラムなのですが、exeが開かない現象が起きました。 原因はcsvfileが存在しないためでした。存在しなかったとき、fileが無いことを判定してエラーメッセージか何かを出そうと思ってます。 質問事項 1.csvfileがあるかを見る関数 2.ダイアログを出す以外の方法で、エラーを教える方法 いい方法・案があったら教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.2

ファイルオープンでファイルの有無を判定するのは、常套手段ですね。ファイルをオープンして、エラーをキャッチ、スローされた情報を元にエラー内容を判定します。 TRY {  CFile f(pFileName, CFile::modeRead); } CATCH( CFileException, e) {  if( e->m_cause == CFileException::fileNotFound )   Beep();   printf( "ERROR: File not found\n"); } END_CATCH 詳しくはマニュアルを見てください。

German
質問者

お礼

再び分かりやすいアドバイスありがとうございました。 この数日でいろいろ試してみました。yatokesaさんのソースを参考に完成しました。さっき出来上がって達成感を味わっているところです。本当にありがとうございました。

その他の回答 (3)

  • mkii
  • ベストアンサー率40% (43/105)
回答No.4

1. の答え Cライブラリだったら _stat WIn32 APIだったら PathFileExists だったかな? 2. の答え ログファイルに吐いておく

German
質問者

お礼

お忙しいところありがとうございました。 新しい関数が勉強できてよかったです。 *2のファイルの有り無しの処理について* ONLINEでデータを取得しグラフに表示するというプログラムなのでダイアログをそこで出すとボタンを押すまで機能が止まってしまうのでダイアログはやめました。 親切にありがとうございました。

  • nabezo-
  • ベストアンサー率50% (2/4)
回答No.3

「関数で、fileがあるかを判定し、フラグか何かで返してくれる 関数は無いですかね?あるとありがたいです。」 という件についてコメントします。 単にファイルの存在有無の確認でしたら、Win32API の FindFirstFile() という関数が使えると思います。

German
質問者

お礼

お忙しいところ目を通していただきありがとうございました。先ほど正常に動きを確認できました。 nabezo-さんのアドバイスのお陰で勉強になりました。 本当にありがとうございました。

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.1

"csvfile"というのはご自身が作ったプログラム中で必要なファイルですか? ファイルをopenしようとしたときにエラーとなったらfileが存在しないと見なしてエラー処理を行えばよいのではないでしょうか。 ダイヤログ以外というと、ビープ(警告)音を鳴らす、ステータスバーにエラーを表示する...などですかね。

German
質問者

お礼

コメントありがとうございます。 ・関数で、fileがあるかを判定し、フラグか何かで返してくれる関数は無いですかね?あるとありがたいです。 ・ビープ音とダイアログに出せばエラーっぽくていい感じですね。やってみます。 いい案をありがとうございました。

関連するQ&A