通過指令“Strg_TO_Chars”,可将數據類型為 STRING 的字符串複制到 Array of CHAR 或 Array of BYTE 中;或将數據類型為 WSTRING 的字符串複制到 Array of WCHAR 或 Array of WORD 中。該操作隻能複制 ASCII 字符。
在輸入參數 STRG 中指定字符串。這些字符将寫入數據類型為 Array of CHAR / BYTE / WCHAR / WORD 的參數 CHARS 中。
使用參數 PCHARS,可指定目标域中将寫入的起始位置。
PCHARS 的默認值為“0”。當 PCHARS = 0 時,将使用數組下标的下限(如 Array [0..5] of CHAR 的 CHAR[0])。如果數組的下限為負值(例如 Array [-5..5] of CHAR 的 CHAR[-5]),此規則也适用。
下表列出了“Strg_TO_Chars”指令的參數:
二、示例程序當複制操作的目标數組下标起始值為0時,例如Array…[0…9],數據轉換完全正常。
在以下示例中,将 STRING 數據類型的字符串中的字符複制到 Array of CHAR 數據類型的結構中。
将根據 Array of CHAR 數據類型創建一個包含各個字符的結構。CHARS 結構(“arrayCHARS”)的長度為 10 個字符 (Array ... [0..9])。根據參數 PCHARS(“pointerCHARS”)的值“0”,從該結構的第一個字符開始寫入( “0”包含字符串(“string”)的第一個字符)。在字符串(“string”)的字符寫入到結構(“arrayCHARS”)後,待創建結構的最後一個字符将寫入為空。字符串中移動的字符數通過輸出參數 CNT(“countCHARS”)輸出。
看到這裡是不是以為這條指令就是這麼簡單呢,其實并不然。如果改變array的起始值,起始位pChars的值是怎麼設置的呢?接着往下看。
當複制操作的目标數組下标起始值為1時,例如Array…[1…9],數據轉換就出現一點問題。pChars的值設置1,string的第一個字符複制到了數組下标“2”的地址中。
測試結果可見,當下标起始值為1時,pChars的值也設置為1 ,但是轉換完成後,string的第一個字符複制到了數組下标“2”的地址中。
修改pChars的值為0,string的第一個字符複制到了數組下标“1”的地址中。
如果把ArryaChar數組的下标起始值設置為3,即Array[3…12],再來看一下測試結果。pChars的值依然設置從0開始.
轉換完成後的結果依然是從下标的起始值arrayChar[3]開始保存。
繼續将pChars的值設置為1,測試轉換結果。
經過以上測試結果表明,無論目标數組arrayChar的下标起始值是從幾開始,pChars參數都是從0開始計算。
總結:pChars參數下标數值定義為n, n對應arrayChar[n 起始值],arrayChar[n 起始值]就是string字符串中第一個字符的保存地址。例如:目标數組arrayChar[2…10];pChars:=2,字符串第一個字符保存地址就是arrayChar[4]。
各位工控達人們,掌握字符串轉換成字符指令的使用方法了嗎,歡迎留言讨論!
點擊 轉發 加 關注,@豆豆牽着蝸牛在散步!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!