上一頁|下一頁

TRANTAB 程序

概念: TRANTAB 程序

瞭解 PROC TRANTAB 的轉譯表格和字元集

轉譯表格中的第 k 個元素對應至已排序字元集的第 k 個元素。例如,轉譯表格中的位置 00 (即位元組 1) 包含對應至已排序字元集之第一個元素的編碼值。若要決定字元在作業環境之字元集中的位置,請使用 SAS 函數 RANK。下列範例顯示如何使用 RANK:
data _null_;
x=rank('a');
put "The position of a is " x ".";
run;
SAS 日誌會列印下列訊息:The position of a is 97.
轉譯表格中的每個位置都會包含一個介於 0 ('00'x) 到 255 ('FF'x) 範圍內的十六進位數字。十六進位值的結尾一律為 x。您可以表示一或多個用引號括住且後接一個 x 的連續十六進位值。例如,三個連續十六進位值的字串可以寫為 '08090A'x。SAS 日誌會將轉譯表格的每列顯示為 16 個用引號括住且後接一個 x 的十六進位值。SAS 日誌也會在垂直和水平邊界中列出對應至表格中位置的參考數字。 檢視轉譯表格 顯示 SAS 日誌如何顯示轉譯表格。

使用 PROC TRANTAB 儲存轉譯表格

當您使用 PROC TRANTAB 來建立自訂的轉譯表格時,程序會自動將表格儲存至 SASUSER.PROFILE 目錄。這可讓您使用自訂的轉譯表格,而不影響其他使用者。當您在 SORT 程序或 GOPTIONS 陳述式中指定轉譯表格時,軟體會先查看 SASUSER.PROFILE 目錄,以尋找該表格。如果指定的轉譯表格不在 SASUSER.PROFILE 目錄中,則軟體會查看 SASHELP.HOST 目錄。
如果您想要讓所建立的轉譯表格可供全域存取,請讓 SAS 安裝代表將表格從 SASUSER.PROFILE 目錄 (使用 CATALOG 程序) 複製至 SASHELP.HOST 目錄。如果在該處找不到表格,則軟體會繼續搜尋 SASHELP.LOCALE 中是否有此表格。

使用 PROC TRANTAB 修改 SAS 轉譯表格

如果 SAS 提供的轉譯表格不符需求,則可以使用 PROC TRANTAB 對其進行編輯,並建立新的表格。亦即,您可以發出可指定 SAS 表格的 PROC TRANTAB 陳述式,並編輯表格,然後使用 SAVE 陳述式來儲存表格。修改過的轉譯表格會儲存在 SASUSER.PROFILE 目錄中。如果您是 SAS 安裝代表,則可以使用 PROC TRANTAB 來修改轉譯表格,然後使用 CATALOG 程序,將修改過的表格從 SASUSER.PROFILE 目錄複製至 SASHELP.HOST 目錄,如下列範例所示:
proc catalog c=sasuser.profile;
copy out=sashelp.host entrytype=trantab;
run;
只有在您具有該資料館和 SASHELP.HOST 目錄的更新 (或寫入) 權時,才能使用 PROC TRANTAB 來修改該目錄中儲存的轉譯表格。

在 PROC TRANTAB 外部使用轉譯表格

在 SORT 程序中使用轉譯表格

PROC SORT 使用轉譯表格來決定排序要使用的定序序列。您可以使用 PROC SORT 的 SORTSEQ= 選項來指定替代轉譯表格。例如,如果作業環境預設使用 EBCDIC 序列來進行排序,而您想要使用 ASCII 序列來進行排序,則可以發出下列陳述式來指定 ASCII 轉譯表格:
proc sort sortseq=ascii;
run;
您也可以使用 PROC TRANTAB 來建立自訂的轉譯表格,以及使用 PROC SORT 來指定新表格。此表格適用於想要指定非美式英文語言的排序序列。
請參閱 使用不同的轉譯表格進行排序,以取得使用轉譯表格以不同方式來排序資料的範例。如需可用於排序之表格和 SORTSEQ= 選項的詳細資訊,請參閱 SORTSEQ= 系統選項:UNIX、Windows 和 z/OS

搭配使用轉譯表格與 CPORT 和 CIMPORT 程序

CPORT 和 CIMPORT 程序使用轉譯表格來轉譯從某個作業環境匯出並匯入至另一個作業環境之目錄項目中的字元。 您可以在 PROC CPORT 的 TRANTAB 陳述式中,指定所提供轉譯表格或自訂轉譯表格的名稱。如需詳細資訊,請參閱「CPORT 程序」中的 TRANTAB 陳述式

搭配使用轉譯表格與遠端資料館服務

當您存取 SAS 8 遠端資料時,遠端資料館服務 (RLS) 會使用轉譯表格來轉譯字元。當您在兩個使用不同編碼標準的作業環境之間傳輸或共用檔案時,SAS/CONNECTSAS/SHARE 軟體會使用轉譯表格來轉譯字元。
附註: 如需詳細資訊,請參閱<TS-706:如何使用 %lswbatch 巨集>http://support.sas.com/techsup/technote/ts706.pdf

SAS/GRAPH 軟體中使用轉譯表格

SAS/GRAPH 軟體中,轉譯表格最常用於 IBM 作業環境,而在 IBM 作業環境中,因為圖形命令必須離開使用 EBCDIC 表示法的 IBM 作業環境,但必須到達使用 ASCII 表示法的非同步圖形裝置,所以需要表格。 特別的是,SAS/GRAPH 軟體會以 ASCII 表示法內部建置這些裝置的命令資料流,但是必須先將命令轉換為 EBCDIC 表示法,才能將命令提供給通訊軟體以傳輸至裝置。SAS/GRAPH 軟體內部使用轉譯表格,進行從 ASCII 到 EBCDIC 的初始轉換。通訊軟體接著會在命令資料流到達圖形裝置之前,先將命令資料流轉譯回 ASCII 表示法。
轉譯表格是作業環境特有的。在大部分情況下,您可以僅使用預設轉譯表格 SASGTAB0 或其中一個 SAS 提供的圖形轉譯表格。不過,如果這些表格無法正確地執行所有轉譯,則您可以使用 PROC TRANTAB 來建立專屬的轉譯表格。SASGTAB0 表格在發現非美式英文語言的字元時,可能無法正確地執行轉譯。
若要指定 SAS/GRAPH 軟體的替代轉譯表格,您可以在 GOPTIONS 陳述式中使用 TRANTAB= 選項,或修改裝置項目中的 TRANTAB 裝置參數。例如,下列 GOPTIONS 陳述式指定 GTABTCAM 圖形轉譯表格:
goptions trantab=gtabtcam;
SAS/GRAPH 軟體中所用的轉譯表格會執行裝置到作業 環境的轉譯和作業環境到裝置 的轉譯。因此,轉譯表格包含 512 個位元組,而第一組 256 個位元組用來執行裝置到作業環境的轉譯 (在 IBM 大型主機上,是 ASCII 到 EBCDIC),而第二組 256 個位元組用來執行作業環境到裝置的轉譯 (在 IBM 大型主機上,是 EBCDIC 到 ASCII)。針對 PROC TRANTAB,轉譯表格中進行裝置到作業環境轉譯的區域視為表格 1,而作業環境到裝置轉譯的區域視為表格 2。請參閱 檢視轉譯表格,以取得顯示表格之兩個區域的 ASCII 轉譯表格清單 (SAS 提供的轉譯表格)。
在非 IBM 大型主機的作業環境上,轉譯表格可以用來轉譯資料流中由驅動程式所建立的特定字元。 例如,如果驅動程式一般會在資料流中產生垂直列,但是您想要產生另一個字元以取代垂直列,則可以建立將垂直列轉譯為替代字元的轉譯表格。
如需如何在 SAS/GRAPH 軟體中使用 TRANTAB= 選項來指定轉譯表格的詳細資料,請參閱 SAS/軟體:參考 6.1 第 1 卷和第 2 卷。
SAS/GRAPH 軟體也會使用索引鍵對應和裝置對應,以將鍵盤所產生的字碼對應至指定的字元,以及將字元字碼對應至圖形輸出裝置所需的字碼。這些對應是 SAS/GRAPH 軟體特有的。如需詳細資訊,請連絡 SAS Institute 的技術支援部門。
上一頁|下一頁|頁面頂端