上一頁|下一頁

TRANTAB 程序

範例 4: 使用加上引號的字元作為開始位置來進行編輯

功能:

LIST 陳述式

LOAD 陳述式

REPLACE 陳述式

SAVE 陳述式

此範例會編輯已修正的 ASCII 轉譯表格,以建立新的轉譯表格。REPLACE 陳述式中所指定之加上引號字元的第一個十六進位相等值,就是表格變更的開始位置。此方法與指定開始位置的十進位值來進行編輯的差異在於您不需要知道開始表格變更的確切位置。PROC TRANTAB 會自動找到正確的位置。
編輯過的表格會儲存為新的名稱。這兩個 SAS 日誌中的水平箭頭都表示轉譯表格中的已編輯列。
所有範例都是在 UNIX 環境中產生。

程式 1:顯示原始表格

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

程式描述

設定系統選項並指定要編輯的轉譯表格。
options nodate pageno=1 linesize=80 pagesize=60;
proc trantab table=ascii;
顯示轉譯表格。LIST 陳述式會在 SAS 日誌中顯示原始轉譯表格。
list one;

SAS 日誌

NOTE: Table specified is ASCII.
ASCII 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 '606162636465666768696A6B6C6D6E6F'x ←
70 '707172737475767778797A7B7C7D7E7F'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

程式 2:編輯表格

replace 'a' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
save table=upper;
load table=upper;
list one;

程式描述

取代轉譯表格中從指定的位置開始的字元。REPLACE 陳述式會尋找第一個出現的十六進位 "a" (即 61),並將此值與接下來的 25 個十六進位值取代為大寫 "A" 到 "Z." 的十六進位值
replace 'a' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
儲存變更。SAVE 陳述式會以新的表格名稱 UPPER 儲存對 ASCII 轉譯表格所做的變更。 ASCII 轉譯表格的預存內容維持不變。
save table=upper;
載入並顯示轉譯表格。LOAD 陳述式會載入編輯過的轉譯表格 UPPER。LIST 陳述式會在 SAS 日誌中顯示轉譯表格 UPPER。
load table=upper;
list one;

SAS 日誌

NOTE: Table UPPER
being loaded.
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
上一頁|下一頁|頁面頂端