FGALTS 6 /RE:04781 RE:データの集計  こんにちは、hata さん 》Awkは配列を格納するのにハッシュ表を使用していて、小さい配列は定数時間で 》参照できるけれど、大きな配列は加速度的に時間がかかるという話がありました。 なるほど、当然な動作のわけですね。 では、解決するにはどうすればよいのでしょうか。 》printf("\033[s\033[3;60H\033[0K\033[7m%d\033[u",i) >"con" # for debug 》のような行をデバッグ中だけでも埋め込んでおくと、現在処理中のiが 》画面で確認できて便利だと思います。 ありがとうございます。参考にさせていただきます。 私の場合、よくやるのは printf("%s \r",FILENAME) > "/dev/stderr" なんていうもので、コマンドラインの次の行に現在処理中のファイル名を表示さ せていたりするのです。次回試験走行時には、これらのルーチンを埋め込んで見 たいと思います。 》あと、END{}のspritは重たそうな気がしますので、間違っているかも知れません 》が、printの為にSUBSEPをOFSに置き換えているだけのような印象ですし、 》BEGIN{}でSUBSEP=","としてしまってはどうでしょうか? ありがとうございます。そのようにしたいと思います。 》Awk.DLLなんかを使って、全てAccessの仲で処理することも出来ないんでしょうか? できるかもしれませんが、やりたくはないですね。 可能であれば、全てDOS窓のコマンドライン処理で行いたいです。 まず、100以上の原子データを読み込ませるだけでも一苦労しそうな気がしま すから。 》あと、38MBものファイルアクセスをするのでしたら、BEGIN{}でファイルをHDDから 》RAMDISKにCOPYして、RAMDISK上で作業すると爆発的に早くなったりしませんか? 現状の作業頻度から考えると、手作業ありで数時間かかっていたものが手作業な しの十数分で終わっているわけで、十分爆発的に速くなっています。 ちなみに、今回試験走行を行ったマシンは十分速くて、AWK ではなくて sortf で の結果なんですが、ネットワークドライブ経由の20MBのデータを処理するの に、自宅の 5x86 133MHz のマシンの RAMDISK 上の8MBのデータを処理するよ りも短い時間で終わったという実績があります。                                 としき