概觀 (WRITE FORMATS 指令)

WRITE FORMATS 變更變數寫入格式。 寫入格式是輸出格式,並控制 WRITE 指令寫入值的格式。

WRITE FORMATS 只會變更寫入格式。 若要變更列印格式,請使用 PRINT FORMATS 指令。 若要使用單一規格變更列印及寫入格式,請使用 FORMATS 指令。 如需在資料定義期間指派輸入格式的相關資訊,請參閱 DATA LIST。 如需可用格式和規格的詳細資訊,請參閱 變數類型和格式

基本規格

基本規格是變數清單,後面接著括弧中的新格式規格。 所有指定的變數都會接收新格式。

指令語法的規則

  • 您可以指定多個變數或變數清單,後面接著以括弧括住的格式。 在每一個變數清單之後只能指定一種格式。 為求明確,每一組規格都可以用斜線區隔。
  • 您可以使用關鍵字 TO 來參照作用中資料集中的連續變數。
  • 指定的格式寬度必須包含足夠的位置,以容納任何標點符號字元,例如小數點、逗點、錢幣符號或日期和時間定界字元。 (這不同於在 DATA LIST上指派 輸入 格式,其中程式會自動展開輸入格式,以在輸出中容納標點符號字元。)
  • 自訂貨幣格式 (CCwCCw.d) 必須先在 SET 指令上定義,才能在 WRITE FORMATS上使用。
  • 對於字串變數,您只能使用 WRITE FORMATSAAHEX 格式之間切換。 WRITE FORMATS 無法用來變更字串變數的長度。 若要變更字串變數的長度,請使用 ALTER TYPE 指令。

作業

  • 與大部分轉換不同, WRITE FORMATS 會在指令序列中發現它時立即生效。 應特別注意它在指令中的位置。 如需相關資訊,請參閱主題 指令順序
  • 未在 WRITE FORMATS 上指定的變數會將其現行格式保留在作用中資料集內。 若要查看現行格式,請使用 DISPLAY 指令。
  • 新的寫入格式僅在作用中資料集內變更,且在階段作業期間有效,或直到使用 WRITE FORMATSFORMATS 指令再次變更為止。 原始資料檔中的寫入格式 (如果有的話) 不會變更,除非使用 SAVEXSAVE 指令重新儲存檔案。
  • 使用轉換指令建立的新數值變數會獲指派 F8.2 的預設列印及寫入格式 (或在 SETFORMAT 次指令上指定的格式)。 WRITE FORMATS 指令可用來變更新變數的寫入格式。
  • 以轉換指令建立的新字串變數,會獲指派在宣告變數的 STRING 指令上指定的格式。 WRITE FORMATS 無法用來變更新字串變數的格式。
  • 只有在使用 LISTTABLES 程序以及 PRINTWRITE 轉換指令時,日期和時間格式才有效。 不論指定的日期和時間格式為何,所有其他程序都使用 F 格式。 如需相關資訊,請參閱主題 日期和時間格式
  • 如果數值資料值超出其寬度規格,則程式仍會嘗試寫入某個值。 首先,程式會對小數值進行四捨五入,然後移除標點符號字元,然後嘗試科學記號表示法,最後,如果仍然沒有足夠的空間,則會產生星號,指出值存在但無法以指派的寬度寫入。