ファイルの指定位置や末尾から値を埋めて、ファイル長を変更する命令?
いまいち使用感がわからない。
* 概要 [#t332d32d]
SAP Helpによると、「ファイル末尾にして位置を設定して、ファイルのサイズを変更します」とのことだが、使う意味がイマイチわからない。
普通に[[構造>SAPのオブジェクト/構造]]なんかを書き出して行って、初期値であれば初期値で書き出せばそれでいい気がする。
** 用法 [#b313f1ea]
「狙ったファイルサイズにする」とか、そういうのが大事なシーンで使うのだろうか?
短いファイルに値(初期値)を埋めて狙った大きさにするだとか、逆に大きなファイルを指定のサイズを狙って小さくしたりする?
正直あまり見ない命令だが、有効に活用されている事例があれば是非共有していただきたい。
** サンプル [#h1e0507d]
*** 基本形 [#ue9bfdf2]
TRUNCATE DATASET dset AT CURRENT POSITION
これが、「現在のポジションから」の場合。
TRUNCATE DATASET dset AT POSITION pos.
こちらは「指定した位置から」の場合で、ファイルの先頭をゼロとして位置をバイト単位で指定する。
*** SAP Helpのサンプル [#dbdba259]
-ファイルを小さくする場合には新しいEOFから後ろが切り取られ、大きくする場合には前のEOFから新しいEOFまで16進数の0が埋められる
-最初のTRUNCATE命令を実行した後はファイルには "FF" という値が書き込まれ、2回目の命令の後では "FF00" となるとのこと。
DATA :
name TYPE string VALUE `test.dat`,
hex TYPE xstring.
hex = 'FFFF'.
OPEN DATASET name FOR OUTPUT IN BINARY MODE.
TRANSFER hex TO name.
SET DATASET name POSITION 0.
READ DATASET name INTO hex.
TRUNCATE DATASET name AT POSITION 1.
SET DATASET name POSITION 0.
READ DATASET name INTO hex.
TRUNCATE DATASET name AT POSITION 2.
SET DATASET name POSITION 0.
READ DATASET name INTO hex.
CLOSE DATASET name.
* その他 [#s18cb5f1]
関連する命令は、[[READ DATASET>ABAP/READ DATASET]]、[[CLOSE DATASET>ABAP/CLOSE DATASET]]、[[DELETE DATASET>ABAP/DELETE DATASET]]、[[TRANSFER>ABAP/TRANSFER]]、[[OPEN DATASET>ABAP/OPEN DATASET]]、[[GET DATASET>ABAP/SET DATASET]]、[[SET DATASET>ABAP/SET DATASET]]など。
~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)