No.1
- 回答日時:
★コモンコントロールの『ファイルを開く』ですか?
・それは『GetOpenFileName』関数に渡す OPENFILENAME 構造体の『lpstrFile』にパスが
選択されると格納されるので自分で管理・処理して下さい。分かりますか?
・それから、『const char *s;』と言われてもサンプルソースを見ないと分かりません。
・以上。補足要求します。
参考URL:http://wisdom.sakura.ne.jp/system/winapi/common/ …
この回答への補足
回答ありがとうございます。
アプリケーションソフトでのファイルを開くなので、コモンコントロールのものだと思います。
ファイルを選択して格納された『lpstrFile』の値を用いたい場合はどうしたらよいのでしょうか?
プログラム作成経験や知識が乏しく、申し訳ありません。
No.2
- 回答日時:
★『ファイルパス』を取得して何を行いたいのですか?
・例えとして、メモ帳ソフトがファイルを開きたいときに『コモンコントロール』の
『ファイルを開く』ダイアログを使ってファイルのパス名を取得します。その後は、
このパス名のファイルを fopen 関数のようなファイルをオープンする処理で使います。
・構造体メンバの『lpstrFile』の文字列は普通に参照すれば良いと思います。
サンプル:
OPENFILENAME ofn = { 0 }; ←構造体の初期化
TCHAR szPath[ 512 ]; ←ここに選択したファイルパスが格納される(フルパス名)
TCHAR szFile[ 512 ]; ←ここに選択したファイル名が格納される(パス以外の名前)
ofn.lStructSize = sizeof( OPENFILENAME );
ofn.hwndOwner = hWnd; ←ウインドウ・ハンドル
ofn.lpstrFilter = TEXT("テキスト文書(*.txt)\0*.txt\0")TEXT("すべてのファイル(*.*)\0*.*\0");
ofn.nFilterIndex = 0;
ofn.lpstrFile = szPath;
ofn.nMaxFile = sizeof( szPath );
ofn.lpstrFileTitle = szFile;
ofn.nMaxFileTitle = sizeof( szFile );
ofn.lpstrInitialDir = TEXT("C:\\"); ←初期フォルダ位置
ofn.lpstrTitle = TEXT("開くよ!"); ←ダイアログのタイトル
ofn.Flags = OFN_FILEMUSTEXIST;
if ( GetOpenFileName(&ofn) ){ ←ここで『ファイルを開く』ダイアログが出る
FILE *fp;
if ( (fp = fopen(szPath,"r")) != NULL ){ ←ここで『ofn.lpstrFile』の選択されたファイルパスを参照して使う
/*
ここでファイル処理など
*/
fclose( fp );
}
}
最後に:
・『コモンコントロール』の『ファイルを開く』ダイアログでファイルパスを取得して sk23 さんは
どんな処理を行おうとしているのですか?
ここがよく分かりません。
・上記のサンプルは、GetOpenFileName 関数で『ファイルを開く』ダイアログを出して、ファイルパス
を取得した後、fopen 関数でファイルをオープンしています。その後、コメントの部分でファイルの
操作などを行ってクローズ処理をする事になります。
・また、ファイルパスだけを MessageBox 関数などで表示させてファイル操作を行わない場合もありますね。
・とにかく『ファイルパス』を取得して『何』を行いたいのですか?
・以上。また、補足要求になってしまいました。
この回答への補足
ファイルパスを用いてなにがしたいかというのは、Oh-Orangeさんの予想通り、ファイルをオープンして処理を行いたいからです。
>>構造体メンバの『lpstrFile』の文字列は普通に参照すれば良いと思います。
とはどのようにしたらよいのでしょうか。
開くのには『ifstream fin();』という形をとろうと思っているのですが。
初歩的な質問で申し訳ありません。
No.3ベストアンサー
- 回答日時:
★普通にファイルのオープン、クローズ処理は理解していますか?
・ここから、説明した方が良いでしょうか?
・また、サンプル・プログラムの『const char *s;』とは何のことですか?
・とりあえず下にサンプルを載せます。
サンプル:
/*
構造体の設定は前回のサンプルを参考にして下さい
*/
if ( GetOpenFileName(&ofn) ){
ifstream fin( ofn.lpstrFile ); ←読み込みオープン
ofstream fout( "output.txt" ); ←書き込みオープン
char buff[ 512 ];
while ( fin.getline(buff,sizeof(buff)) ){ ←行単位で読み込む
fout << buff << endl; ←行単位で書き込む
}
}
最後に:
・上記のサンプルは『開くダイアログ』で選択したファイルを1行単位でカレント・フォルダの
『output.txt』に出力します。→ファイルのコピー処理みたいな感じですね。
・『ifstream fin()』の部分で選択されたファイルパス『ofn.lpstrFile』を参照して使っています。
これでファイルをオープンして、その後ファイル処理を行います。→今回のサンプルでは『output.txt』に
行単位で出力しています。よって、選択ファイルのコピーを『output.txt』ファイル名で作成する
ことになります。
・以上。おわり。
返答が遅れてしまい、申し訳ありません。
現在、大学4年でプログラムより先に論文を提出しなければならなくなりました。それが終わりましたら、Oh-Orangeさんのご指導を参考にプログラムを作成できればと思っております。
暖かい助言の言葉に大変、感謝しております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- その他(プログラミング・Web制作) マウスを使用してpowershellのプログラムを起動して、引数リストを渡したい 1 2022/11/07 21:39
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Outlook(アウトルック) 【 Windows 10 】アドレス帳に正しくインポートを完了させたい。 3 2023/04/23 13:41
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Windows 10 コマンドプロンプトの使い方 1 2022/10/13 14:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ffftpでファイル取得が0バイト...
-
エクセルのVBAで開いている...
-
AccessからOLEオブジェクト型の...
-
FileDialog オブジェクトでファ...
-
vbaサブフォルダーをワイルドカ...
-
ACTIVEXの拡張子
-
【ACCESS VBA】アクセスからデ...
-
FTP対応のアプリケーション
-
VBA ファイル名取得
-
excel マクロ PDF化の際のエラ...
-
「エクセルファイルが開いてい...
-
サブフォルダ含むフォルダ内の...
-
VBA:ファイルプロパティの一部...
-
動かなくなってしまった古いVBA...
-
VBからExcelファイルを開くとき...
-
visual studioでフォームデザイ...
-
EXCEL VBA tif画像のプロパティ...
-
【VBAマクロ初心者】Excel VBA...
-
適当な英文の書かれたファイル(...
-
複数のワークブックのVBAを変更...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaサブフォルダーをワイルドカ...
-
FileDialog オブジェクトでファ...
-
サブフォルダ含むフォルダ内の...
-
ffftpでファイル取得が0バイト...
-
動かなくなってしまった古いVBA...
-
excel マクロ PDF化の際のエラ...
-
VBからExcelファイルを開くとき...
-
「エクセルファイルが開いてい...
-
VBAでフォルダ内のhtmlファイル...
-
複数のワークブックのVBAを変更...
-
ExcelVBA 文字コード変換
-
Wordのプロパティ・総ページ数...
-
「AccessViolationException」...
-
AccessからOLEオブジェクト型の...
-
エクセルのVBAで開いている...
-
VBAで色々な種類のファイルを開く
-
VBAでCSVファイルを読み込もう...
-
VB.net XMLの作成方法 Iniの代替
-
【ACCESS VBA】アクセスからデ...
-
VBA、ファイル名検索から開く、...
おすすめ情報