ファイルのフルパスを取得する – 固定ページ 2 – プログラミング – Home

ファイルのフルパスを取得する
 
通知
すべてクリア

ファイルのフルパスを取得する

固定ページ 2 / 2

ako
 ako
(@ako)
ゲスト
結合: 22年前
投稿: 14
Topic starter  

結局、
ドキュメントクラスの Serialize 関数の CArchive オブジェクトを使って、
CFile* fp = ar.GetFile();
CString strPath = fp->GetFilePath();
でファイルを読み込めるということですよね?


返信引用
へたれ
 へたれ
(@へたれ)
ゲスト
結合: 23年前
投稿: 32
 

うーん、この場合は少し違います。
ファイルのパスを取得したいということでしたが、
CArchive クラスにはそれらしきものが見当たらなかったので(あったらごめんなさい)、
とりあえず CFile オブジェクトへのポインタを取得して、
そこからファイルのパスを取得しようということです。


返信引用
ako
 ako
(@ako)
ゲスト
結合: 22年前
投稿: 14
Topic starter  

では別にファイルopenしなければならないのですか?


返信引用
へたれ
 へたれ
(@へたれ)
ゲスト
結合: 23年前
投稿: 32
 

いえ、Serialize 関数の引数に CArchive& ar ってのがありますよね?
この関数に入ってきた時点ですでにOpen されているので、
そのまま ar を使ってファイルアクセスすればいいです。


返信引用
ako
 ako
(@ako)
ゲスト
結合: 22年前
投稿: 14
Topic starter  

すいません・・arのあとはどんな風にかけばいいのですか?
ファイルは特定してないんですけど?


返信引用
へたれ
 へたれ
(@へたれ)
ゲスト
結合: 23年前
投稿: 32
 

えっと、実行してみるのが一番手っ取り早いんですが、
Serialize 関数が呼ばれる前に CFileDialog が自動的に呼ばれますので、
そのときにファイルを指定することになります。


返信引用
ako
 ako
(@ako)
ゲスト
結合: 22年前
投稿: 14
Topic starter  

すいません、ちょっとわかりにくいです・・


返信引用
へたれ
 へたれ
(@へたれ)
ゲスト
結合: 23年前
投稿: 32
 

とりあえず実行してみましょう。
聞くより、自分で見たほうが早いです。

MFC の内部処理で Serialize の前に ファイルダイアログが呼ばれますから。
その情報が CArchive& ar に入ってますので、ファイルの開閉は特に気にしないでいいです。

なので Serialize 関数内ではファイルの読み書きの処理だけを実装すればいいです。


返信引用
ako
 ako
(@ako)
ゲスト
結合: 22年前
投稿: 14
Topic starter  

すいません、実行とかしたんですけど、何を書いていいかわからないです・・
ar を使ってファイルアクセスするのはわかるんですけど
教えてください


返信引用
へたれ
 へたれ
(@へたれ)
ゲスト
結合: 23年前
投稿: 32
 

上に はおさんがコードを示してくれていますよ。
あとは、MSDNとかを使って調べましょう。

#自分で調べるということも重要ですよ。
#MSDNの方が、遥かに詳しく教えてくれます。


返信引用
ako
 ako
(@ako)
ゲスト
結合: 22年前
投稿: 14
Topic starter  

テキスト以外はどう作るのですか


返信引用
はお
 はお
(@はお)
ゲスト
結合: 23年前
投稿: 21
 

テキスト形式以外のファイルを読もうとしているのでしょうか・・。

もし、バイナリ形式ファイルのフォーマットがint型のデータが4つであった場合は

<読み込み時>
int n1,n2,n3,n4;
ar >> n1;
ar >> n2;
ar >> n3;
ar >> n4;

となります。
ちなみにこれは蛇足なのですがCArchiveにはオープンしたファイルの情報はあります。
とーぜんフルパスもはいってます。

VC++でいままでプログラミングしたことありますか?
ファイル入出力に基本的な動きを知っていますか?

知らなければデバッガーでOnOpenDocument()をずっと奥のほうまで追っかけてみてください。
どのタイミングでファイルダイアログが表示されて、どのようにファイルがオープンされている
かわかるはずです。

なにか調べましたか? 何か手元にVC++に関する本は持っていますか?
MSDNはインストールされていますか? 
調べている様子がまったく伺えないような感じなのですが・・・。
ちなみに私はヒントはあたえますがソースコードをそのまま書く主義じゃないので。


返信引用
はお
 はお
(@はお)
ゲスト
結合: 23年前
投稿: 21
 

ファイルはどんなファイルでも読めるようにしたい・・・んなことないよねー。
でも、「ファイルダイアログはつけない」って言ってるし、何がしたいんだろ。わかんねー。


返信引用
けみ
 けみ
(@けみ)
ゲスト
結合: 22年前
投稿: 4
 

表題の
>ファイルのフルパスを取得する
は解決しているんですよね。

はおさんのかかれている通り、一体何をしたいのですか?
もしかして何かの課題ですか?

#それ以前に、ネットで質問するという立場での書式が
#間違っていると思いますが。頑張ってくださいね。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました