TRANTAB Procedure
Example 4: Editing by Using a Quoted Character for Starting Position
Features: |
LIST statement
LOAD statement
REPLACE statement
SAVE statement
|
This example creates
a new translation table by editing the already fixed ASCII translation
table. The first occurrence of the hexadecimal equivalent of the quoted
character that was specified in the REPLACE statement is the starting
position for the changes to the table. This method differs from
Editing by Specifying a Decimal Value for Starting Position in that you do not need to know the exact position at which
to start the changes to the table. PROC TRANTAB finds the correct
position for you.
The edited table is
saved under a new name. Horizontal arrows in both SAS logs denote
the edited rows in the translation table.
All examples were produced
in the UNIX environment.
Program 1: Display the Original Table
options nodate pageno=1 linesize=80 pagesize=60;
proc trantab table=ascii;
list one;
Program Description
Set the system options and specify which translation table
to edit.
options nodate pageno=1 linesize=80 pagesize=60;
proc trantab table=ascii;
Display the translation table. The LIST statement displays
the original translation table in the SAS log.
SAS Log
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
Program 2: Edit the Table
replace 'a' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
save table=upper;
load table=upper;
list one;
Program Description
Replace characters in the translation table, starting
at a specified position. The REPLACE statement finds the first occurrence
of the hexadecimal "a" (which is 61) and replaces it, and the next
25 hexadecimal values, with the hexadecimal values for uppercase "A"
through "Z."
replace 'a' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
Save your changes. The SAVE statement saves the changes
made to the ASCII translation table under the new table name UPPER.
The stored contents of the ASCII translation table remain unchanged.
Load and display the translation table. The LOAD statement
loads the edited translation table UPPER. The LIST statement displays
the translation table UPPER in the SAS log.
load table=upper;
list one;
SAS Log
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
Copyright © SAS Institute Inc. All rights reserved.