ファイルの複数選択

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: ファイルの複数選択

by 水波形 » 2011年4月11日(月) 22:24

>>イグトランス様
回答ありがとうございます。

コードを拝見させていただきましたが、
う~ん・・・
分かったような分からないような・・・・

とりあえずコピペさせていただきました。
少しずつ理解していきたいと思います。
ありがとうございました。


☆宣伝☆
組み込ませていただいたものを公開していますので、どうぞ。
http://www.activebasic.com/forum/viewtopic.php?t=2667

by イグトランス » 2011年4月10日(日) 23:57

こんなかんじでどうでしょうか。
  • MakeStrがEx"\0"を含んだ文字列を扱えないため、FilePathをString型でZeroString使用へ変更。
  • InStr関数呼出の中のEx"\0"もZeroString(1)へ変更(MakeStrと同じようにこれもこうしないとうまくいかないのです)。
  • InStrが返すのは「何文字目であったか」なので、Mid$の「何文字?」の引数とあっていないあたりを修正。
  • 先頭を0文字目とするものと、先頭を1とするものが混在しているので、その調整をより正確にした。

by 水波形 » 2011年4月10日(日) 21:45

たかせん様、HSABP様ご回答ありがとうございます。

HSABP様の助言から、以下のようなコードを書きました。
しかし、フォルダパスは取得出来るのですがファイル名が取得できませんでした。
※wsprintf関数はいまいち使い方が分かりませんので・・・・・・
%s%sって何なのでしょうか?^^;

すいませんが、修正の方お願いします。

by HSABP » 2011年4月10日(日) 20:21

複数選択のlpstrFileの中身は

"フォルダ名\01つ目のファイル名\02つめのファイル名\03つめ...\0\0"
と\0で区切って格納されてる。

\0を区切り文字として分解し一つ一つに
wsprintf(fullpath, "%s%s", フォルダ名, ファイル名)
とでもやる

Re: ファイルの複数選択

by たかせ » 2011年4月10日(日) 19:12

> ファイルの選択ダイアログにて、ファイルの複数選択で躓いてしまいました。
確認ですがそれはGetOpenFileNameですか?
できればその部分のコードを記載願います。

ちなみにもしGetOpenFileNameであれば
FlagsにOFN_ALLOWMULTISELECTを指定されましたか?

ファイルの複数選択

by 水波形 » 2011年4月09日(土) 21:53

お世話になっています。
ファイルの選択ダイアログにて、ファイルの複数選択で躓いてしまいました。

ファイルが一つの場合、lpstrFileにファイルパスが返ってきますが、
複数を選択させるとlpstrFileにそのファイルがあるフォルダーが返ってくるようです。

これはどのようにしてフルパスを取得していくのでしょうか。
すいませんがお知恵をお貸しください。
よろしくお願いします。

ページトップ