第八章  PROCEDURE OBEY

<回「入门讲义」>

 Procedure 是AREMOS/Windows 语言里另一个强有力的工具。简言之,一个 procedure 是「a sequence of AREMOS commands」,代表一群 AREMOS/Windows 指令语句。如果要反复执行一群 AREMOS/Windows 指令语句。可先产生一个 procedure 来代表这群指令语句。任何时候,只要键入这个 procedure 的名字,便会执行该群指令。同时 procedure 本身也是 object 的一种 (type),一旦建好了 procedure,可存放在 bank 里。

Procedure 的一般形式如下(键入指令):

       procedure name;

       command statement;

       command statement;

       ……

       ……

       ……

       end;

第一行必须是「procedure name;」,其中 name 是我们为此 procedure 所取的名字。最后一行必须是「end;」。其间则是此 procedure 所代表的指令群。

有两种方法可产生 procedure:(1)使用 Procedure Edit and display 编辑程序,(2)使用 Procedure 指令。分别介绍如下。

 

8.1  使用 Procedure Edit and Display 编辑程序产生 Procedure

 假定我们要建一个 procedure,名叫 pr1,内容如下:

Tools → Procedure Edit → 键入指令 pr1(在 Procedure Name 处) → 在下面的框框键入 procedure 内容。

procedure pr1;

set freq q ; set per 1989:1 2004:3 ;

set report dec 2;

open e:\WAREMOS\niaq;

print gnp,pchya(gnp);

end;

  → Save

→ Close 跳回主画面

→ 键入指令 pr1 ;

 说明:这是建立一个 procedure 的第一种方法,名字叫 pr1,(如图 8.1),若要执行 pr1,只要在主画面上,键入指令「pr1;」(在 AREMOS Command 上),若您想修改 pr1 里的内容,只要再进入 Procedure Edit…,Index…叫出 pr1,或键入 pr1(在 procedure name 处),按 Retrieve,然后光标移到 Procedure 内容去修改即可,然后按 Save,再按 Close,回到主画面,在 AREMOS Command 下再键入「pr1;」执行。

 

【图8.1】

 任何时候只要打「pr1;」,即会执行那群 command statements。同时 pr1 也是一个 object, object type 是 procedure,它可以像一个 series 一样存放在 bank 里面。如果在主画面键入:
         
display pr1;
          即会印出 pr1 的内容。

 ※在此特别一提,在 procedure 里的 command statements,有一列是 open e:\WAREMOS\niaq; 这是到 E 磁盘驱动器里的 WAREMOS 子目录下,open niaq 数据库的意思。若您的数据库 niaq 是放在 G 槽的 WAREMOS 子目录下,您就必须打入「open g:\WAREMOS\niaq」。

<回页首>

 

8.2  使用 Procedure 指令产生 Procedure

  第二种产生 procedure 的方法是以 procedure 指令。在 AREMOS 里,如果在主画面上键入指令:
         procedure pr2;
       此时计算机进入 sequential mode,会出现
         Sequence of commands ending with;
         Enter END;as final command:
       这是 sequential mode 的 prompt,接着依序打入:
         set freq m; set per 91:1 92:12;
         open e:\WAREMO\ind
;
         print jqind,j22;
         end;

每行按 ENTER 时,都会出现「sequence of commands ending with ; Enter END; as final command:」。最后打「end;」即会跳出 sequential mode 回到正常 AREMOS/Windows 环境。此时也建好一个 procedure,名叫 pr2。要修改 pr2,可用 8.1 节所介绍之 Procedure Edit and Display 编辑程序去修改。

 

<回页首>

 

8.3  CMD file obey

AREMOS/Windows 基本上是交谈式 (interactive) 语言。但也可用 batch job 执行。有时读者要反复使用同一群 AREMOS/Windows command statements,或有时一个 job 可能执行很久,则采 batch 作业比较方便。AREMOS/Windows 的 batch job 可透过 2 个方式进行。

(一)利用本章所介绍建立 procedure 的方法。一旦建好 procedure,可存于 bank 里随时可叫出来执行,或略加修改再执行。procedure 代表一群 command statements,执行某一 procedure 即相当于做一个 batch job。

(二)也可用 CMD file 来做。假定我们 C 碟上已建好一个 file,filename 随便取,扩展名则规定为 CMD,而此 file 内容即是一堆AREMOS/Windows command statements。如此,进入 AREMOS/Windows 后,找 Tools 里的「obey」去执行 filename(.cmd) 即可。

※  至于如何在 C 碟上产生一个 CMD file?

可用 AREMOS Editor 编辑程序来编辑,同时设定扩展名为「.cmd」。下面,我们即将使用一个范例来解释。操作鼠标如下:

(1)Tools → AREMOS Editor → 然后在NEW-WAEDIT 的画面下键入 command statement:

set freq m;set per 1989m1 2004m11;

set report dec 2;

open e:\WAREMOS\fsm.bnk;

print rmtd1@1st@f,pch(rmtd1@1st@f);

    → File → Save → 键入 ob1.cmd(在文件名处) → 确定

(2)Tools → Obey → 键入 ob1.cmd(在 File Name:) →OK

(3)Tools → AREMOS Editor → File → Open →选 ob1.cmd → 确定

说明:

(1)这一群 command statements 的前面不须写「procedure name;」及最后一行不必写「end;」,这和 procedure 的编辑方式有点不同,但相类似。而 open e:\WAREMOS\fsm.bnk ,是  open 磁盘驱动器 E 槽子目录 WAREMOS 里的 fsm 数据库(如图 8.3.1)。读者要特别留意自己的数据库是放在那一槽或在那一个子目录下。

(2)用 obey 去执行 ob1.cmd 档案,如图 8.3.2。

(3)回到 AREMOS Editor 编辑程序下,去修正 ob1.cmd 档案。

 

【图8.3.1】

 

【图8.3.2】

 

<回页首>

<回「入门讲义」>