6.5.API基礎講座5 総称見出しからのデータの取り出し |
まず、マニュアルを見てみましょう。
単純に言えば、ユーザー・スペースの、どこから、何バイト読むのかを指定すると、その内容が指定した長さ分、戻されるのです。 よく、わからなくなるのは、総称見出しの何バイトからどれくらいを取り出すのか、という点です。この際、じっくり見ておきましょう。 というわけで、ここで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進数の部分省略。(総称見出し全体のレイアウトはこちらです。)
STRPOSに125をセットして、LENDTAに16をセットしているのは、
を取り出そうとしてるからです。上記のRPGで、DSのGENHEDに、125桁めから16バイトのデータが、セットされています。このGENHEDはDSで、
に分解されます。(バイナリ定義のフィールド)。この4つが、上記の表に該当します。ここに、この後参照する、リストセクションの大事な情報が入っているのです。 もし、「見出しセクション」も見るのならば、STRPOSには、116+1で117が入って、LENDTAは4X6=24バイトとなります。 よく分かる!これがユーザースペースだ!
|
You are at K's tips-n-kicks of AS/400
|
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||