2017-03-04 22 views
0

cobolプログラムの配列のサイズを動的に見つけるためのシェルスクリプトを書くことができます。これは、配列の最大サイズとどのくらいの配列が満たされているかなどです。cobolプログラムの配列サイズを見つけるためのシェルスクリプト

+0

いくつかのサンプル入力コードを表示してください。ここで誰もがコブル語を話すわけではありません。 –

+0

ようこそstackoverflow.comへようこそ。 [ヘルプページ](http://stackoverflow.com/help)、特に[ここではどのトピックを聞くことができますか?](http://stackoverflow.com/help/)のセクションを読んでください。 on-topic)と[[どのような種類の質問を避けるべきですか?]](http://stackoverflow.com/help/dont-ask)を参照してください。また、[ツアー](http://stackoverflow.com/tour)をご覧になり、[良い質問をする方法](http://stackoverflow.com/help/how-to-ask)を読んでください。最後に、[最小限の完全で検証可能な例](http://stackoverflow.com/help/mcve)の作成方法を学んでください。 – cschneid

+0

@Prashanth:与えられた答えが「あなたのために働いたのですか?はいの場合:「受け入れ済み」としてマークしてください。そうでない場合:特定のものが欠落していますか? –

答えて

5

質問1:何らかのプログラミング言語(この場合はCOBOL)で最大配列が使われていることを何か(この場合はシェルスクリプト)を介して確かめることはできますか?

回答:いいえ、動的アクセス(変数でアクセス)があり、すべての可能な入力でプログラムを実行しないと、どれくらいの量が使用されているか分かりません。

質問2:COBOLプログラムで配列のサイズを調べるシェルスクリプトを記述できますか?

回答:はい、あなたが使用していない場合(DEPENDING ONが動的にサイズを設定します)とDEPENDING ONサイズと外部を定義するために使用されているIBM拡張OCCURS UNBOUNDEDを(使用しません2002+ OCCURS DYNAMIC割り当てが必要です)。これはarray OCCURS [min [TO]] maxとなります。 OCCURSの場合はgrep(またはWindowsの場合はfindstr)が最大サイズになります。新しい行にある可能性があるため、チェックする前に改行を削除する必要があります(たとえば、tr '\n\ ' '、ファイルにDOS改行が含まれている場合はtr '\r\ ' ')。インラインコメントがある場合は、以前のコメントをすべて置き換える必要があります。フォーマットに応じて(私は固定形式の参照フォーマットと仮定します)、各行のコード以外の部分を最初に削除し、継続行に対応しなければなりません。 このオプションをお持ちの方は、コンパイラでソースを前処理するほうがはるかに簡単です(同様のコード調査のためにフリーGnuCOBOLコンパイラを前処理しています)、またはソースリストのシンボルテーブルを使用することもできますそれはこれを提供します(GnuCOBOLは持っています)。この場合は、非常に単純なgrepになります。

関連する問題