2017-06-12 4 views
-4

私はCobolワーキングストレージで変数を再定義しようとしています。 PIC句9(2).9(3)を持つ変数をこのPIC句に再定義できますか?(2).9(3)coobolのRedefines節

+4

なぜそれを試してみませんか?あなたのコンパイラは間違っていることは決してありませんし、インターネット上で間違った答えが出るのを待つ時間を無駄にしません。 – EJP

+0

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

答えて

0

COBOLのフィールドを再定義すると、単純に、それを再定義する。つまり、それぞれのフィールドに格納されるバイトを小さなセグメント/バイトに分割するだけです。

例えば、クレジットカードなどの多くの一般的なものに適用できる有効期限を使用しているとします。 COBOLの初期作業記憶フィールド/変数は、次のようになります。

05 EXPIRATION-DATE   PIC X(8). 

ここで、8バイトを小さいバイトに再定義しましょう。そうすれば、たとえば、年だけ、月のみ、または有効期限の日だけを引き出すことができます。

だから、次のようになります。

05 EXPIRATION-DATE   PIC X(8). ---> 20170623 (data stored in field) 
05 EXPIRATION-DATE-NEW REDEFINES EXPIRATION-DATE. 
    10 EXPIRATION-YEAR  PIC 9(4). ---> 2017 
    10 EXPIRATION-MONTH  PIC 9(2). ---> 06 
    10 EXPIRATION-DAY  PIC 9(2). ---> 23 

だから、メインフィールドはしかし、それを再定義することで、あなたが今、あなたがしようとしているものに応じて、ちょうど一年、月、または日で仕事ができる、日付を格納しますプログラムで行うこと。

これが役に立ちます。