• ベストアンサー

あるルールのあるファイルの呼び出しについて

どうも行き詰ってしまったので教えてください。 あるフォルダーに、「整数.csv」というファイルが複数あります。 これを取り出して、拡張子を除く整数の部分だけを取り出し 若い順番から処理を行いたいのですが 現状として かならず、順番に呼び出されているので、正常に動作しているのですが これは、dir関数の仕様(その他の仕様)上 間違い無いと判断してよいのでしょうか? 動いたり動かなかったりしたら問題なもので ちなみに現在までには、このようなコードを書いてます。 'ファイル名を列記する Dim StrTemp(256) As String 'ファイル名用 IntFileCount = 0 'ファイル数を数える i = 0 'ファイルを探す 最初 StrTemp(i) = Dir(StrInputPassName & "\*.csv", vbNormal) Do Until StrTemp(i) = "" i = i + 1 IntFileCount = IntFileCount + 1 StrTemp(i) = Dir Loop '取得したファイル名を数字に変える Dim IntFilename(256) As Integer Dim VerTemp As Variant i = 0 Do Until i = IntFileCount VerTemp = Split(StrTemp(i), ".") '拡張子の前だけ取り出す IntFilename(i) = CInt(VerTemp(0)) '整数型にして代入 i = i + 1 Loop 'この後ファイルを順番に呼び出したい Open 一番若いファイル名 For Input as #1 Open 二番目に若いファイル名 for input as #2 open 一番若く無いファイル名 for input as #? 基本的にこの後行おうと思っている作業は、同一なので Do Loop で繰り返し処理を行えれば理想 複数のファイルを一度に開く必要はなし

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

まぁ、ソートのアルゴリズムはいろいろありますからね。 用途によるでしょう。 とりあえず、VBでこんなの見つけました。 http://www3.kcn.ne.jp/~wataru/vb/algo.htm

参考URL:
http://www3.kcn.ne.jp/~wataru/vb/algo.htm
giant123
質問者

お礼

回答ありがとうございました。 最初の回答からソートしなくてはと 自分で考えていたのですが 以前にそのような事をした事ないかな~と よく考えてみたら、テーブルを作って、SQLで取り出してました。 よってソートのアルゴリズムなど考えた事も無かったので バブルソート参考になりました。 とりあえず、#4さんの回答で組んで 明日は、雨みたいなのでちょっと実装&理解にチャレンジしてみます。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

というか、数字の並びになっているのですから for i=0 to iMax next でぐるぐる回して、 そういうファイルがなければ処理しない でいいのじゃないでしょうか?

giant123
質問者

お礼

回答ありがとうございます。 確かにその通りです。 とりあえず、ぐるぐる回して配列に放り込んでいきます。

すると、全ての回答が全文表示されます。
回答No.3

> う~ん 皆様どのようにソートされてるんでしょうか? 自力でソートするのが判らない場合は、 SortプロパティをTrueにしたリストボックスを用意して そこにファイル名をどんどん追加します。 リストボックスのItemを戦闘から読み出せば きれいにソートされています。

giant123
質問者

お礼

回答ありがとうございます。 そんなやり方もありますね 思いつきませんでした。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>かならず、順番に呼び出されているので、正常に動作しているのですが >これは、dir関数の仕様(その他の仕様)上 >間違い無いと判断してよいのでしょうか? だめです。保障されません。 自分でソートする必要があります。

giant123
質問者

お礼

回答ありがとうございます。 う~ん 皆様どのようにソートされてるんでしょうか? できましたら、ある程度具体的なコードを記載いただければありがたいのですが 宜しくお願いいたします

すると、全ての回答が全文表示されます。

関連するQ&A