- PR -

ファイルの複数指定について

投稿者投稿内容
shin2
ベテラン
会議室デビュー日: 2004/03/10
投稿数: 58
投稿日時: 2004-10-08 11:17
みなさま、こんにちは
アプリケーションでファイルを開いたりすることはよくあることだと思います。

そのときはopenFileDialogを使ってプログラミングすると思います。ここまではいいのですが、私のアプリケーションは大量のデータ(ファイル)を読み込んで処理を行うことをやっています。そこでファイルは動的に変わるため(つまり移動・削除などして常に変化している)バッチ処理が不向きとなっています。そこでファイルダイアログを使ってプログラミングしているのですが、どうもこのファイルダイヤログ(openFileDialog)は複数指定の上限値があるようです。

私のプログラムは最大数百のファイルを指定する場合もあります。

以前VB6でプログラムしていたときも同様の問題に直面しました。そのときはopenFileDialogを使うのをあきらめて、独自のフォームをつくったことがあります。そこで質問は・・・

@ファイルダイアログで数百のファイルを指定する方法はあるか?
A無い場合の代わりの措置はどれが適切か??

の2点です。お分かりになる方がいればお知恵を拝借したいので、よろしくお願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-10-08 14:20
諸農です。

引用:

A無い場合の代わりの措置はどれが適切か??



ファイルが動的に変わる場合でも、そのふぁいるが存在する(検索対象の)ディレクトリが特定できて、必要なファイルを特定できる条件があるのであれば、Directory.GetFiles()を使って、バッチ形式でも処理は実現できそうですけど。

そのアプリケーションの要件としてかならずUIが必要であるというなら、ファイル選択できるダイアログを自作した方がいいかもしれませんね。
その場合でも、Directory.GetFiles() が活用できると思います。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2004-10-08 15:46
エクスプローラでフォルダを開いて、ファイルを複数選択して
それのドロップを 読み取る、のは? 同じかも。

ファイル一覧をテキストに取り
notepad、Excel,Access などに渡して、選択してもらい
それを読み取るのが普通かも

ファイル日付などで選択するには Excel (OpenOffice?) は便利
簡単な選択条件なら計算式でできるし、ソートなど組み込みにあるし
カスタマイズならボタンを乗っけて、VBA で。
同様な操作は 未来の WinFS なども実現目標になっているのでしょう

また、Excel的な選択は
ローカルXML-DB と XPath・XSLT でもできますが、一般に広まるかは?

[ メッセージ編集済み 編集者: MMX 編集日時 2004-10-12 11:22 ]
shin2
ベテラン
会議室デビュー日: 2004/03/10
投稿数: 58
投稿日時: 2004-10-08 22:31
Jubeiさん、MMXさん ありがとうございます。

やっぱり自作でやってみようかと思います。前回はWindowsフォームで作りました。でもせっかく作り直すのに前回と同じではつまらない。そこでopenFileDialogと同じように部品プログラムとして作成し、フォームに貼り付けて使用するようにしたいのですが、これって新規プロジェクトの「Windowsコントロールライブラリ」なのでしょうか?

どの本を見てもこの「Windowsコントロールライブラリ」の作成方法が書かれていません。いつもこの手の聞き方をして自分の調べ方が悪いのを痛感するのですが、今回も教えていただけないでしょうか??
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-10-09 05:53
諸農です。

引用:

そこでopenFileDialogと同じように部品プログラムとして作成し、フォームに貼り付けて使用するようにしたいのですが、これって新規プロジェクトの「Windowsコントロールライブラリ」なのでしょうか?



WindowsコントロールライブラリでOKだと思います。

引用:

どの本を見てもこの「Windowsコントロールライブラリ」の作成方法が書かれていません。



VS2002を対象に書かれていて少し古いのですが、ステップバイステップで学ぶオブジェクト指向プログラミング実践講座という本の「コンポーネント化の方法」で解説されています。
この本は結構参考になると思いますよ。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-10-09 07:08
 プログラムの信頼性を向上させる方法をご存じですか?「自分で作らない」ことです。

 私には、数百のファイルをユーザに選択させるというUIが、無茶なように思います。読み込む必要のあるファイルを、特定のディレクトリに集めるなど、できないのでしょうか?そうやって、「そこにあるすべてのファイルを読み込む」ようにできれば、無人バッチもできるし、あるいはユーザにはディレクトリを選ばせると言うことができます。
_________________
shin2
ベテラン
会議室デビュー日: 2004/03/10
投稿数: 58
投稿日時: 2004-10-09 11:24
Jubeiさん、Jittaさん ありがとうございます。

このソフトウェアは様々な事象に対するシミュレーション計算を行うもので、あつかうデータも総数は数百どころではありません。さまざまなデータを任意にあるいは一括で処理する必要があるのです。

データそのものは統一化されたフォーマットで扱いは難しくないのですが、ケースごとにフォルダを作成し、その都度データをコピーして管理するのは(データの量が多いため)難しいと判断しました。

また計算のケースもたくさんあり、ファイルダイヤログでシフトキーやコントロールキーで連続もしくは任意にファイル選択をさせて計算したほうがソフトウェアとしても組みやすいですし、データの管理においても有効だと考えています。

プログラムの信頼性をあげるための取り組みとして、私は市販のコンポーネントプログラムは「なるべく」使用しないようにしています。ただし時間とのトレードオフになりますが・・・

私のケースはたくさんのデータをいろんなケースで計算を行うものです。そういった意味では特殊なソフトだと思います。だからこのような相談をすることになってしまいました。あと「自分で作ること」も場合によっては保守性において有効だと思います。
でも基本的にはJittaさんの意見と同じです。
nanbu
大ベテラン
会議室デビュー日: 2004/08/19
投稿数: 178
投稿日時: 2004-10-09 12:02
南部です。

shin2さんの情報から、
意思決定支援プログラムみたいな感じかなぁと
想像してみましたが、「エンドユーザ」の
立場から、

「ファイルダイアログで、数百のファイルの中から必要なものを選ぶ」
⇒ いやです。

これだけあると、やっぱり検索出来たほうがいいっすね。
かつ、検索条件を保存できるとうれしいです。

自分はエンドユーザ側なんで、、、、コスト無視です。

スキルアップ/キャリアアップ(JOB@IT)