概觀 (WRITE FORMATS 指令)
WRITE FORMATS 變更變數寫入格式。 寫入格式是輸出格式,並控制 WRITE 指令寫入值的格式。
WRITE FORMATS 只會變更寫入格式。 若要變更列印格式,請使用 PRINT FORMATS 指令。 若要使用單一規格變更列印及寫入格式,請使用 FORMATS 指令。 如需在資料定義期間指派輸入格式的相關資訊,請參閱 DATA LIST。 如需可用格式和規格的詳細資訊,請參閱 變數類型和格式。
基本規格
基本規格是變數清單,後面接著括弧中的新格式規格。 所有指定的變數都會接收新格式。
指令語法的規則
- 您可以指定多個變數或變數清單,後面接著以括弧括住的格式。 在每一個變數清單之後只能指定一種格式。 為求明確,每一組規格都可以用斜線區隔。
- 您可以使用關鍵字
TO來參照作用中資料集中的連續變數。 - 指定的格式寬度必須包含足夠的位置,以容納任何標點符號字元,例如小數點、逗點、錢幣符號或日期和時間定界字元。 (這不同於在
DATA LIST上指派 輸入 格式,其中程式會自動展開輸入格式,以在輸出中容納標點符號字元。) - 自訂貨幣格式 (
CCw、CCw.d) 必須先在SET指令上定義,才能在WRITE FORMATS上使用。 對於字串變數,您只能使用WRITE FORMATS在A與AHEX格式之間切換。WRITE FORMATS無法用來變更字串變數的長度。 若要變更字串變數的長度,請使用ALTER TYPE指令。
作業
- 與大部分轉換不同,
WRITE FORMATS會在指令序列中發現它時立即生效。 應特別注意它在指令中的位置。 如需相關資訊,請參閱主題 指令順序 。 - 未在
WRITE FORMATS上指定的變數會將其現行格式保留在作用中資料集內。 若要查看現行格式,請使用DISPLAY指令。 - 新的寫入格式僅在作用中資料集內變更,且在階段作業期間有效,或直到使用
WRITE FORMATS或FORMATS指令再次變更為止。 原始資料檔中的寫入格式 (如果有的話) 不會變更,除非使用SAVE或XSAVE指令重新儲存檔案。 - 使用轉換指令建立的新數值變數會獲指派
F8.2的預設列印及寫入格式 (或在SET的FORMAT次指令上指定的格式)。WRITE FORMATS指令可用來變更新變數的寫入格式。 - 以轉換指令建立的新字串變數,會獲指派在宣告變數的
STRING指令上指定的格式。WRITE FORMATS無法用來變更新字串變數的格式。 - 只有在使用
LIST和TABLES程序以及PRINT和WRITE轉換指令時,日期和時間格式才有效。 不論指定的日期和時間格式為何,所有其他程序都使用F格式。 如需相關資訊,請參閱主題 日期和時間格式 。 - 如果數值資料值超出其寬度規格,則程式仍會嘗試寫入某個值。 首先,程式會對小數值進行四捨五入,然後移除標點符號字元,然後嘗試科學記號表示法,最後,如果仍然沒有足夠的空間,則會產生星號,指出值存在但無法以指派的寬度寫入。