前のページ|次のページ

TRANTAB プロシジャ

例3: 開始位置に10進値を指定した編集

要素:

LISTステートメント

REPLACEステートメント

SAVEステートメント

この例では、変換テーブルの作成で作成した変換テーブルを編集します。REPLACEステートメントで指定した10進値によって、テーブルへの変更の開始位置が示されます。
両方のSASログ内の縦矢印によって、変更の開始点が示されます。
例はすべてUNIX環境で作成されました。

プログラム1:元のテーブルの表示

   options nodate pageno=1 linesize=80 pagesize=60; proc trantab table=newtable; 
   list one;

プログラムの説明

システムオプションを設定し、編集する変換テーブルを指定します。
   options nodate pageno=1 linesize=80 pagesize=60; proc trantab table=newtable; 
元のテーブルを表示します。このLISTステートメントでは、元のNEWTABLE変換テーブルを表示します。
   list one;

SASログ

Original NEWTABLE Translation Table
Table specified is NEWTABLE.NOTE:NEWTABLE table 2 is uninitialized.NEWTABLE table 1:↓ 0 1 2 3 4 5 6 7 8 9 A B C D E F 00 '00010203A309E57FF9ECC40B0C0D0E0F'x 10 '10111213A5E008E71819C6C51C1D1E1F'x 20 'C7FCE9E2E40A171BEAEBE8EFEE050607'x 30 'C9E616F4F6F2FB04FFD6DCA2B6A7501A'x 40 '20E1EDF3FAF1D1AABABFA22E3C282B7C'x 50 '265FACBDBCA1ABBB5F5F21242A293BAC'x 60 '2D2F5FA6A6A6A62B2BA6A62C255F3E3F'x 70 'A62B2B2B2B2B2B2D2D603A2340273D22'x 80 '2B6162636465666768692D2BA6A62B2B'x 90 '2D6A6B6C6D6E6F7071722DA62D2B2D2D'x A0 '2D7E737475767778787A2D2B2B2B2B2B'x B0 '2B2B2B5F5FA65F5F5FDF5FB65F5FB55F'x C0 '7B4142434445464748495F5F5F5F5F5F'x D0 '7D4A4B4C4D4E4F5051525F5F5FB15F5F'x E0 '5C83535455565758595A5F5FF75F5FB0'x F0 '30313233343536373839B75F6EB25F5F'x

プログラム2:テーブルの編集

   replace 10 20 10 200 'x' 'ux' '092040'x;
   save;
   list one;

プログラムの説明

変換テーブル内の文字を指定された開始位置から置き換えます。このREPLACEステートメントでは、10進数で10の開始位置(元のテーブルの11バイト目)から、指定した値を基にバイト単位の置換を行います。
   replace 10 20 10 200 'x' 'ux' '092040'x;
変更を保存します。SAVEステートメントでは、NEWTABLE変換テーブルに加えた変更を保存します。
   save;
新しいテーブルを表示します。2番目のLISTステートメントでは、編集されたNEWTABLE変換テーブルを表示します。
   list one;

SASログ

Saving table NEWTABLE.NOTE:NEWTABLE table 2 will not be saved because it is uninitialized.NEWTABLE table 1:↓ 0 1 2 3 4 5 6 7 8 9 A B C D E F 00 '00010203A309E57FF9EC140AC8787578'x 10 '09204013A5E008E71819C6C51C1D1E1F'x 20 'C7FCE9E2E40A171BEAEBE8EFEE050607'x 30 'C9E616F4F6F2FB04FFD6DCA2B6A7501A'x 40 '20E1EDF3FAF1D1AABABFA22E3C282B7C'x 50 '265FACBDBCA1ABBB5F5F21242A293BAC'x 60 '2D2F5FA6A6A6A62B2BA6A62C255F3E3F'x 70 'A62B2B2B2B2B2B2D2D603A2340273D22'x 80 '2B6162636465666768692D2BA6A62B2B'x 90 '2D6A6B6C6D6E6F7071722DA62D2B2D2D'x A0 '2D7E737475767778787A2D2B2B2B2B2B'x B0 '2B2B2B5F5FA65F5F5FDF5FB65F5FB55F'x C0 '7B4142434445464748495F5F5F5F5F5F'x D0 '7D4A4B4C4D4E4F5051525F5F5FB15F5F'x E0 '5C83535455565758595A5F5FF75F5FB0'x F0 '30313233343536373839B75F6EB25F5F'x

出力詳細

位置10 (11バイト目)では、縦矢印が変換テーブルへの変更の開始位置を示しています。
11バイト目では、10進値の20 (16進値の14)で16進値のC4が置き換えられます。
12バイト目では、10進値の10 (16進値の0A)で16進値の0Bが置き換えられます。
13バイト目では、10進値の200 (16進値のC8)で16進値の0Cが置き換えられます。
14バイト目では、文字'x' (16進値の78)で16進値の0Dが置き換えられます。
15バイト目および16バイト目では、文字'ux' (16進値の75と78)で16進値の0Eと0Fが置き換えられます。
17バイト目、18バイト目および19バイト目では、16進値の092040で16進値の101112が置き換えられます。
前のページ|次のページ|ページの先頭へ