腮腺炎语言FOR循环相关

时间:2010-11-25 11:32:19

标签: mumps

如果我定义For K =“ABC”:1:3现在什么是“ABC”的值,如果我采取任何“字符串”,循环如何执行“ABC”或代替ABC,增量如何字符串“ABC”。

的BHA

4 个答案:

答案 0 :(得分:5)

MUMPS通过从左到右读取字符串将字符串转换为数字值。它将使用任何数字及其在结果数字中遇到的第一个句点,它将停在第一个非数字字符处。

字符串到数字转换的示例:

字符串 - >数
“1234” - > 1234
“1234A” - > 1234
“1234A4321” - > 1234
“” - > 0
“A” - > 0
“ABC” - > 0

答案 1 :(得分:3)

如果您可以访问MUMPS系统,那么找到它是微不足道的。只需运行以下例程,例如在3.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 森

答案 2 :(得分: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 =“姓名|年龄|性别”,您可以通过以下方式写出每个字段:

S STR="NAME|AGE|SEX"
F I=1:1:$L(STR,"|") W $P(STR,"|",1),!

这里$ L将返回3并且for循环将迭代3次。

$ P函数($ Piece)将使用管道符(|)作为字段分隔符从STR中提取每个字段,并确定要返回的字段。

希望这会有所帮助......

igotmumps

答案 3 :(得分:1)

非常抱歉这种格式化。 Mea culpa!

程序清单应该是:

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