共用方式為


如何使用空格填充大型主機字元字串

您可以定義字串的屬性,讓交易整合器 (TI) 執行階段環境添加空白字元,以填充字串在大型主機中的表示格式,而不是依賴於 Null 終止字元。

若要使用空格字元或 Null 終止字元

  1. 在 Microsoft Visual Studio 中,以滑鼠右鍵按兩下物件,然後按兩下 [ 屬性]。

  2. 在 [屬性] 窗格中的 [主機數據類型資訊] 下,按兩下 [字串分隔]。

  3. 選擇 以空格填充以空字元結尾

    下表描述當轉換成所指示字串類型時,每個分隔選項(空格填補Null 終止)會發生什麼情況。

字串作業的類型 每個字串分隔作業類型會發生什麼事
轉換成EBCDIC字串 空格填補。 TI 運行環境會在字串結尾新增單位元組空格字元,直到 PIC X 格式化的字串中的所有位元組都填滿為止。
以 null 終止。 如果位元組的 PIC X 計數中有空間,TI 運行時間環境會將單一 Null 字元新增至字串結尾。
從EBCDIC字串轉換 空格填補。 TI 執行環境會移除字串結尾的單字節空格字元。
以 null 終止。 TI 運行時間環境會從字串開頭掃描,並在字串中遇到的第一個 Null 字元停止轉換。
轉換成 DBCS 字串 空格填補。 TI 執行時間環境會將雙位元組空格字元新增至字串結尾,直到 PIC G 格式化字串中的所有字元都填滿為止。
以 null 終止。 如果位元組的 PIC G 計數中有空間,TI 執行時環境會在字元串結尾新增一個雙位元組字元集 (DBCS) 的空字元。
從 DBCS 字串轉換 空格填補。 TI 運行時環境會從字串結尾移除雙字節空格字元。
以 null 終止。 TI 執行時環境會從字串開頭開始掃描,並在字串中遇到的第一個 DBCS 空字元時停止轉換。
轉換成混合字串 加上空格 TI 執行時間環境會將單位元組空格字元新增至字串結尾,直到 PIC X 格式化字串中的所有位元組都填滿為止。 如果 UNICODE 字串中的終止字元對應至 DBCS 字元,TI 運行時間環境會在新增空白字元之前新增 SI 字元。
以 null 終止。 如果 PIC X 計數中有空間,TI 執行環境會將單一位元組 Null 字元新增至字串結尾。 如果 UNICODE 字串中的終止字元對應至 DBCS 字元,TI 運行時間環境會在新增 Null 字元之前新增 SI 字元。
從混合字串轉換 空格填補。 TI 執行環境會從字串結尾移除最後的單位元組和雙位元組空格字元。 當它去除空格字元時,TI 運行時間環境會將任何終止的 SI 字元視為空格。
以 null 終止。 TI 執行環境會從字串的開頭掃描,並在遇到的第一個空字元(無論其寬度)停止轉換。

主機緩衝區中最後一個且標示為 last 為變數的字串會發生特殊處理。 例如:

  • 空格填補。 轉換成擴充二進位編碼十進位交換碼 (EBCDIC) 字串時,字串會以包含緩衝區的長度計數終止,因此不包含額外的空格字元。 從EBCDIC字串轉換時,緩衝區會被視為由包含緩衝區的長度計數終止;然後會檢查字串是否有空白填補。 主機可以將這個字串以空白填充來傳送,使其延伸超過有效數據範圍,或不進行空白填充,而是將字串的最後一個有效字元放置在包含緩衝區的最後一個位置。 空格字元取決於字串類型(單引號、雙引號或混合)。

  • 以 null 終止。 轉換成 EBCDIC 字串時,字串會依原樣傳送。 TI 運行時間環境會檢查字串的長度,然後檢查是否傳送確切的字元數。 換句話說,傳送的字元數等於字串的長度。 字串結尾不會附加 Null 終止符或空格。

    下表顯示當 String 分隔 屬性設定為 Space PaddedNull 結尾 並結合變數大小設定時,字串分隔的運作方式。 所有範例都假設大型主機數據宣告為 PIC X(5)。 “b” 代表空格,“?” 代表未指派的數據,而 “\0” 代表 Null。

字串分隔設定為Space Padded且未使用中的變數大小

工作站 方向 主機
ABC\0 至主機 'ABCbb'
ABCb 至主機 'ABCbb'
CBA 從主機端 'CBAbb'
CBA\0? 從主機 CBA\0?
CBA\0 從主機 'CBA\0b'

字串分隔設定為Space Padded和可變大小使用中

工作站 方向 主機
ABC\0 至主機 'ABC'
Abb 主辦 'Abb'
中國籃球協會 來自主機 'CBAbb'
CBA\0? 來自主機 CBA\0?
CBA\0 從主機 'CBA\0b'

字串分隔設定為以 Null 終止且變數大小未啟用

工作站 方向 主機
ABC\0 至主機 ABC\0?
ABC 從主機 'ABC\0?'
ABCbb 從主機 'ABCbb'
ABC 從主機 ABC\0\0'

字串界定設定為 Null 終止且變數大小啟用中

工作站 方向 主機
ABC\0 至主機 'ABC\0'
ABC 從主機 'ABC\0?'
ABCbb 從主機 'ABCbb'
ABC 從主機 ABC\0\0'

另請參閱

大型主機字元字串和代碼頁