前のページ|次のページ

TRANTAB プロシジャ

例7: テーブル1とテーブル2の編集

要素:

LISTステートメント

REPLACEステートメント

SAVEステートメント

SWAPステートメント

この例では、変換テーブルの両方の領域を編集する方法を示します。位置256から511までの編集を行うには(テーブル2)、次の操作を実行します。
  • SWAPステートメントを発行して、テーブル2の位置をテーブル1に変更します。
  • 適切なREPLACEステートメントを発行して、テーブル2に対する変更を行います。
  • 再びSWAPステートメントを発行して、テーブルを再配置します。
SASログ内の矢印によって、変更された列と行が示されます。
SASシステムオプションを設定し、変換テーブルを指定します。
   options nodate pageno=1 linesize=80 pagesize=60; proc trantab table=upper;
元の変換テーブルを表示します。このLISTステートメントでは、元のUPPER変換テーブルを表示します。
   list both;

SASログ

次の出力は、元のUPPER変換テーブルです。
NOTE:Table specified is UPPER.UPPER table 1:↓ 0 1 2 3 4 5 6 7 8 9 A B C D E F 00 '000102030405060708090A0B0C0D0E0F'x ← 10 '101112131415161718191A1B1C1D1E1F'x 20 '202122232425262728292A2B2C2D2E2F'x 30 '303132333435363738393A3B3C3D3E3F'x 40 '404142434445464748494A4B4C4D4E4F'x 50 '505152535455565758595A5B5C5D5E5F'x 60 '604142434445464748494A4B4C4D4E4F'x 70 '505152535455565758595A7B7C7D7E7F'x 80 '808182838485868788898A8B8C8D8E8F'x 90 '909192939495969798999A9B9C9D9E9F'x A0 'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF'x B0 'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF'x C0 'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF'x D0 'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF'x E0 'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF'x F0 'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF'x UPPER table 2:↓ 0 1 2 3 4 5 6 7 8 9 A B C D E F 00 '000102030405060708090A0B0C0D0E0F'x ← 10 '101112131415161718191A1B1C1D1E1F'x 20 '202122232425262728292A2B2C2D2E2F'x 30 '303132333435363738393A3B3C3D3E3F'x 40 '404142434445464748494A4B4C4D4E4F'x 50 '505152535455565758595A5B5C5D5E5F'x 60 '60000000000000000000000000000000'x 70 '00000000000000000000007B7C7D7E7F'x 80 '808182838485868788898A8B8C8D8E8F'x 90 '909192939495969798999A9B9C9D9E9F'x A0 'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF'x B0 'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF'x C0 'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF'x D0 'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF'x E0 'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF'x F0 'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF'x
変換テーブル内の文字を指定された開始位置から置き換えます。REPLACEステートメントは開始位置1から開始し、01の現在の値を'0A'で置き換えます。
   replace 1 '0A'x;
テーブル2を編集用に準備します。最初のSWAPステートメントでは、テーブル2を編集できるように配置します。2番目のREPLACEステートメントでは、テーブル1と同じ変更をテーブル2に加えます。
   swap; replace 1 '0A'x;
元の位置にテーブルを保存して表示します。2番目のSWAPステートメントでは、テーブル1とテーブル2を元の位置に戻します。SAVEステートメントでは、デフォルトで変換テーブルの両方の領域を保存します。LISTステートメントでは、テーブルの両方の領域を表示します。
   swap; save; list both;

SASログ

upperテーブル1は変更されています。変換テーブルの両方の領域の2バイト目で、16進値01が16進値'0A'に置き換えられています。この変換が行われたテーブル内の行と列が矢印で示されています。
NOTE:Table specified is UPPER.UPPER table 1:[darr] 0 1 2 3 4 5 6 7 8 9 A B C D E F 00 '000A02030405060708090A0B0C0D0E0F'x <-- 10 '101112131415161718191A1B1C1D1E1F'x 20 '202122232425262728292A2B2C2D2E2F'x 30 '303132333435363738393A3B3C3D3E3F'x 40 '404142434445464748494A4B4C4D4E4F'x 50 '505152535455565758595A5B5C5D5E5F'x 60 '604142434445464748494A4B4C4D4E4F'x 70 '505152535455565758595A7B7C7D7E7F'x 80 '808182838485868788898A8B8C8D8E8F'x 90 '909192939495969798999A9B9C9D9E9F'x A0 'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF'x B0 'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF'x C0 'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF'x D0 'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF'x E0 'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF'x F0 'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF'x UPPER table 2:[darr] 0 1 2 3 4 5 6 7 8 9 A B C D E F 00 '000A02030405060708090A0B0C0D0E0F'x <-- 10 '101112131415161718191A1B1C1D1E1F'x 20 '202122232425262728292A2B2C2D2E2F'x 30 '303132333435363738393A3B3C3D3E3F'x 40 '404142434445464748494A4B4C4D4E4F'x 50 '505152535455565758595A5B5C5D5E5F'x 60 '60000000000000000000000000000000'x 70 '00000000000000000000007B7C7D7E7F'x 80 '808182838485868788898A8B8C8D8E8F'x 90 '909192939495969798999A9B9C9D9E9F'x A0 'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF'x B0 'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF'x C0 'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF'x D0 'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF'x E0 'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF'x F0 'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF'x
前のページ|次のページ|ページの先頭へ