JWW専用掲示板
(現在 過去ログ95 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 発言ランク ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■20477 / inTopicNo.1)  実行時のエラーメッセージ
  
□投稿者/ inostar 5回-(2004/07/22(Thu) 07:37:05)

    記事内容:[|] 

    外変作成支援3点BATのうちjw_pro04.batを実行するとDOS画面で
    「Jgawk:optran4.awk:53:fatal:attempt to use scalar as array 続行するには何か
    キーを押してください....」となります。なにがfatalなんでしょうかまたawk:53と
    はなにを意味するのでしょうか教えてください。jw_pro02.bat jw_pro03.batはうまく
    行きます。ちなみにOSはwin2000です。
引用返信/返信 [メール受信/OFF] 削除キー/
■20480 / inTopicNo.2)  Re[1]: 実行時のエラーメッセージ
□投稿者/ 三五六 339回-(2004/07/22(Thu) 10:28:54)

    記事内容:[|] 

    No20477に返信(inostarさんの記事)
    > 外変作成支援3点BATのうちjw_pro04.batを実行するとDOS画面で
    > 「Jgawk:optran4.awk:53:fatal:attempt to use scalar as array 続行するには
    何か
    > キーを押してください....」となります。なにがfatalなんでしょうかまた
    awk:53と
    > はなにを意味するのでしょうか教えてください。jw_pro02.bat jw_pro03.batは
    うまく
    > 行きます。ちなみにOSはwin2000です。

    inostarさん、こんにちは。

    解決策では有りませんが、解説だけ、
    たしかに上記エラーが出るようになっているようです。

    >awk:53とはなにを意味するのでしょうか

    Jgawk:optran4.awk:53:fatal:attempt to use scalar as array

    ':'区切りで順に説明すると
    ・Jgawk:jgawkからのメッセージ
    ・optran4.awk:エラーが見つかった処理中のawkスクリプトの名前
    ・53:53行目でエラーが見つかりました。
    ・fatal:致命的で続行不可です。(この意味は御存知ですね)
    ・attempt to use scalar as array:既存単純変数(スカラー?)に
     配列形式でアクセスしようとしました。(でしょうか?)

    で、私もダウンロードさせていただいてoptran4.awkを見て見ました

    53行目には、 tate[$2] = $11 とあります。
    tate[]という配列変数が問題のようです。

    26行目に、tate=1; という代入があります。

    全体を検索してみましたが、この単純変数tateを他で使用していない
    様に見え、この代入の意図するところは見えません。

    全体を解析したわけでは無いので、これはスクリプトの問題なのか
    不明です。

    三五六

引用返信/返信 [メール受信/OFF] 削除キー/
■20484 / inTopicNo.3)  Re[2]: 追加確認
□投稿者/ 三五六 340回-(2004/07/22(Thu) 11:05:40)

    記事内容:[|] 

    > 全体を検索してみましたが、この単純変数tateを他で使用していない
    > 様に見え、この代入の意図するところは見えません。
    >
    > 全体を解析したわけでは無いので、これはスクリプトの問題なのか
    > 不明です。

    この辺について、ちょっと追加でチェックしてみました。

    おそらく、指定(下記)のjgawkを使えば問題なく動作すると
    思われます。
    Japanized Gnu Awk (jgawk) 2.15.2 + 1.1(SJIS)

    Vectorに有りましたので、ダウンロードして実験してみました。
    このjgawk(MS-DOS版)では、上記エラーはすり抜けます。
    逆(配列が先で単純が後)は、エラーです。
    また、配列で使った後は、単純形式でアクセス(参照)するとエラーに
    なります。しかし当該スクリプトでは、単純変数tateにアクセス
    する部分が無いので正常動作するはずです。

    ということで、
    26行目の tate=1 をコメント化(# tate=1)するか、削除すれば
    いまどきのjgawkな環境でも動作するのではないでしょうか?

    上記jgawk.exe(MS-DOS版)を使うのも手です。が、
    同じコマンド名(ファイル名)なので、windows版jgawkとの使い分
    けが出来ない人にはオススメできません。
    ちなみにコマンド名(ファイル名)を変更すると動作が変わる場合
    がありますので名前による使い分けは不可です。

    三五六

引用返信/返信 [メール受信/OFF] 削除キー/
■20496 / inTopicNo.4)  Re[3]: 追加確認
□投稿者/ inostar 6回-(2004/07/22(Thu) 16:52:09)

    記事内容:[|] 

    三五六さん、こんにちは。
    「26行目の tate=1 をコメント化(# tate=1)」でとりあえず実行可能となりました。な
    ぜ、コメント化するとそうなるのかは?ですがありがとうございました。とりあえず「解
    決済み」にチェックしておきます。
解決済み!
引用返信/返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 発言ランク ファイル一覧 検索 過去ログ

- Child Tree -