SCAN循环在程序中的使用

SCAN循环在程序中的使用

教学内容:3

SCAN-ENDSCAN语句

语句格式:

SCAN[<范围>][FOR<条件表达式>]

<命令序列>

[LOOP]

[EXIT]

ENDSCAN

例如:在DA1.DBF表中,查找职称是“讲师”的记录,计算满足条件的记录个数和工资的总和。

SET TALK OFF

CLEAR

USE DA1

S=0

N=0

SCAN FOR 职称=“讲师”

S=S+工资

N=N+1

ENDSCAN

USE

?“记录个数为:”,N

?“工资和为:”,S

SET TALK ON

RETURN

7.3 过程及其调用

7.3.1 过程的建立

1、定义过程

语法格式:

PROCDURE|FUNCTION <过程名>

<命令序列>

[RETURN[<表达式>]]

[ENDPROC|ENDFUNC]

2、定义过程文件

PROCEDURE <过程名1> <命令序列1>[RETURN[<表达式>]][ENDPROC|ENDFUNC] PROCEDURE <过程名2> <命令序列2>[RETURN[<表达式>]][ENDPROC|ENDFUNC] ……

PROCEDURE <过程名n> <命令序列>[RETURN[<表达式>]][ENDPROC|ENDFUNC]

7.3.2 过程的调用

1、调用存放在程序文件里的过程

这又可分为两种情况。

(1)被所存放的程序文件调用

Do <过程名> 或 <过程名>()

(2)被其它命令文件调用

步骤:

(1)先打开此程序文件:SET PROCEDURE TO <程序文件名>

(2)然后调用其中的过程:Do <过程名> 或 <过程名>()

2、调用过程文件中的过程

3、关闭过程文件语句

语句格式1:SET PROCEDURE TO

语句功能:关闭所有打开的过程文件。

语句格式2:RELEASE PROCEDURE <过程文件1>[,<过程文件2>,...]

语句功能:关闭个别过程文件。

*主程序:F1.PRG

?“主程序开始”

SET PROCEDURE TO F3

F2()

DO P1

?“主程序结束”

*过程P1

PROCEDURE P1

?“过程P1开始”

?“调用P3()”

?“返回值:”,P3()

?“过程P1结束”

ENDPROC

*子程序:F2.PRG

?“子程序F2开始”

?“调用P2()”

X=P2()

?“返回值为:”,X

?“子程序F2结束”

RETURN

*过程文件:F3.PRG

PROCEDURE P2

RETURN

PROCEDURE P3

RETURN 100

7.3.3参数传递

1、主程序向过程传递参数的命令:

命令格式1:DO <过程名> WITH <实参1>[,<实参2>,…]

命令格式2:<过程名> WITH <实参1>[,<实参2>,…]

2、在过程中接收参数的命令

命令格式1:PARAMETERS <形参变量1>[,<形参变量2>,…]

命令格式2:LPARAMETERS <形参变量1>[,<形参变量2>,…]

7.4 文件操作

7.4.1显示文件目录

命令格式:DIR[<盘符:>][<路径>][<文件名>]

命令功能:显示磁盘文件目录

7.4.2复制文件

1.对已打开的表进行复制

命令格式:COPY TO <新文件名>[<范围>][FIELDS<字段名表>][FOR<条件>]

命令功能:按照给定的范围、字段名表和条件,将当前表的相应内容复制到新表中去。

2. 表结构的复制

命令格式:COPY STRUCTURE TO <新文件名>[FIELDS<字段名表>]

命令功能:将已打开的表的结构复制到目标文件中去,而不复制任何记录。

3. 磁盘文件的复制

命令格式:COPY FILE <源文件名> TO <目标文件名>

命令功能:将未打开的磁盘文件复制为另一个磁盘文件。

7.4.3 删除文件

命令格式:ERASE <文件名>

DELETE FILE <文件名>

命令功能:从磁盘上删除指定的任何一种文件。两个命令功能相同。

说明:该命令不能删除已打开的文件。

例如:将表CD.DBF从磁盘中删除。

ERASE CD.DBF

小结:本次课主要讲述了SCAN循环在程序中的使用,以及参数的传递过程的定义、与调用。对于没学过c语言的同学来说,这部分内容叫困难!

作业:P140—3(4)、(5)

相关推荐
相关主题
热门推荐