包含游標的當前水平位置。
$x
$x
包含游標的當前水平位置。將字元寫入裝置時,caché會更新$x
以反映水平游標位置。
輸出的每個可列印字元將x加1
。回車符
(『as
cii13
『)或換
頁符(『
asci
i12『)
將『
x加1。回車符(`ascii 13`)或換頁符(`ascii 12`)將`
x加1。回車
符(『a
scii
13『)
或換頁符
(『as
cii1
2『)將
『x`重置為0(零)。
$x
是16位無符號整數。
可以使用set
命令為$x
和$y
賦值。例如,可以使用特殊的轉義序列來改變物理游標位置,而不更新$x
和$y
的值。在這種情況下,在使用轉義序列之後,使用set
將正確的值分配給$x
和$y
。
國家語言支援(nls)實用程式$x/$y
選項卡定義當前區域設定的$x
和$y
游標移動字元。
下表顯示了不同字元對$x
的影響。
echoed character
ascii code
effect on $x
12
$x=0
13
$x=0
10
$x=$x
8
$x=$x-1
9
$x=$x+1
任何可列印的ascii字元
32-126
$x=$x+1
不可列印的字元(如轉義序列)
127-255
參考 caché objectscript.
open
和use
命令的s(ecret)協議關閉回顯。它還可以防止$x
在輸入過程中被更改,因此它指示真實的游標位置。
write $char()
更改$x
。write *
不會更改$x
。例如,write $x,"/",$char(8),$x
執行退格(刪除/字元)並相應地重置$x
,返回01。相反,write $x,"/",*8,$x
執行退格鍵(刪除/字元),但不重置$x
;它返回02。
使用write*
,可以向終端傳送控制序列,$x
仍將反映真實游標位置。由於某些控制序列確實會移動游標,因此可以使用set
命令直接設定$x
。例如,以下命令將游標移動到數字vt100終端(或等效終端)上的列20和行10,並相應地設定$x
和$y
:
/// d ##class(pha.test.specialvariables).x()
classmethod x()
(pha.test.specialvariables).x
()100
裝置執行但不輸出的ansi標準控制序列(如轉義序列)可能會在$x
和$y
值與真實游標位置之間產生差異。要避免此問題,請使用write*
(整數表示式)語法並指定字串中每個字元的ascii值。例如,不使用:
write !
,$char(27
)_"[1m"
write !
,$x
使用此等效表:
write !,*
27,*91
,*49,
*109
write !
,$x
通常,在顯式移動游標的任何轉義序列之後,應更新$x
和$y
以反映實際游標位置。
可以使用%system.process類的dx()
方法設定$x
如何處理當前程序的轉義序列。可以通過設定config.miscellous
類的dx
屬性來建立系統範圍的預設行為。
當使用write
命令向客戶端或伺服器tcp裝置傳送資料時,caché首先將資料儲存在緩衝區中。它還更新$x
以反映緩衝區中的字元數。此計數中不包括ascii字元和
,因為它們被視為記錄的一部分。
如果使用寫入重新整理$x
緩衝區!命令時,caché會將$x
重置為0,並將$y
值遞增1。如果使用write#
命令重新整理$x
和$y
緩衝區,則caché會將ascii字元作為單獨的記錄寫入,並將$x
和$y
都重置為0。
第二十二章 Teamware需求
teamware正如他的名字一樣,是乙個團隊使用的groupware。groupware的定義是 teamware的功能需求 公共功能 使用者管理 角色管理 客戶管理 crm 專案管理 安全 授權和認證 業務功能 公告欄 notice 位址本 address book todo列表 todo lis...
第二十二章 Cach 定義資料型別類
定義資料型別類 在資料型別類中定義類方法 在資料型別類中定義例項方法 資料型別類的用途是用作物件類中的文字屬性的型別。資料型別類提供以下功能 資料型別類在許多方面與其他類不同 由於了解一些內部細節很有用,因此本節簡要討論資料型別類的工作方式。如前所述,資料型別類的用途是用作屬性的型別,特別是在擴充套...
第二十二章 橋接模式
很多情況下用繼承會帶來麻煩。比如,物件的繼承關係是在編譯時就定義好了的,所以無法在執行時改變從父類繼承的實現。子類的實現與它的父類有非常緊密的依賴關係,以至於父類實現中的任何變化必然會導致子類發生變化。當你需要復用子類時,如果繼承下來的實現不適合解決新的問題,則父類必須重寫或被其他更適合的類替換。這...