最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

6.5.API基礎講座5 総称見出しからのデータの取り出し

[ Previous ] [ HOME ] [ Upper ] [ Next ]


まず、マニュアルを見てみましょう。

5.48.7 ユーザー空間の検索 (QUSRTVUS) API

パラメーター 
   
 必須パラメーター・グループ:  
  
    1   ユーザー空間修飾名    入力     Char(20) 
    2   開始位置              入力     Binary(4)
    3   データの長さ          入力     Binary(4)
    4   レシーバー変数        出力     Char(*)  

 任意選択パラメーター:

    5   エラー・コード       入出力   Char(*) 
         

ユーザー空間の検索 (QUSRTVUS) API によって、ユーザー空間の内容を検索することができます。QUSRTVUS API は、そのサイズなど、ユーザー空間オブジェクトに関する記述情報を検索するものではありません。ユーザー空間の属性に関する情報を検索するには、トピック5.48.8の『ユーザー空間属性の検索(QUSRUSAT) API』を参照してください。

注:  QUSRTVUS API の開始位置を決定するためには、オフセット値に 1 を加算しなければなりません。開始位置が 0 であるオフセット値を使用する OS/400 リスト API とは対照的に、QUSRTVUS API では 1 から始まる値が使用されます。QUSRTVUS API では、ユーザー空間の最初の文字は位置 1 に置かれます。

単純に言えば、ユーザー・スペースの、どこから、何バイト読むのかを指定すると、その内容が指定した長さ分、戻されるのです。

よく、わからなくなるのは、総称見出しの何バイトからどれくらいを取り出すのか、という点です。この際、じっくり見ておきましょう。

というわけで、ここでQUSRTVUSのRPGソースを掲載します。注に出ているオフセット+1は覚えておかないと、うまくいきませんよ!
下記は「総称見出し」からデータを取り出す例です。

     H            Y/                                    1
     I******************************************************
     I*     D E F I N E    D A T A  - S T R U C T U R E    *
     I******************************************************
     IUSRSPC      DS
     I                                        1  10 USNAME
     I                                       11  20 USLIB
     IGENHED      DS
     I                                    B   1   40DTLOFS
     I                                    B   5   80LSTSIZ
     I                                    B   9  120NOENTH
     I                                    B  13  160DTLSIZ
     I            DS
     I                                    B   1   40USSIZE
     I                                    B   5   80LENDTA
     I                                    B   9  120STRPOS
     C******************************************************
     C*             M A I N -  R O U T I N E               :
     C******************************************************
     C*                                                    :
     C*総称見出しからデータを取り出す                      :
     C*                                                    :
     C                     CALL 'QUSRTVUS'             95  :
     C                     PARM           USRSPC           :
     C                     PARM 125       STRPOS           :
     C                     PARM 16        LENDTA           :
     C                     PARM           GENHED           :
     C*                                                    :
     C                     MOVE *ON       *INLR            :
     C                     RETRN                           :
    
解説    

総称見出しのレイアウトを見てください。オフセットは16進数の部分省略。(総称見出し全体のレイアウトはこちらです。)

オフセット10 進数

タイプ

フィールド

サンプルRPGのフィールド名
124 BINARY(4) リスト・データ・セクションのオフセット DTLOFS
128 BINARY(4) リスト・データ・セクションのサイズ(※あまり使いません) LSTSIZ
132 BINARY(4) リスト項目の数 NOENTH
136 BINARY(4) 各項目のサイズ DTLSIZ

STRPOSに125をセットして、LENDTAに16をセットしているのは、

  • オフセット10進数124を始めとして(だから124 + 1で125
  • 長さ4バイトのフィールドを4っつなので16バイト分

を取り出そうとしてるからです。上記のRPGで、DSのGENHEDに、125桁めから16バイトのデータが、セットされています。このGENHEDはDSで、

  1. DTLOFS
  2. LSTSIZ
  3. NOENTH
  4. DTLSIZ

に分解されます。(バイナリ定義のフィールド)。この4つが、上記の表に該当します。ここに、この後参照する、リストセクションの大事な情報が入っているのです。

もし、「見出しセクション」も見るのならば、STRPOSには、116+1で117が入って、LENDTAは4X6=24バイトとなります。
簡単でしょう?

よく分かる!これがユーザースペースだ

 api_usrspc.gif (44899 バイト)

 


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

独自ドメインの取得をするなら 専門学校情報が満載♪ 独自ドメインの取得をするなら
[PR] | 花粉症債務整理中国SEO対策消費者金融SEO車 買取テンプレート沖縄旅行免許合宿二輪引越しプレゼントゴルフ会員権留学レーシックマッサージFX投資信託くりっく365アフィリエイトFXホームページ制作デイトレードハワイ旅行タイバンコクハワイ レンタカーベスト ハワイ ホテル レーツバリ島Hawaii hotelsHawaii Activitiesbhhrハワイホテルテキスト広告
【運営会社「パラダイムシフト」サービス】 ハワイ現地オプショナルツアーリラックマ) - ビジネスクラス航空券 - 格安航空券(1) - 格安航空券(2) - 海外ホテル - 韓国旅行 - タイムシェア - ホテル 予約
無料ホームページ - 携帯ホームページ - 無料ホームページ作成 - レンタルサーバー - ブログ - ヴィラ - ハワイ コンドミニアム - バリ島 ホテル - プーケット ホテル - 海外旅行 - 格安国際電話 - レップチェッカー - ホノルルマラソン - サイトパトロール - 誹謗中傷 - 学校裏サイト監視