2

如果我现在定义 For K="ABC":1:3 什么是“ABC”的值,循环如何执行“ABC”或者如果我采用任何“字符串”而不是那个 ABC,如何增加字符串“美国广播公司”。

巴斯

4

4 回答 4

5

MUMPS converts strings to numeric values by reading through the string from left to right. It will use any numbers and the first period it comes across in the resultant number, and it will stop at the first non-numeric character.

Examples of string to number conversions:

String -> Number
"1234" -> 1234
"1234A" -> 1234
"1234A4321" -> 1234
"" -> 0
"A" -> 0
"ABC" -> 0

于 2010-11-26T04:26:34.373 回答
3

如果您可以访问 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 弥敦道

于 2011-01-19T13:32:30.273 回答
2

如果你想遍历字符串 "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 中提取每个字段,然后我确定要返回的字段。

希望这可以帮助...

流行性腮腺炎

于 2011-02-03T19:39:17.530 回答
1

非常抱歉的格式化。过失!

程序清单应该是:

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
于 2011-01-19T13:35:36.367 回答