验证模式 MUMPS
Validation Pattern MUMPS
我正在用 M 创建一个程序,它可以读取特定格式的名称输入。一旦用户放置了一个空值,它就会打印出所有的值。我卡住的地方是读入一个全局变量。我期待收到任何意见。
n prompt,val,done
s prompt="Enter a name (LAST,FIRST MI): "
s val="" f in=1:1 s val=$O(^ZNAME(val)) q:val=""
f w !,prompt r val q:val="" d q:done
. i val'?1.A1",".1" "1.A.1(1" "1A) w !,"Invalid name" q
. s val=$GET(^ZNAME)
. s done=1
i val="" q
w !,"You entered: ",val
. s done=1
q
您的代码看起来很奇怪。首先这一行 s val="" f in=1:1 s val=$O(^ZNAME(val)) q:val=""
没有用,只需将所有值排序在全局的第一个下标中。然后,当输入的 val 将通过您的模式时,您的代码应该会失败并出现 UNDEFINED
完成变量错误。最后它从全局 ^ZNAME
获取新值,不管输入什么,它都会一直获取一个值。
我不完全明白你想做什么,但这是我建造的:
- 读名字直到你给一个空名字
- 如果名称遵循某种模式,请将他添加到 ^ZNAME
- 最后打印 ^ZNAME
中的所有名称
给你:
readlist
N prompt,val
S prompt="Enter a name (LAST,FIRST MI): "
F W !,prompt R val Q:val="" D
. I val'?1.A1",".1" "1.A.1(1" "1A) W !,"Invalid name"
. E S ^ZNAME(val)=""
F S val=$O(^ZNAME(val)) Q:val="" D
. W !,"You entered: ",val
Q
示例(使用 GTM):
GTM>D readlist^ZZTEST
Enter a name (LAST,FIRST MI): first,last
Enter a name (LAST,FIRST MI): name,surname
Enter a name (LAST,FIRST MI):
You entered: first,last
You entered: name,surname
GTM>zwr ^ZNAME
^ZNAME("first,last")=""
^ZNAME("name,surname")=""
我正在用 M 创建一个程序,它可以读取特定格式的名称输入。一旦用户放置了一个空值,它就会打印出所有的值。我卡住的地方是读入一个全局变量。我期待收到任何意见。
n prompt,val,done
s prompt="Enter a name (LAST,FIRST MI): "
s val="" f in=1:1 s val=$O(^ZNAME(val)) q:val=""
f w !,prompt r val q:val="" d q:done
. i val'?1.A1",".1" "1.A.1(1" "1A) w !,"Invalid name" q
. s val=$GET(^ZNAME)
. s done=1
i val="" q
w !,"You entered: ",val
. s done=1
q
您的代码看起来很奇怪。首先这一行 s val="" f in=1:1 s val=$O(^ZNAME(val)) q:val=""
没有用,只需将所有值排序在全局的第一个下标中。然后,当输入的 val 将通过您的模式时,您的代码应该会失败并出现 UNDEFINED
完成变量错误。最后它从全局 ^ZNAME
获取新值,不管输入什么,它都会一直获取一个值。
我不完全明白你想做什么,但这是我建造的:
- 读名字直到你给一个空名字
- 如果名称遵循某种模式,请将他添加到 ^ZNAME
- 最后打印 ^ZNAME 中的所有名称
给你:
readlist
N prompt,val
S prompt="Enter a name (LAST,FIRST MI): "
F W !,prompt R val Q:val="" D
. I val'?1.A1",".1" "1.A.1(1" "1A) W !,"Invalid name"
. E S ^ZNAME(val)=""
F S val=$O(^ZNAME(val)) Q:val="" D
. W !,"You entered: ",val
Q
示例(使用 GTM):
GTM>D readlist^ZZTEST
Enter a name (LAST,FIRST MI): first,last
Enter a name (LAST,FIRST MI): name,surname
Enter a name (LAST,FIRST MI):
You entered: first,last
You entered: name,surname
GTM>zwr ^ZNAME
^ZNAME("first,last")=""
^ZNAME("name,surname")=""