我正在与基于fis-gtm的腮腺炎系统接口,我需要在我的本地Linux安装上使用一些测试数据(CENTOS 7上的fis-gtm V6.2)。
所以我阅读了手册并提出了: -
set nword(1)="one"
set nword(2)="two"
set nword(3)="three"
set nword(4)="four"
set nword(5)="five"
set nword(6)="six"
set nword(7)="seven"
set nword(8)="eight"
set nword(9)="nine"
set nword(10)="ten"
set rn=^runcount+1
FOR i=1:1:10 DO
. FOR j=1:1:10 DO
.. set val="run:"_nword(rn)_" transaction:"_nword(i)_" update:"_nword(j)
.. w val,!
这看起来很简单 - 但我无法接受内部DO循环。
无论我尝试什么,我都会得到: -
GTM>. FOR j=1:1:10 DO
%GTM-E-CMD, Command expected but not found
. FOR j=1:1:10 DO
^-----
在放弃并下载perl绑定之前,我基本上浪费了整整一个上午。
是否可以将嵌套DO与简单的FOR结合起来? 如果是这样我做错了什么?
奇怪 - “。”如果您定义例程并编译而不是直接执行,则类型嵌套选项有效!
最终解决了。
答案 0 :(得分:7)
在FOR迭代参数之后不应该有两个空格,只有一个空格。
FOR i=1:1:10 DO
. FOR...
答案 1 :(得分:0)
我对腮腺炎一无所知,但这是我在网上发现的片段。也许它会有所帮助。
NESTLOOP
;.../loops/nested
;set up the 2D array with random values
NEW A,I,J,K,FLAG,TRIGGER
SET K=15 ;Magic - just to give us a size to work with
SET TRIGGER=20 ;Magic - the max value, and the end value
FOR I=1:1:K FOR J=1:1:K SET A(I,J)=$RANDOM(TRIGGER)+1
;Now, search through the array, halting when the value of TRIGGER is found
SET FLAG=0
SET (I,J)=0
FOR I=1:1:K Q:FLAG W ! FOR J=1:1:K WRITE A(I,J),$SELECT(J'=K:", ",1:"") SET FLAG=(A(I,J)=TRIGGER) Q:FLAG
KILL A,I,J,K,FLAG,TRIGGER
QUIT