VCでコンボボックスにCVS形式のファイルを読み込むには?


cafe  2004-05-02 21:46:42  No: 53577

Visual C++を始めて間もないのですが、コンボボックスにCVS形式のテキストファイルを読み込みアイテムにしたいのですが、うまくいきません。よきアドバイスをお願いします。


YuO  2004-05-02 22:57:05  No: 53578

「うまくいきません」と書かれても,回答しようがないです。

以下の2点はできていますか?
・CVS形式なるテキストファイルの読み込み
・文字列をコンボボックスに設定すること
できているのであれば,それらを繋げるだけです。
#CVS形式って,リポジトリの,vファイルのこと?

ファイルを読み込むこととコンボボックスに設定することは,全く別の話です。


cafe  2004-05-03 01:05:07  No: 53579

説明不足ですいません。ついでにCVSも誤りでCSVでした。CSV(Comma Separated Values)形式はコンマ区切りのテキストファイルのことです。C言語でテキストファイルを構造体に格納はした事があるのですが、VCでファイルを読み込むのにどうすればよいのか(最終的にはコンボボックスに収めたいんですが)がわかりません。


YuO  2004-05-03 03:29:31  No: 53580

> C言語でテキストファイルを構造体に格納はした事があるのですが、
> VCでファイルを読み込むのにどうすればよいのか(最終的にはコンボボックスに収めたいんですが)がわかりません。

何が言いたいんでしょうか。
Visaul C++とはC/C++の処理系の一つですから,
Cで読み込むことができるのであれば,
VC++上でも同じ方法で読み込むことができます。

とりあえず,VC++でテキストファイルを読み込む方法を挙げてみると,
・標準Cライブラリ使う (fopen/fgetc/fgets/fclose etc.)
・標準C++ライブラリを使う (std::ifstream or std::fstream)
・非標準のライブラリ関数を使う (_open/_read/_close etc.)
・MFCのクラスを使う (CStdioFile)
といったところでしょうか。


cafe  2004-05-03 08:13:41  No: 53581

VC++始めたばかりでCでのやり方をどこで使えるのか良くわかっていなかったです。どこでも使っていけばいいのですね。おかげさまで色々試しつつテキストファイルを読み込むことが出来ました。ありがとうございます。しかしここからもうひとつ悩んでいるのが、「コンボボックスへどうやって設定するのか?」です。本を参考にしながら下記のようにやってみましたがうまくいきませんでした。方法が悪いのか、もう少し考えを煮詰めていくべきかわかりません。
for(i = 0; i < hResult; i++)
{
SendMessage((HWND)IDC_COMBO1,
           CB_INSERTSTRING,
           -1,
          (LPARAM) data[i].ereaname);
}
dataは構造体メンバーで、コンボボックスに設定しようとしている文字列です。hResultは設定しようとしている最大件数です。


YuO  2004-05-03 08:27:45  No: 53582

前にも書きましたが,「うまくいかない」では何の説明にもなっていません。
ref) http://www.hyuki.com/writing/techask.html

バグの原因はだいたい予想がつきますが……。
コントロールのIDはコントロールのハンドルではないです。
http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/DialogBoxes/DialogBoxReference/DialogBoxFunctions/GetDlgItem.asp
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxfunctions/senddlgitemmessage.asp

キャストは,説明ができる場合にのみ使うべきです。
今回の場合,(HWND)IDC_COMBO1とキャストしている理由を説明できますか?
#コンパイラからのエラー・警告を消すためだけに使うのは論外。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加