| > 引っ掛かっているのは次のところだと思います。 > ---------------------------------------------- > proc FILEs取得() > &i=1,&FILEs="" > 繰り返し > &file=#ファイル検索(&フォルダ+"*."+&拡張子,&i) > cond(&file="") 繰り返し中止 > &FILEs=&FILEs+","+&file,&i=&i+1 > 繰り返し終了 > if(&FILEs="") > 確認 &拡張子+"ファイルは有りませんでした" > else > &FILEs=#sstr(&FILEs,2) /*先頭のカンマを除去*/ > end > end > ---------------------------------------------- > ここでは、ひとつの変数&FILEsに、全てのファイル名を(フォルダ名付きで)カンマ > 区切りでどんどん貯めて行っています。後で、このファイル名群から「#対応文字列」 > 関数で個々のファイル名を取り出すためです。 > いずれにせよ、これだと、文字列変数の値が4000文字(桐の仕様)を超えてしまう可 > 能性がある訳で、この度のKHさんの使い方がそれに該当してしまったと云うことです。 > > 対策(の考え方)は実は簡単です。過日、【多遊】さんの(こちらではない方の)板 > で、例えばアックンから出ていた話題に触発されたこともあるのですが、要するにこ > ういうことです。 > ファイル名群をひとつの変数にカンマ区切りで取得しようとしたことがいかんかった > のです。変数ではなく表のデータで縦に展開させれば、それこそ無尽蔵に対応できる > シロモノだったのです。 > これを桐だけで済ますこともできます。上の処理を少し変えれば可能ですね? 取り > 出す時は今度は「#対応番号」ではなく、表データで「ジャンプ 行番号=+1」を使う > ことになります。あ、そのための作業表がひとつ必要となります。 > これを「方法1」とすれば、もうひとつ、DOSのコマンドである"dir"を使う方法、つ > まりリダイレクトでテキスト化したものを桐の表に読み込むと云うもの。DOS窓が出て > くるので、あるいは麗しさを減ずるかもしれませんが、でもこれを使うと、サブディ > レクトリも含めて対象にすることもやや簡単に実現できそうではあります(こちらは > 「方法2」とします)。 > と云う訳で、その内検討してみますが、今は無理です。「方法1」を自作改変で試し > ていただくってのでどうでしょう?
悲しげさん有難うございます、今年もよろしくお願いします。 Ogoさんにまでお手数かけてしまったんですね。申し訳ありません。
年末から、エラーが出てしばらく悩み、「何故今まで問題無いのに」と、全く分か らなかったんですが、ファイルが増えた事しか思い当たらなかったのですが、理由は は分かりました。 で、改造の件ですが、チャレンジしてみます(私にとっては簡単ではない!)。
お忙しい所申し訳ありませんでした。またよろしくお願いします。
追伸 「Grep」、「不要変数」があったので通常考えられないファイル数になった のでしょうね。
|