file_149.txt   ファイルコピー&バージョンアップ   ■□■□再帰手続きの利用例■□■ このプログラム自体は、02年秋に作成したのですが、当時他の方から、 「桐8→桐9」へのバージョンアッププログラムの紹介がありましたので、 お蔵入りになってました。 しかし、いまでも「ファイル検索」に対しての質問がありますので、 再帰を利用した作品例として、紹介をさせていただきます 「再帰」の、もとは、ここで紹介しています ○071 再帰呼び出しサンプル T.Samuraさんの作品です 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 私はいたるところで、お世話になってます。どうもありがとうございます 「再帰手続き」・・・ウィキペディアより 手続きや関数といった概念を持つプログラミング言語では、ある手続き中で 再びその手続き自身を呼び出す事を認める場合が多い。 これを再帰呼び出しといい、階乗計算やフィボナッチ数列のように、 本来再帰的な構造を持つアルゴリズムを記述するのに適している。 (もっと詳しくはウエーブ等で検索下さい) つまり、桐でファイル検索処理を行おうとすると、「#ファイル検索」関数を 使用します。 しかし、この関数だけでは、下位フォルダーの中は調べられません そこで、下位フォルダーに移動し再度「#ファイル検索」を行うわけです もしこのとき、再帰を利用しなければ、下位フォルダー検索用のプログラムが 別途必要になってきます。 そこで、「手続き実行 ファイル検索(・・・)」を作成しておき、 検索結果が「フォルダー」の場合、再度「手続き実行 ファイル検索(・・・)」を 呼び出します。 一見無限ループへ入りそうですが、ファイル検索で「未定義」になれば 手続き終了で元にもどります ○手続き実行 ファイル検索(検索フォルダー,検索拡張子)の内容は 最初に「*.*」で、検索し、ファイルの属性を調べてフォルダーの場合 そのフォルダー名で再度この手続きを呼び出します。 そこで、またフォルダーを調べて行きます。この繰り返しです 最下位フォルダーへ入ったとき、もうフォルダーが無いわけですから 拡張子に応じたファイル検索を行います。 ここで、最後まで調べたら、手続き終了で、元にもどります (元とは、この手続きを呼び出したところです) そこで、次のフォルダーを調べます。そこに、またフォルダーが あれば、また下位フォルダーを調べ、フォルダーが無くなったら ファイルを検索します。 このように、同じプログラムを、フォルダー名だけ変更しながら 何度も呼び出し利用ができます。 同梱ファイルは、 「071 再帰呼び出しサンプル」+「kiri8to9関係」です。 注意:「再帰呼び出しサンプル」は、テキストですので「桐V8」で利用    可能ですが、「kiri8to9関係」は「桐V9版」です 「kiri8to9」の、使用方法は画面を見て頂ければわかる程簡単な内容です。 ・拡張子の選択により、「表(*.tbl)・全部(*.*)・指定」から、選択できます ・サブフォルダ以下も対象にできます。 ・V9利用で以前のファイルを対象としたときは、バージョンアップしながら  複写することも可能です(ただし対象は表(tbl)だけす) ・一度設定すると次回からは同じ環境で実行できます。  (終了時に、変数保存を行ってます) ※ファイル複写で、ワイルドカードを使用せず、ファイル名取得にした訳は  表確認ボタンで対象表の確認(削除など)を行う為・将来の機能拡張等  つまり、私が欲しかっただけです ・特に、今回の為だけではなく、サブフォルダー検索をつけておきましたので  ファイルのバックアップ用にでもご利用下さい 未確認部分(バージョンアップ指定時の変換)  読みとり専用等の属性付きファイル・変数が組み込まれているファイル  このような場合の対応は現在未確認です 【多遊】