• ベストアンサー

jgawkでsub関数を多用するとメモリエラーになる

言語: jgawk OS: WINDOWS 2000 SP4のDOSプロンプト jgawkで同じ文字列に対してsub関数を連続して多用するとmemory exhaustedのエラーが出ます。 数回程度ではだいじょうぶなのです。 スクリプトの書き方にはまちがいはないと思っています。 対処法が見つからず困っています。 同じスクリプトで,WINDOWS98SEのDOSプロンプトやMS-DOSでは問題なく作動します。 どなたかアドバイスをいただけませんか?

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

  • ベストアンサー
noname#208124
noname#208124
回答No.1

32ビットネイティブのawkを使いましょう 特に多メモリ使用の16ビットアプリの動作再現性は9xの方が上です

参考URL:
http://www.vector.co.jp/vpack/filearea/win/util/text/awk/
yannaka
質問者

お礼

どうもありがとうございました。 ご教示のHPにありました4種類すべて試してみましたところ、 mawk MBCS (32bit版) Rel. 27 以外のすべてのgawk.exeでうまく行きました。 jgawk.exeは質問させていただいたのと同様の結果でした。 ところで、dumm様はどの版を推薦されますか?

yannaka
質問者

補足

すみません。 jgawk.exeは質問させていただいたのと同様の結果でした。 ↑は当方の勘違いでした。

その他の回答 (1)

noname#208124
noname#208124
回答No.2

awkとかは実は使っていないのでお薦めは分からない、というのが実のところです かなり前に別の場所の質問で同じようにjgawkが9x→2000にしたらメモリを多く使うと動かないというのがありまして そのときもjgawkが16ビットのものだったので同じ解答を そのひとはそこのmawkMBCSに乗り換えてうまくいったそうです

yannaka
質問者

補足

とりあえず gawk win32 2.15p4+mb1.03 ↑これで行くことにしました。 ↓はうまく行かなかったので。 mawkMBCS

関連するQ&A

  • dos.hについて

    いま「Windowsコマンドプロンプトでマスター 書く!動かす!覚える! C言語100本勝負」というタイトルの本をサンプルプログラム集として使っているのですが、そのサンプルの中にdos.hを使ったプログラムが結構な数あります。コンパイルしたプログラムは正常に動くのですが、コンパイル時に次のような警告が出ます。 警告 W8053 hoge.c 18: '_dos_findfirst' は古い形式です(関数 main ) 警告 W8053 hoge.c 22: '_dos_findnext' は古い形式です(関数 main ) (コンパイラ:bcc32、OS:Windows XP SP2、コマンドプロンプトで実行した) ネットで調べたところ_dosで始まるような関数は現在ではほとんど使われていないようです。 そこで質問なのですが、MS-DOSの時代に使われていたような関数はWindows XPや2000等のコマンドプロンプトでも問題なく実行できるのでしょうか(自分の場合は実行できたが、警告が出た。)? 自分の推測ではコマンドプロンプト用の新しい関数が用意されているのではないかと思うのですが・・・ 詳しい方、できれば教えてください。 (正直、「コマンドプロンプトでマスター」とタイトルで謳っているのに内容が「MS-DOS」での説明とは少しだまされた気分です。)

  • DOSモードにならない

    98SEですが、 「スタート」-「WINDOWSの終了」-「MS-DOSモードで再起動する」 これを実行してもDOSプロンプトが表示されません。 画面が真っ暗なままです。 もちろんキーをたたいても何も表示されません。 どこがおかしいと考えられるでしょうか? おねがいします。

  • VBA Shell関数 

    エクセルVBA shell関数でプログラムを立ち上げ (DOSプロンプト画面が起動) そのあとに、続けてDOSプロンプトにコマンドと"Sheet1のA1"のセルに入力してある文字を打ち込みたいのですが上手くいかなく困っています。 どのようにしたらよいのでしょうか。 以下のように記述しています。 (初心者です) ------------------------------------ Sub ShellSamp1() Dim myID As Double   myID = Shell("C:\****\*****\*****.EXE & " & cd C:\Documents and Settings & " & Range("A1").Value & """") End Sub ------------------------------------

  • アプリケーションのダウンロード時のエラーメッセージについて

    Windows Meです。 アプリケーションをサイトからDLして開いてインストール しようとしたところ、「This program cannot be in DOS mode.」と表示され動きません。 MS-DOSプロンプトのタグで「MS-DOSプログラムで Windowsを検出しない」にチェックは入っておりません。 考えられる原因と改善方を教えてください。 よろしくお願いします。

  • MS-DOSプロンプトでBEEP音を鳴らすコマンドは?

    MS-DOSプロンプト画面で音を鳴らす方法を教えてください。 パソコンはIBM NetVista DOS/Vです。 OSはWindows98SEです。

  • 全画面表示のMS-DOSプロンプトをウィンドウ表示にする方法

    MS-DOSプロンプトを起動すると、全画面表示になってしまうため、ウィンドウ表示を切り替えたく、Alt キーを押しながら Enter キーを押しました。 すると、winoldapでエラーが発生した旨の画面が表示され、DOSプロンプトが消えてしまいます。 全画面表示のMS-DOSプロンプトをウィンドウ表示にする方法をご存知ありませんか?

  • MS-DOSプロンプトでの不具合について

    DOS版の機械計測ソフトをMS-DOSプロンプトで(?)使用しています。 ところが度々パソコンが固まってしまうのですが、どういったことが原因として 考えられるでしょうか?全然関係ないかもしれませんが、特打2の取説のQ&Aの 所に固まってしまう原因としてスクリーンセーバーが挙げられていたのですが、 そういったことで解決できるのでしょうか?私のパソコンで使用しているときは 起きないのですが、なぜか現場に行くと頻繁に起こってしまうのです。 どこがどう違うのかよくわかりません。電気的にとかノイズとかがあるので しょうか? 使用環境   半自作(?)パソコン(←足したのはHDD、CPU、メモリーぐらい)   Win98SE 使用ソフトはDOS版(NEC)の機械計測ソフトで全画面になってしまいます。 私自身パソコンに触り始めて1年弱なので難しいことはわかりませんので、 出来れば解りやすくMS-DOSプロンプトに関する注意点など教えていただけ ればと思います。

  • DOSプロンプトから EMSメモリーの確保

    Windows XP で DOSプロンプトから DOSアプリ(マルチプラン)を操作したところ アプリは 問題なく起動するのですが  容量の大きなファイルを呼び出すとメモリー不足でエラーとなります DOS マシンでは 正常でした おそらく 使用可能エクステンドメモリが ないためと思われます ちなみに MEM コマンドで 以下の 内容がでてきます ----------------------------------------------------------------------- 655360 バイト : コンベンショナルメモリ 655360 バイト : 使用可能 MS-DOS メモリ 465008 バイト : 最大プログラムサイズ 1048576 バイト : 全エクステンドメモリ 0 バイト : 使用可能エクステンドメモリ 941056 バイト : 使用可能 XMSメモリ MS-DOS は, ハイメモリ領域に常駐しています. ----------------------------------------------------------------------- 使用可能エクステンドメモリを DOSプロンプトから 確保したいのですが?

  • EMM386に関するエラー

    WIN98SEを使用しています。 WINDOWSを立ち上げると、DOS プロンプトの状態で「EMM386は組み込まれませんでした」というメッセージが出ます。 その後数秒間PAUSEがあり、AUTOEXECが実行され、通常に立ち上がります。 EMM386.EXEおよびEMM386.PIFはC:\WINDOWSのディレクトリーに存在するのに、このメッセージがでることが気がかりです。 このメッセージを出なくするようにしたいのですが、どのようにすればいいのでしょうか?

  • MS-DOSプロンプトの画面が最大表示される

    Windows98SEを使っていますが、いつの頃からかMS-DOSプロンプト画面を起動 させると、画面一杯に表示されるようになりました。 通常は画面サイズより小さい枠の中にMS-DOSプロンプトの画面が現わて、 タスクバーをクリックするなどすれば、他のアプリケーションと画面を切り替える といった「Windows的」な使い方ができると思うのですが、画面一杯がMS-DOSの 真っ黒な状態で立ち上がります。 MS-DOSプロンプトとExcel等の画面を見比べながらの作業ができないので何かと 不便を感じています。 どのようにしたら普通の状態に戻せるでしょうか?

専門家に質問してみよう