IFS

26. 文字と HEXコード を上下に表示するには?

データ・ベースの表示 / 更新には DSPFL というコマンドがあるが
(TOOLS 1.データ・ベースの表示 / 更新 を参照 ) ※要ログイン

[ DSPFL によるデータ・ベース表示の例 ]

FILE: QTRFIL/SHOHIN          MBR: SHOHIN      RECL:   45   MODE: MULTI HEX 
         RRN       1 WINDOW    1  FROM    0 TO    0 DATA                  H
         KEY                                                              K
        ・・・・+・・・・1・・・・+・・・・2・・・・+・・・・3・・・・+・・・・4・・・・+・・・・5・・・・+・・・・6・・・・+・・
      1 NV-BS30S   目次ビデオ             01650000002                      
        DE6CEFFE44047494D4C480444444444444FFFFFFFFFFF                      
        5502230200E6557303D35F00000000000001650000002                      
      2 NV-BS50S   ビデオ画王             02000000002                      
        DE6CEFFE4404D4C48474B0444444444444FFFFFFFFFFF                      
        5502250200E303D356791F00000000000002000000002                      
      3 NV-CF2     薄型テレビ             00980000003                      
        DE6CCF44440494E494B4D0444444444444FFFFFFFFFFF                      
        5503620000EA266343A30F00000000000000980000003                      
      4 NV-CF81    更新テスト             00580000004                      
        DE6CCFF444046484948490444444444444FFFFFFFFFFF                      
        5503681000EAD57343E35F00000000000000580000004                      
      5 NV-CF9     漢字テスト             00190000002                      
        DE6CCF44440454F4948490444444444444FFFFFFFFFFF                      
        5503690000EF882343E35F00000000000000190000002                      
      6 NV-F850    音声録画ビデオ         01400000002                      
        DE6CFFF4440444648474D4C48044444444FFFFFFFFFFF                      
        5506850000E8D9C8667303D35F0000000001400000002                      
                                                                           
 CMD    3: 終了   4:HEX     5:CHR               7:M.CHR  16: 検索  10: 更新

ストリーム・ファイルにはこのようなコマンドはない。
ただし IBM の WRKLNK コマンドを使えば次のように表示することができる。

[ WRKLNK によるストリーム・ファイル表示の例 ]

  ブラウズ: /AS400-NET.USR/TEMP/CA.TXT               
  レコード:        1   OF      28 BY  18              
  制御 :                                           
                                                   
....+....1....+....2....+....3....+....4....+....5.
 ************* データの始め ****************       
NV-BS30S   目次ビデオ                 1650000002   
NV-BS50S   ビデオ画王                 2000000002   
NV-CF2     薄型テレビ                  980000003   
NV-CF81    更新テスト                  580000004   
NV-CF9     漢字テスト                  190000002   
NV-F850    音声録画ビデオ             1400000002   
NV-HK1     歌えるビデオ                900000002   
NV-H1T-S   みんなのビデオ              698000002   
NV-SX10    ビデオ画王                 1150000002   
NV-W1      世界放送方式ビデオ         3500000002   
RX-DT75    CDラジオカセット          538000003   
SC-CH150   超ミニ・コンポ              700000003   
SC-CH505   パーソナル・ミニコンポ     1000000003   
SC-CH655   ロングプレイ・コンポ       1290000003   
SC-CH950   ドルビー・ミニコンポ       1620000003   
SF-SDCD     FFFFF                      190000009     
TH-19VS30  コンパクトTVBS19     1200000001   
TH-21VS30  コンパクトTVBS21     1280000001   

しかし F10 キーを押して HEX を表示すると

 ブラウズ: /AS400-NET.USR/TEMP/CA.TXT                                      
 レコード:        1   OF      28 BY  14             桁 :       1     59 BY  
 制御 :                                                                  
                                                                         
      - - - -  + - - -  - * - -  - - + -  - - - *    ----+----*----+----*
      405C5C5C 5C5C5C5C 5C5C5C5C 5C5C0E43 CD435843    ************* デー 
      4E562D42 53333053 202096DA 8E9F8372 83668349   NV-BS30S   目次ビデ 
      4E562D42 53353053 20208372 83668349 89E689A4   NV-BS50S   ビデオ画 
      4E562D43 46322020 20209496 8C5E8365 838C8372   NV-CF2     薄型テレ 
      4E562D43 46383120 20208D58 90568365 83588367   NV-CF81    更新テス 
      4E562D43 46392020 20208ABF 8E9A8365 83588367   NV-CF9     漢字テス 
      4E562D46 38353020 202089B9 90BA985E 89E68372   NV-F850    音声録画 
      4E562D48 4B312020 202089CC 82A682E9 83728366   NV-HK1     歌えるビ 
      4E562D48 31542D53 202082DD 82F182C8 82CC8372   NV-H1T-S   みんなの 
      4E562D53 58313020 20208372 83668349 89E689A4   NV-SX10    ビデオ画 
      4E562D57 31202020 202090A2 8A4595FA 919795FB   NV-W1      世界放送 
      52582D44 54373520 20208262 82638389 83578349   RX-DT75    CDラジ 
      53432D43 48313530 202092B4 837E836A 81458352   SC-CH150   超ミニ・ 
      53432D43 48353035 20208370 815B835C 8369838B   SC-CH505   パーソナ 
      53432D43 48363535 2020838D 8393834F 8376838C   SC-CH655   ロングプ 
                                                                         
F3= 終了    F10= 文字の表示    F12= 取り消し    F16= 検索    F19= 左     
F20= 右                                                                  

のように表示されて文字列と HEX は左右に分かれてしまうので
どの文字がどのような HEX コードであるのかは直ちに判別しにくい。

そこで DSPFL のように文字と HEX を上下に表示できるコマンド : DSPSTM を作成してみた。

[ DSPSTM によるストリーム・ファイル表示の例 ]

STMF: /AS400-NET.USR/TEMP/CA.TXT                                      CCSID:  943
制御 :                                                               
....+....1....+....2....+....3....+....4....+....5....+....6....+....
NV-BS30S  目次ビデオ                1650000002                       
45245335229D8987868422222222222222223333333333                       
E6D23303006AEF32363900000000000000001650000002                       
NV-BS50S  ビデオ画王                2000000002                       
45245335228786848E8A22222222222222223333333333                       
E6D2350300323639969400000000000000002000000002                       
NV-CF2    薄型テレビ                 980000003                       
4524432222998586888722222222222222222333333333                       
E6D362000046CE353C3200000000000000000980000003                       
NV-CF81   更新テスト                 580000004                       
4524433222859586858622222222222222222333333333                       
E6D3681000D80635383700000000000000000580000004                       
NV-CF9    漢字テスト                 190000002                       
45244322228B8986858622222222222222222333333333                       
E6D3690000AFEA35383700000000000000000190000002                       
NV-F850   音声録画ビデオ            1400000002                       
45243332228B9B958E8786842222222222223333333333                       
E6D6850000990A8E963236390000000000001400000002                       
NV-HK1    歌えるビデオ               900000002                       
45244322228C8A8E878684222222222222222333333333                       
E6D8B100009C2629323639000000000000000900000002                       
                                                                     
F3= 終了                        F10= 更新        F11= 表示切替 (CHR) 

【 解説 】

DSPFL の表示のように見えるがこれは右上に示されているように
CCSID : 943 日本語 ASCII コードのストリーム・ファイルを表示したものである。
数字の 1 は良く見ると HEX コードは
F1 (EBCDIC) ではなく 31 (ASCIIコード) になっている。

DSPSTM は

  • 文字列と HEX コードを上下 2 段に表示する。
  • 漢字も表示でき、シフト文字による HEX コードとのずれを起こさない。
  • HEX コードを変更して 「F10=更新」 キーを押せばストリーム・ファイル全体を
    更新することができる。
  • CCSID : 819, 943 (日本語ASCII) , 1200 (UTF-16) , 1208 (UTF-8) , 1202 (UTF16LE) ,
    5026, 5035, 1399 をサポートする。

参考までに CCSID : 1202 とは ClientAccess (iAccess) のデータ転送ファイルの
CCSID である。
しかしIBM i は CCSID:1202 のコード変換をサポートしていない。
よって iAccess のデータ転送ファイルを IBM i の IFS に配置しても
容易には読み取ることはできない。
ここで紹介したDSPSTM は CCSID:1202 を EBCDIC に変換して読み取ることができるし
弊社製品 : AutoWebデータ転送でも CCSID : 1202 をカバーしている。

なお DSPSTM のソース情報は Tools で公開を予定しているので Tools を参照されたい。
またこの記事の最上位で紹介した DSPFL は漢字も表示されている。
従来 DSPFL では漢字は表示できなかったものを改良して漢字を表示できるようにした。
これも Tools で紹介する。

Tools のリンクはこちら
(TOOLS 73.ストリーム・ファイルを表示する DSPSTM) ※要ログイン