5

我正在连接一个基于 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 结合起来?如果是这样,我做错了什么?

奇怪的——“。” 如果您定义例程并编译但不能直接执行,则类型嵌套选项有效!

最终解决了。

4

2 回答 2

7

FOR 迭代参数后不应有两个空格,只有一个。

FOR i=1:1:10 DO
. FOR...
于 2015-02-05T22:27:04.440 回答
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
于 2015-02-05T03:38:56.923 回答