CL

179. ファイル内のメンバーの変動を調べるには

これも「ライブラリー内部の変動を調べるには」と
同様でファイルの変更日付を調べるだけでよい。
_

[ TESTFIL : ファイルの変更日付時刻を調べる ]

ソースはこちらから

0001.00              PGM                                                          
0002.00              DCL        VAR(&DATE8) TYPE(*CHAR) LEN(8)                    
0003.00              DCL        VAR(&YY4) TYPE(*CHAR) STG(*DEFINED) LEN(4) +      
0004.00                           DEFVAR(&DATE8 1)                                
0005.00              DCL        VAR(&MM) TYPE(*CHAR) STG(*DEFINED) LEN(2) +       
0006.00                           DEFVAR(&DATE8 5)                                
0007.00              DCL        VAR(&DD) TYPE(*CHAR) STG(*DEFINED) LEN(2) +       
0008.00                           DEFVAR(&DATE8 7)                                
0009.00              DCL        VAR(&CHGDATE) TYPE(*CHAR) LEN(13)                 
0010.00              DCL        VAR(&TIME) TYPE(*CHAR) LEN(6)                     
0011.00              DCL        VAR(&HOUR) TYPE(*CHAR) STG(*DEFINED) LEN(2) +     
0012.00                           DEFVAR(&TIME 1)                                 
0013.00              DCL        VAR(&MINUTE) TYPE(*CHAR) STG(*DEFINED) +          
0014.00                           LEN(2) DEFVAR(&TIME 3)                          
0015.00              DCL        VAR(&SECOND) TYPE(*CHAR) STG(*DEFINED) +          
0016.00                           LEN(2) DEFVAR(&TIME 5)                          
0017.00                                                                           
0018.00              RTVOBJD    OBJ(QTRSRC/QRPGLESRC) OBJTYPE(*FILE) +            
0019.00                           CHGDATE(&CHGDATE)                               
0020.00              CHGVAR     VAR(&DATE8) VALUE('20' *CAT %SST(&CHGDATE 2 6))   
0021.00              CHGVAR     VAR(&TIME) VALUE(%SST(&CHGDATE 8 6))              
0022.00              SNDPGMMSG  MSG(' このソース・ファイルに変動があったのは ' +  
0023.00                           *CAT &YY4 *CAT '/' *CAT &MM *CAT '/' *CAT +     
0024.00                           &DD *CAT ' 日 ' *CAT &HOUR *CAT ':' *CAT + 
0025.00                           &MINUTE *CAT ':' *CAT &SECOND *CAT +       
0026.00                           ' 分です。 ') MSGTYPE(*DIAG)               
0027.00              RETURN                                                  
0028.00              ENDPGM  


                                                

[解説]

0018.00              RTVOBJD    OBJ(QTRSRC/QRPGLESRC) OBJTYPE(*FILE) +            
0019.00                           CHGDATE(&CHGDATE)

で変更日付 &CHGDATEを取得するだけでよい。
変更日付は 13桁で

世紀1桁 + 年2桁 + 月2桁 + 時2桁 + 分2桁 + 秒2桁

の型式である。
_