【发布时间】:2011-05-19 21:11:05
【问题描述】:
如果我现在定义 For K="ABC":1:3 "ABC" 的值是什么,循环如何执行 "ABC" 或者如果我采用任何 "string" 来代替那个 ABC,如何增加字符串“ABC”。
大佬
【问题讨论】:
标签: mumps
如果我现在定义 For K="ABC":1:3 "ABC" 的值是什么,循环如何执行 "ABC" 或者如果我采用任何 "string" 来代替那个 ABC,如何增加字符串“ABC”。
大佬
【问题讨论】:
标签: mumps
MUMPS 通过从左到右读取字符串将字符串转换为数值。它将使用任何数字以及在结果数字中遇到的第一个句点,并将在第一个非数字字符处停止。
字符串到数字的转换示例:
字符串 -> 数字
“1234”-> 1234
“1234A”-> 1234
“1234A4321”-> 1234
"" -> 0
“A”-> 0
“ABC”-> 0
【讨论】:
如果您可以访问 MUMPS 系统,则很容易找到。只需运行以下例程,它可以驻留在例如在 for3.m 文件中:
for3
; routine to test FOR command
FOR K="ABC":1:3 WRITE "K=",K,! QUIT
在我的 Linux 机器上,我安装了 GT.M。你可以在 http://sourceforge.net/projects/fis-gtm/
这是输出:
$ gtm -run for3
K=0
K=1
K=2
K=3
HTH 内森
【讨论】:
如果你想遍历字符串“ABC”,你可以这样做:
S STR="ABC"
F I=1:1:$L(STR) W $E(STR,I,I),!
$L ($Length) 函数将返回 STR 的长度。在这种情况下为 3,因此 for 循环只会迭代 3 次。
$E ($Extract) 函数将提取 STR 的子字符串。 $E 的第一个参数是要从中提取的字符串。第二个参数是开始位置,第三个参数是子串的结束位置。在这种情况下,我指定了相同的开始和结束位置,以便每次提取一个字符。
您还可以将字段分隔符指定为 $L 函数的第二个参数。因此,如果 STR="Name|Age|Sex" 您可以通过以下方式写出每个字段:
S STR="NAME|AGE|SEX"
F I=1:1:$L(STR,"|") W $P(STR,"|",1),!
这里 $L 将返回 3,for 循环将迭代 3 次。
$P 函数 ($Piece) 将使用竖线字符 (|) 作为字段分隔符从 STR 中提取每个字段,然后我确定要返回的字段。
希望这会有所帮助...
鬼脸
【讨论】:
非常抱歉格式混乱。过失!
节目清单应该是:
for3
; routine to test FOR command
FOR K="ABC":1:3 WRITE "K=",K,! QUIT
输出应该是:
$ gtm -run for3
K=0
K=1
K=2
K=3
【讨论】: