RPG AS400程序员培训手册_第1页
RPG AS400程序员培训手册_第2页
RPG AS400程序员培训手册_第3页
RPG AS400程序员培训手册_第4页
RPG AS400程序员培训手册_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2.8.4.44 O-R ON-EERROOR (On-Errror)没用过OPENN (E) (OOpenn Fiile forr Prroceessiing) 打开文件Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQOPENN 文件件名OPENN 后面面的目标标,必须是在当当前程序序中已声声明的文文件名(不不是文件件的记录录格式名名),而且在OOPENN 操作作之后,在在程序结结束之前前之前,必必须有对应的CLOOSE 操作。使用OPPEN 操作,文文件在声声明时,必须使用USSROPPN 关关键字(详见见D 行说明)。ORxxx

2、 (OOr) 逻辑判断断或Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQFLD001 IIFGTT FLLD033FLD001 OOREQQ FLLD022等价于IF FFLD001FFLD003 OOR FFLD001=FFLD002与IF、IFxxx,ANDD、ANDDxx 类似,RPPGLEE 的写写法ORR,比RPPG 的的写法OORxxx 要灵灵活,而且可以以用来表表达一些些复杂的逻辑关关系。有有鉴于此,所所以通常常IF 语句中,我我会以OOR 为为主,基本不用用ORxxx。如如果在编编程序方方面,公公司/项目组无硬性性要

3、求,那那我觉得还是少用用ORxxx 吧吧,总觉得这这种写法法的逻辑辑关系看看起来不不直接,尤尤其是有有很复杂杂的ANDD,ORR 时。OTHEER (Othherwwisee Seelecct) 分支语句的判判断与分支语语句SELLECTT 一起起使用,表表示不符符合上述述所有条条件时的操作作,如下下:Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQSELEECTWHENN 条件件判断11处理语句句1WHENN 条件件判断22处理语句句2OTHEER处理语句句3ENDSSL在这个例例子中,当当满足条件件判断11 时,运行行处理语句1,

4、运行行结束后跳跳至ENNDSLL 处;如果不满满足条件件判断11,则程序继续续向下执行,判判断是否否满足条件件判断22。当满足条条件判断断2 时,运行行处理语句2,跳至至ENDDSL;当不满满足当不满足足条件判判断2 时,程序序继续向下下执下,当当读到OTHHER 操作码时时,无条条件运行处理语语句3(即当当程序当当前不满满足以上上所以条条件判断断时,则执行OTHHER 之后的的语句。处理语句句允许有很多多句;条件判断断可以写写得很复复杂,也也允许对对不同的的字段进进行判断断;比如如说C 语言也有有分支语语句swiitchh,但是是这个语句只能能对一个字字段进行分支支判断,ILE 语言与它不同

5、,允许对不同的字段进行行判断就我目前前掌握的的测试情况况,上述述的SEELECCTWWHENN-OOTHEEREENDSSL,其其实也可以以写做:IF 条条件判断断1处理语句句1ELSEEIF 条件判判断2处理语句句2ELSEE处理语句句3ENDIIF即WHEEN 与与ELSSEIFF 是类似的,这这样说,应该可以以明白了了吧。总之,SSELEECTENDDSL 是一个个很好用用的语法,尤尤其是在在表示很很多不同同的分支支处理时。OUT (EE) (Wrritee a Datta AAreaa)没用过,讲数据域域的。PARMM (IIdenntiffy PParaametterss) 定定义入

6、口参参数Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQRR*ENTTRY PLIISTPARMM FLLD011关于具体体内容讲讲解,详见见前面所所说“入口口参数”一一章。允许做为为入口参参数的有有:普通通变量、结构变量、数数组变量关于PAARM、PLIIST,还有一种在Facctorry 11, Faactoory 2 也也填写变变量或指指示器的的用法,不过过我不知知道它具具体表示示什么意思,也也不知道道该怎么用。请用过的来补充。PLISST (Ideentiify a PParaametter Lisst) 同上POSTT (E

7、) (PPostt)没用过READD (N | E) (Reaad aa Reecorrd) 读取记录1. 基基本语法:Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQREADD 文件件记录格式式名455 466READD后面跟跟的,必必须是声明明的文件件记录格式式名;LO 指指示器表表示锁表指示示器,当当在指定定的时间(CHGGPF,WAIITRCCD 项项可看到到),需要读取取的记录录仍被锁,将会会打开LO 指示器器,即*IN445=1;EQ指示示器为是否读到指示示器。当当未读到任何何记录时时,打开EQ 指示器器,即*IN446=

8、12. 当当文件在在程序中中,是用用只读的方式式声明时时,REAAD 操操作并不不会造成成锁表;如果文件件在程序序中是用用修改的的方式声声明,RREADD 操作作成功后后,该记记录被锁;直到到执行解锁操操作(UUNLOOCK,或或UPDDATEE),或或REAAD 该该文件的的其它记记录,才才会解锁锁如果文件件是用修修改的方方式声明明,但希希望REEAD 操作不不锁表时,那么就用REEAD(N),即Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQREADD(N) 文件件记录格式式名455 466这样读文文件,就就不会锁锁记录,但但是同

9、时时也不能能修改记记录。如如果需要要修改记记录,那那么在修改之之前(包包括对文件字字段赋值值之前),还必须再对该记录进行一次定位操作(比如CHAIIN、REAAD 语语句均可可)。也也就是说说,如果果要修改改记录,必必须先锁住当前前记录(很很合理吧)3. 当当执行REAAD 操操作时,程序序是根据据游标当前在在文件中中所指向向的位置置,顺序读取下一条记录录。关于游标是如何何指向,还不是一个很简单的问题,所以将会在下一章“数据库相关关知识”中具具体讲解。4. 执执行REAAD 操操作时,允许声明的的文件没没有键值值。(即即PF 文件)READDC (E) (Reaad NNextt Chhang

10、ged Reccordd)没用过,读下一次次修改过过的记录?READDE (N | EE) (Reead Equual Keyy) 读读取键值相等等的记录录语法与RREADD 操作作码大致一一样,这里不再再重复,只说不同的的:假设程序序中已声声明逻辑辑文件PFFFHSSL3(键值为为FHSS01+FHSS02)Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQFHSKKEY KLIISTKFLDD FLLD011KFLDD FLLD022FHSKKEY SETTLL FMTTFHSSDOW 1=11FHSKKEY REAADE FMTT

11、FHSS 155IF *IN115=1LEAVVEENDIIFENDDDO这段话的的意思,就就是定义义组合键值FHHSKEEY,然然后根据据这个FHSSKEYY 在逻辑文件件PFFHHSL33 中去去定位,循循环读取PFFFHSLL3 中中,FHHS011、FHSS03 与FLDD01、FLDD02相相等的记记录。当读读取记录结结束,或或键值不等等时,退出出循环(*INN15 是EQ 指示器器)。如如果将RREADDE 操操作码换成成REAAD 操操作码的话(当然然,Faactoory 1 处处也就不不能有值值),就就没有“键值不等等时退出循环”这这一层意思,只只是读不到记录录时就退退出循环环

12、,但有有时我们使用逻辑辑文件,仅仅仅是需需要它的排序序,而不不需要读读不到键值值相等的的记录就退退出循环环。所以以说,使用用REAAD 操操作码,还是REAADE 操作码,需要要根据实实际的要要求来决决定。以上的FFacttoryy 1 处填写值的系统处处理,当当REAADE 操作码在Facctorry 11 处未填写写值时,系统实际际上是将将当前的的值与读到的上上一条记记录的关键字进行比较,而不不是与SSETLLL 时时的键值做比较较(读第一条条记录不做做比较!),如如果键值值不等时,置EQQ 指示示器为1。也也就是说说,如果没有有与FHHSKEEY 键键值相同同的录,那么系统并不是是直接找

13、找开EQ 指示器器,而是是会一直直保持正常地地往下读读,直到到找到与与读到的第第一条记记录关键键字不同同的记录录,才会会打开EQ 指示器器,所以要注注意。READDP (N | EE) (Reead Priior Reccordd) 读读取记录游标上移简单来说说,REAAD、READDE 操操作时,游标在数据据文件中中,是下下移的;即读完第一一条记录,游标标指向第第二条记记录;读完第二二条记录录,游标指向第第三条记记录,依依此类推,直直至最后后一条记录。但REEADPP 则正好相相反,游游标是上移移的,即即读完第三三条记录录后,游游标指向第第二条记记录;读完完第二条条记录后,游游标指向第第一条

14、记记录,直直至读完第一一条记录录。一般来说说,用REEAD、REAADE 的概率率会比RREADDP、REAADPEE 的概概率高得得多,不不过在某些情况况下,使使用REEADPP 操作作,又的的确会很很省事,这个一时间想不起例子来,大家可在编程序时多多实践。READDPE (NN | E) (RReadd Prriorr Eqquall)虽然我没没用过,但猜猜想它应应该就是是指游标标上移,按按键值去读取文件件。与RREADDP 的的关系,就类似于于REAADE 与REAAD 的的关系。REALLLOCC (E) (RRe-aalloocatte SStorragee)没用过REL (EE)

15、(Reeleaase)没用过RESEET (E) (Resset)将数据结结构赋值成为初始值。注意是初初始值,不是是清空。如定义结结构:D FHHSDSS DSSD FHHS011 100 INNZ(ABBCD)D FHHS022 5 INZZ(EFFGH)那么,不不管对该该结构如如何赋值值,当执行语句:C REESETT FHHSDSS之后,FFHS001 将将会变成ABBCD,FHSS02 将会变成EFFGH,即恢恢复成为初始值。RETUURN (HH | M | R) (Retturnn too Caalleer)RETUURN 是程序序结束。在前面,“简单的程序流程”中,我们讲过,“S

16、ETON LR” 与RETURN 这两句话一起,做为为程序的的结束。这里,再再详细解释一下两两者之间间的区别,以及及关系:如果不写写RETTURNN,只写写“SEETONN LRR”,程程序执行完最最后一句句之后,将将会再从从第一句开始执执行,造造成死循循环。在简单单的程序序流程这这个例子子中,程程序原来来只想修修改读到的第第一条记录,而而如果没没有REETURRN 的的话,将会会把所有有的记录录都修改改掉,直直到最后后找不到到可修改改的记录,然然后系统统报错,异异常中断断。(这这种离奇奇的现象现在又测试试不到了了,可能能是当时时写错程序了?把把F 写成成了P?不管管它,当当是我写写错了,总之

17、RETTURNN 是表表示程序序结束,没没有RETUURN,主主程序无无可执行的语句时,它也也会结束;如如果REETURRN 出出现在主程程序的中中间,那么REETURRN 后后面的语语句将不不会执行)如果只写写RETTURNN,不打打开指示器器*INNLR,根根据blloglliouu 所说 “程序序不会强强制将内内存中的数据据写到磁磁盘中。4000 缺缺省的是是BLOOCK 输出,即即数据记记录满一一个BLLOCKK 块时时才会将将这一组记记录写到到磁盘上。那那么如果这时时BLOOCK 没满,数据据信息不不会立刻刻写到磁磁盘上。之之后有其它作作业用到该文件,读读取的数数据就不不完整。”但如

18、果文文件有唯唯一键字,或或记录日志志,必须须同步写时,其实BLOOCK 实际被忽忽略,也也就是此时不不会有错错。目前前我们用的是是MIMMIX 备份,客客户实际际上将所所有的文文件都列列入日志志,这时不写也也不会出出现上述错误误。但为避免一一些潜在在的问题题,养成良好好的编程风格,建建议将SETOON LLR 与与RETTURNN 一同同,做为为程序结束的标志。当当然,如如果某个个程序频频繁被调用,且且不涉及文文 操作作时,可考考虑不打开指示器器*INNLR,仅用RETTURNN 作为结束,这样样程序不不会被PUURGEE 出内内存,可可提高调调用效率率。如果没写写RETTURNN,也没没有打

19、开开指示器器*INNLR,在在编译时时,系统将会报40 级错,说找不到程序序结束的语句,所所以大可可放心。ROLBBK (E) (Rolll BBackk)1. 基基本语法Facttoryy 1 Opeerattionn Faactoory 2 RResuultROLBBK2. 该该操作码无其它它参数,就就是指对对事务处理进行回滚操作。3. IILE 程序中中,ROOLBKK 操作作可随时时进行,也也允许在没有有声明CCOMMMIT 类型的文文件的情况下下,仍进进行ROLLBK 操作(对对该进程程这前的事事务进行确确认处理)f4. 关关于日志志的确认认回滚操作,在在后面会会另设专专门章节讲述。

20、2.8.4.55 S-Z SCANN (E) (SScann Chharaacteer SStriing) 扫描字符符串扫描字符符或字符符串Faactoory 1 在在目标字符串串Facctorry 22 中是是否存在在Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQFLD001 SSCANN FLLD022 N 26FLD001 可可以是字字符,也也可以是是字符变变量;可可以是一一位长,也可可以是多多位长。当FLDD01 在FLDD02 中存在在时,EQ 指示器器打开,即*IIN266=11,同同时将FLDD02 中的起起始位置,赋

21、赋值给NN;当FLDD01 在FLDD02 中不存存在时,EQ 指示器器保持关关闭状态,即*IIN266=00,同同时N=00允许从FFLD002 中中的指定定位置开开始检查:FLD001 SSCANN FLLD022:2 NN 266如上句,即即表示从从FLDD02 的第2 位,开始扫描。在实际使使用中,比比如说我们判断某某个字符符是否为为数字,就就可以先先定义一个09 的的常量,然后将要要判断的的字符去去SCAAN 一一下这个常量量SELEECT (Beeginn a Sellectt Grroupp) 分分支语句在操作码码“OTHHER”中中讲过,为方便读者,列列出简单单语法如如下:Fa

22、cttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQSELEECTWHENN 条件件判断11处理语句句1WHENN 条件件判断22处理语句句2OTHEER处理语句句3ENDSSL要注意,SELECT 操作码,必须有对应的ENDSL 操作码,否则编译无法通过。SETGGT (E) (Sett Grreatter Thaan) 定位操操作大于举个例子子吧,假假设文件中中有一个个字段,是是标识顺顺序号的的,1、2、3、4。即该字段为1,表示第一一条记录录,该字段为2,表示示第2 条记录。那那么:Facttoryy 1 Opeerattionn Fa

23、actoory 2 RResuult HI LO EQ2 SEETGTT 文件件记录格式式名READD 文件件记录格式式名这个REEAD 操作,RREADD 到的的,是第第3 条记录。也也就是说说,SETTGT 操作码,会将将游标定位到大大于键值值的第一一条记录录前。在实际使使用中,如如果我们们是按逻辑辑文件读取,而而且读了一条条记录之后后,对其键值相同同的记录都不不需要再再读取时,就可可以用SSETGGT,不不过需要注注意,FFacttoryy 1 项,需要要是与键键值相同的变量量,即如如果文件件是使用用多个字字段做为为键值,那那么我们也需要要先定义义一个组合键值的变量,然后后Facctor

24、ry 11 处填写这个组合键值的变量名。当声明文文件的键键值有多多项时,Facctorry 11 项的键值,允允许小于文文件的键键值,但但顺序必须一致。即即声明的的文件如如果键值值为:FHSS01、FHSS02、FHSS03,那那么我们在程序序中定义义三个类型与之相相同的变变量FLDD01、FLDD02、FLDD03,以以下写法法都是有有效的FLDKKEY KLIISTKFLDD FLLD011KFLDD FLLD022KFLDD FLLD033FLDKKEY SETTGT 文件记录录格式名名FLDKKEY KLIISTKFLDD FLLD011KFLDD FLLD022FLDKKEY SET

25、TGT 文件记录录格式名名FLD001 SSETLLL 文文件记录录格式名名SETLLL (E) (Sett Loowerr Liimitt) 定定位操作作小于语法与SSETGGT 相相同,含含义与SETTGT 不同。SETTLL 操作码,会将将游标定位到到与键值值相等的第一一条记录录之前,仍仍是上例例,如果果是2 SEETLLL 文件件记录格式式名READD 文件件记录格式式名那么REEAD 操作码读读到的记录录,就是是第2 条记录,看看到了吧吧,和SSETGGT 不不同。SETLLL 操操作码还还可以用用来简单单判断当当前键值值是否存存在有记记录,以以PFFFHSLL3 为为例(键值值为F

26、HSS01、FHSS02)Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQFHSKKEY KLIISTKFLDD FLLD011KFLDD FLLD022EVALL FLLD011=001EVALL FLLD022=002FHSKKEY SETTLL 文件记录录格式名名44当文件中中有相应应记录时时,EQ 指示器器打开,即*IIN444=11当文件中中无相应应记录时时,EQ 指示器器关闭,即即*INN44=0(与CHHAINN 正好好相反,要要注意)而在这种种用法中中,SEETLLL 与CHAAIN 的区别在于,CCHAIIN 是是定

27、位读读取了记录录,而SEETLLL仅仅只是是判断该该记录是是否存在在。所以以用SEETLLL 操作作,不能能修改记记录,也也无法取取出记录录的值。只能判断断记录是否否存在。如果要要修改记记录,或或取出记记录的值,还需要有有一个读读取定位位的操作作,如REAAD,或或REAADE、REAADP 等(最最常用的的,应该该就是REEAD 操作)SETOOFF (Seet IIndiicattor Offf) 关关闭指示示器Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQSETOOFF 10 11 12等价于EVALL *IIN100=00E

28、VALL *IIN111=00EVALL *IIN122=00在SETTOFFF 这个操作作码中,指指示器填填在HII、LO、EQ 哪里都都没关系,都都是表示示要被关关闭的指示示器SETOON (Sett Inndiccatoor OOn) 打开指示器器Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQSETOOFF 10 11 12等价于EVALL *IIN100=11EVALL *IIN111=11EVALL *IIN122=11在SETTON 这个操作作码中,指指示器填填在HII、LO、EQ 哪里都都没关系,都都是表示示要被关关闭

29、的指示器器SHTDDN (Shuut DDownn)没用过SORTTA (Sorrt aan AArraay)没用过SQRTT (H) (SSquaare Rooot) 开方Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQ9 SQQRT 3 NN这时,NN=3(因因为3 的平平方为9)9、3 都可以以是数字字型变量,或或者直接接是数字字SUB (HH) (Suubtrractt) 减减法操作作Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQFLD001 SSUB FLDD02

30、 FLDD03SUB FLDD02 FLDD03看过前面面的ADDD、MULLT 操操作码,这里不用用解释也应该明白白是什么么意思了了吧。那那就不多说了。SUBDDUR (EE) (Suubtrractt Duurattionn) 日日期相减减1. 减减日期Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQFLD001 SSUBDDUR N:*Y FLDD02表示将日日期型变变量FLDD01 减去N 年,赋值值到日期期型变量FLDD02 中;N 可以以是一个个数字型型变量,也也可以就就是一个个数字,N 允许为负数*Y,*M,*D(还有其

31、它它的参数数值,可见ADDDDURR,其中中有详细细解释)2. 判判断两个个日期型型变量之间的天/月/年数Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQFLD001 SSUBDDUR FLDD02 N:*D这时,NN 做为一结果变量,表表示日期期型变量FLDD01 与FLDD02 之间的天数数SUBSST (P | EE) (Suubsttrinng) 取字符符/字符串串Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQ2 SUUBSTT FLLD011:3 FFLD002表

32、示从字字段FLLD011 的第第3 位开始,取取2 位,左左对齐赋赋值到字字段FLLD022 中。要求字段段FLDD01 的长度必须大于或或等于33+2 位,否否则程序会会报错。可以尝试试用%SUUBSTT 语句,也也是等价价的,如如下EVALL FLLD022=%SSUBSST(FFLD001:3:2)表示的是是同样的意思思。起始位数数3,取的的长度2,在两两种写法之之下,都都可以使使用数字字型变量来表表达。相比较之之下,%SUBBST 还有一种用法,就就是对字符的的指定位位置赋值值,这个就厉害了:EVALL %SSUBSST(FFLD002:3:2)=011看到了吧吧,这句话就是说,使字字

33、段FLLD022 的第第3、4 位(即即从第三三位开始,两两位长)等于“011”TAG (Taag) 定义标签签,与GOOTO 同用Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQFHSTTAG TAGGTESTT (D | T | ZZ | E) (TTestt Daate/Timme/TTimeestaamp)没用过TESTTB (Tesst BBit)没用过TESTTN (Tesst NNumeericc)没用过TESTTZ (Tesst ZZonee)没用过TIMEE (TTimee off Daay) -取取当前系系统时间间

34、Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQTIMEE FLLD011FLD001 可可以是时时间型或或数字型型变量UNLOOCK (EE) (Unnlocck aa Daata Areea oor RReleeasee a Reccordd) 解解锁Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQUNLOOCK 文件记录录格式名名UNLOOCK 是解锁操作,在在某种程度上上,可以以将UNNLOCCK 视视为ROOLBKK,将UPPDATTE视为COOMMIIT。即即如果

35、锁锁定某条条记录,并并对其字段段进行赋值之后后,使用用UPDDATEE 语句,将将会把修改改后的结结果保存存下来,即即修改文文件,而而UNLLOCKK 语句则不会修修改文件件,即否否认了之前对文件件字段做做的赋值值修改。从程序的的执行效率率上来讲讲,UNLLOCKK 的执行效率率是高于于UPDDATEE 的,因因为UPDDATEE操作时,系系统需要对文件的的每一个字字段进行确认处处理(DEEBUGG 时可以看看到),而UNNLOCCK 就就是简单的的解锁而已。UPDAATE (Moodiffy EExisstinng RRecoord) 修改改记录语法与UUNLOOCK 一样。这里需要要说明一

36、下下,在执执行UPDDATEE 的时候,必必须先使用用REAAD、CHAAIN 等操作作码锁定一条记记录。如如果未锁锁住记录,UPDDATEE 操作作码将会报错错。当执行了UNNLOCCK、UPDDATEE、以及ROOLBKK 语句时,等于于是解锁锁,此时再执行UPDDATEE 操作作码之前,必必须再次锁住记录操作;WHENN (M | R) (Wheen) 分支判判断语句中的的条件判判断在操作码码“OTHHER”,“SSELEECT”中中都讲过过,仍列列出简单单语法如如下:Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQSELEEC

37、TWHENN 条件件判断11处理语句句1WHENN 条件件判断22处理语句句2OTHEER处理语句句3ENDSSLWHENNxx (Whhen Truue TThenn Seelecct)上面的语语法,是是RPGGLE 的语法,WHHENxxx 是是RPGG 的语法,也也就是SELEECTFLD001 WWHENNEQ FLDD02处理语句句1.这样的语语法,在在表达复复杂的逻辑关关系时,必须与ANDDxx,ORxxx 一一起使用用,所以以我不使用WHHENxxx 这这个操作作码。WRITTE (Creeatee Neew RRecoordss) 写写记录常用的方方式:Facttoryy 1

38、Opeerattionn Faactoory 2 RResuult HI LO EQCLEAAR 文文件记录录格式名名EVALL 文件件字段11=xxxxxEVALL 文件件字段22=xxxxxWRITTE 文文件记录录格式名名表示在文文件中写写入一条条新记录录。文件件需要声声明为可写的的。通常会在在给文件字字段赋值值之前,作作一次CCLEAAR 操操作来进进行初始始化,以以避免不不必要的麻烦。XFOOOT (H) (Summ thhe EElemmentts oof aan AArraay)没用过,看看帮助,是是表示对对数组字段的的累加统统计。假设DIIMDAATA 定义为一个个数字型型的数

39、组组变量,FHHS011 为一个足足够大的数数字型变变量Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQXFOOOT DDIMDDATAA FHHS011就表示将将数组DIMMDATTA 中中的所有有记录的值都取出出来,汇汇总相加加,赋值值到数字字变量FHS001 中中XLATTE (P | EE) (Trransslatte)将一个字字符串中中指定的的字符,更更换成另外外的字符符。举例:如如MYCCHARR1, MYCCHARR2 都都是两个个20 位长的字符符型变量C MOOVELL AABCAAAACC1233 MMYCHHAR

40、11C AA:9 XLAATE MYCCHARR1 MMYCHHAR22执行过这这个语句之后后,MYYCHAAR2 就等于于”9BBC9999C1123,即将将字符串串MYCCHARR1 中中所有的“AA”都变成了“9”;XLATTE 也也可能指指定起始始位置。如上句句更改为为:C AA:9 XLAATE MYCCHARR1:4 MMYCHHAR22则MYCCHARR2 等等于“AABC9999CC1233”,指指从第44 位开始(含含第4 位),将将“A”变成“9”赋值。Z-ADDD (H) (Zerro aand Addd) 向向数字型型变量赋值Facttoryy 1 Opeerattionn Faactoory 2 RResuult HI LO EQZ-ADDD FFLD001 FFLD002将数字型型变量FLDD01,赋值到数数字型变变量FLDD02 中。Z-ADDD、MOVVE 虽虽然同是是赋值操作作码,但Z-ADDD 的用用法就远远没有MOOVE 那么变化多多端,只能能在数字字型变量之间赋赋值。所所以也没没有什么么可说的了。ze

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论