HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 検索 過去ログ

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

■872 / inTopicNo.1)  DECとPICの属性変換について
  
□投稿者/ MVS -(2018/02/11(Sun) 23:05:49) [ID:qlzgOie2]
    初歩的な質問ですみませんが、MVS3.8のPLIソースで以下のように定義したとき次のようなエラーが出てしまうのですがどのように修正したらよろしいでしょうか。

    DCL
    AAAAA FIXED DEC(n,0) ;
    DCL
    BBBBB PIC '(n)9' DEF AAAAA ;

    IEM1110I
    THE DEFINING BASE OF BBBBB DECLARED IN STATEMENT NUMBER X IS SHORTER THAN THE DEFINED ITEM.

引用返信/返信 削除キー/
■873 / inTopicNo.2)  Re[1]: DECとPICの属性変換について
□投稿者/ たかし -(2018/02/14(Wed) 09:26:26) [ID:dqIGR78S]
    ご質問のコーディングではBBBBBはDEFINED属性で定義されています。
    AAAAAの領域に対しBBBBBという別の名称でも使用できるようにされていますが、
    BBBBBの長さ(バイト数)がAAAAAよりも長い為、このエラーメッセージに至っているかと思います。
    ご質問中では「n」となっていますが、例えば「n」が7の場合、タイプ/長さの属性は以下になります
    ・DCL AAAAA FIXED DEC(7,0) ; ←パック十進数、長さは4バイト
    ・DCL BBBBB PIC '(7)9'     ; ←文字データ(ゾーン十進数)、長さは7バイト
    この場合、BBBBBを「DCL BBBBB PIC '(4)9' ;」のように変更し、長さを合致させればご質問の
    エラーメッセージだけは解消されるかもしれません。
    但し、DEFINED属性を使用する場合、同じ領域(同じデータ)を扱いますので、AAAAAとBBBBBは
    タイプも合致していないといけないと思います。
    (パック十進数とゾーン十進数ではデータの内部表現が異なりますので合致しません)

引用返信/返信 削除キー/
■874 / inTopicNo.3)  Re[2]: DECとPICの属性変換について
□投稿者/ MVS -(2018/02/14(Wed) 22:54:35) [ID:qlzgOie2]
    ご回答ありがとうございます。

    BASED(ADDR())を使おうとしたらエラーメッセージにNON-BASED POINTERなどとでてきてしまいよくわからず、DEFで代用しようと思ったのですが
    DEFは同じデータタイプでないと使えなかったのですね。


    例えばFIXED DEC(7,0)で定義したものをCHAR(7)にしたい場合、どのように変換したらよろしいでしょうか。
    (計算はDECIMALの状態で行い、結果を文字列として保持したいです。)
引用返信/返信 削除キー/
■875 / inTopicNo.4)  Re[3]: DECとPICの属性変換について
□投稿者/ たかし -(2018/02/15(Thu) 09:54:54) [ID:dqIGR78S]
    例えばですが、以下のような移送を実行しますと、
    AAAAAに格納されたパック十進数をゾーン十進数(文字形式)へ変換しBBBBBへ格納してくれます。
    
    DCL AAAAA FIXED DEC(7,0) ;
    DCL BBBBB PIC '(7)9' ;
    AAAAA = 123 ;    ← AAAAAは16進表記で'0000123C'になります
    BBBBB = AAAAA ;  ← BBBBBは16進表記で'F0F0F0F0F1F2F3'になります
    
    補足ですが以下の移送は文字形式同士ですので無変換の単純移送になります。
    DCL BBBBB PIC '(7)9' ;
    DCL CCCCC CHAR(7) ;
    CCCCC = BBBBB ;

引用返信/返信 削除キー/
■879 / inTopicNo.5)  Re[4]: DECとPICの属性変換について
□投稿者/ MVS -(2018/02/19(Mon) 21:04:14) [ID:qlzgOie2]
    わざわざ再定義しなくても良かったのですね。

    ご回答の通り実施したらうまく行きました。

    ありがとうございました!
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

書き込み不可

Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 検索 過去ログ

- Child Tree -