Cache学习(六)常用函数
1.Set 设置变量
set s=3
2.write 输出变量
w s
3.kill
删除所有变量或一些指定的变量或所有变量除了指定的变量。
4.new
初始化变量。
5.Do(d):执行命令
6.Quit(q): 结束执行一个函数并返回一个值
7.$Horolog
$Horolog 包含了时间和日期,它们由逗号分开。第一部分是日期的数字,它是从1840 年12 月31 日开始计算日期的数字。第二部分是秒的数字,它是从午夜开始计算的。Global中的日期时间 都是以数字的形式存储的。
8.$Piece(p)
格式::$Piece(expression,delimiter [,from[,to]])
返回一个或者多个被分隔符分开的子串。
9.$Order(o)
格式:$Order(variable[,direction])
按照指定的方向(默认升序)循环,知道有第一个返回一个变量同级的上一个或下一个索引下标,没有则返回空.
指定返回节点的上一个节点时,即使上一个节点不存在也会照例返回返回节点, 只要不大于返回节点的值确保在返回节点之前即可,一般给这个值0就行了
例如,$ORDER(^client(4,1,6))返回下一个第三级下标。如果变量^client(4,1,7)存在,则为7。
s cnt=$o(PLIST(""),-1) //取PLIST最大标号
10.$get(g)
返回一个变量的值
如果变量存在则返回变量本身,不存在则返回空
11.$data(d)
判断变量是否存在
0:没子节点没值,Global不存在 (00) 节点不存在
1:没子节点有值 (01) 根据rowid存储数据的节点
10:有子节点,但是没有值 索引节点
11:有子节点且有值 0层节点,存储统计有多少条数据的根节点
12.$length(l)
格式:Length(“ABCD”)
4
Write $Length(“AB/CD/EF”,”/”)
3
13.$lb
$LISTBUILD接受一个或多个表达式,并为每个表达式返回一个包含一个元素的编码列表结构。元素以指定的顺序放置在列表中。元素从1开始计数。
14.SET $lb
SET $LISTBUILD(var1,var2,...)=list
当在SET命令中等号的左侧使用时,$LISTBUILD函数将从列表中提取多个元素作为单个操作。
$LISTBUILD的var参数是用逗号分隔的变量列表,每个变量都接收与其在$LISTBUILD参数列表中的位置相对应的list元素。 var参数不必是现有变量;在SET $LISTBUILD为其分配值时定义该变量。
1..MAC文件是m语言,下面是test111.MAC
1 aa() 2 w "abc" 3 q 0
- 最上面的名字和文件名一致
- 然后是方法名
- 文件名和方法名要顶头写,不能有空格
调用方式:DHC-APP>d aa^test111(),方法名有括号就带括号
2..cls是类文件,方法的写法与上面不一样
1 ClassMethod aa() 2 { 3 w "abc" 4 q 0 5 }
调用方式:DHC-APP>d ##class(web.test111).aa()
3.建立临时Global
1 DHC-APP>set ^TEMP=3//Global物理存储到数据库,terminal关了的话还会有,其他变量会消失 2 DHC-APP>S ^TEMP("A")=1//设置节点 3 4 DHC-APP>s ^TEMP("B")=2
在Global里可以搜索到^TEMP
4.$h日期函数
$ZDate 把$Horolog 格式的日期值按照指定格式显示
+号表示第一个非数字符号前的数字
$ZDateH 是$ZDate 的反函数
$ZTime 把$Horolog 格式的时间值按照指定格式显示。
$ZTimeH $ZTime 的反函数。
1 DHC-APP>w $h 2 63802,58589 3 DHC-APP>w $zd(63802) 4 09/07/2015 5 DHC-APP>w $zd(63802,3) 6 2015-09-07 7 DHC-APP>w +$h 8 63802 9 DHC-APP>w $zd(+$h,3) 10 2015-09-07 11 DHC-APP>w $zdh("2015-9-7",3) 12 63802 13 DHC-APP>w $zdh("2024-9-7",3)-$zdh("2015-9-7",3) 14 3288 15 DHC-APP>w $zt(58543) 16 16:15:43 17 DHC-APP>w $zt(58543,2) 18 16:15 19 DHC-APP>w $zt(58543,3) 20 04:15:43PM 21 DHC-APP>w $zt($p($h,",",2)) 22 17:07:50
1 DHC-APP>w $i(^TEMP) 2 4 3 DHC-APP>w $i(^TEMP) 4 5 5 DHC-APP>w $i(^TEMP) 6 6
6.$e截取字符串
1 DHC-APP>s a="abcdef" 2 3 DHC-APP>w $e(a,2) 4 b 5 DHC-APP>w $e(a,2,4) 6 bcd
7.for循环1加到100
1 ClassMethod testfor() 2 { 3 s m=0 4 f i=1:1:100 d 5 .s m=m+i 6 s sum=m 7 q sum 8 } 9 DHC-APP>w ##class(web.test111).testfor() 10 5050
计算有多少个科室
1 ClassMethod testfor() 2 { 3 s m=0 4 s ctlocrowid="" 5 //q和d,f和s空两个空格 6 f s ctlocrowid=$o(^CTLOC(ctlocrowid)) q:ctlocrowid="" d 7 .s m=m+1 8 s sum=m 9 q sum 10 }
8.Terminal查看Global
zw ^STUDENT
9.buildIndices()重建索引指定的类
10.Valuese(:code) :引用变量
11.$zt捕获异常
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现