2.2 vfp 6.0的语言成分
1. 命令
即:由用户发出的、指示vfp进行某种操作的指令。
如 use aaa & 打开 一个名为 aaa.dbf的数据表
2. 函数
即:一个预先编制好的模块,可由vfp程序在任何地方调用。
函数的使用方法:名称、功能、参数、返回值
几个常用函数
|
名称 |
命令格式 |
示例 |
|
字符串截取函数 |
substr( expc,expn1[,expn2 ]) |
? substr(“abcdefg”,2,4)
结果是: bcde |
|
left( expc,expn ) |
? left(“abcdefg”,2) 结果是: ab |
|
right( expc,expn ) |
? rightt(“abcdefg”,4)
结果是: defg |
|
字符串查找函数 |
at ( expc1 , expc2 [ expn ]) |
? at(“b”, “abcde”) 结果是: 2
? at(“a”, “abcdeasd” )
结果是: 1
? at(“a”,“abcdeasd”,2 )
结果是: 6 |
|
大小写字母转换函数 |
lower( expc ) |
? lower(“dfgha”) 结果是: dfgha |
|
upper( expc ) |
? upper(“asdf”) 结果是: asdf |
|
数值函数 |
max(exp1,exp1[,exp3,…]) |
? max(15,23,4,56) 结果是: 56 |
|
min(exp1,exp1[,exp3,…]) |
? min(15,23,4,56) 结果是: 4 |
|
abs( expn ) |
? abs(-15.83) 结果是: 15.83 |
|
int( expn ) |
? int(25.62) 结果是: 25 |
|
压缩空格函数 |
alltrim( expc ) |
? alltrim(" ad b g ")
结果是: ad b g |
|
类型转换函数 |
str( expn1[,expn2][,expn3]) |
? str(789.678,6,2) 结果是: 789.68 |
|
ctod( expc ) |
? ctod(“98/10/15”)
结果是: 98/10/15 |
|
val( expc ) |
? val("123.45") 结果是: 123.45 |
|
dtoc( expd ) |
? dtoc({98/12/15})
结果是: 98/12/15 |
|
日期时间函数 |
date() |
? date() 结果是: 2000/03/15 |
|
datetime() |
? datetime()
结果是: 2000/03/15 10:15:30 |
|
year( expd ) |
? year({87/03/25}) 结果是: 1987 |
|
数据库函数 |
recno( ) |
dbc( ) |
seek( ) |
其它函数 |
len( ) |
deleted() |
|
eof( ) |
bof( ) |
found( ) |
empty(exp) |
inlist(,,) |
|
reccount( ) |
select( ) |
between(,,) |
iif(,,) |
|
tablerevert( ) |
lock( ) |
chr() |
asc() |
|
tableupdate( )}~)#I
6+6qeq
"k2[本文 来源 于我 的学习 网IT认证全国计算机等级考试 hTTp://wWW.gZU521.cOM )}~)#I
6+6qeq
"k2 |
fsize( ) |
tag() |
inkey() |
自定义函数:
由用户为自己的应用程序创建的专用函数,可作为独立的程序文件保存在磁盘上也可作为过程文件存放在其他程序中。
3. 表达式
即:变量、操作符、常量、函数、字段名、控制以及属性的组合,求值结果为单个值。
表达式的类型:
算术表达式:由算术操作符和数值型数据构成的表达式。
字符表达式:由字符操作符和字符型数据构成的表达式。
日期表达式:由日期操作符和日期、时间型数据构成的表达式。
逻辑表达式:由逻辑操作符和逻辑型数据构成的表达式。
名称表达式:
由圆括号括起来的一个字符表达式,用来替换命令或函数中的名称。
例: dbf_name="学生成绩登记表"
use (dbf_name)
宏替换:用宏替换符号 & 表示,它与名称表达式具有相似的作用。
例: 已知 a="1", b="2", c12="good"
则 c&a&b="good"
4. 操作符
|
数值操作符 |
( ) |
^ 或 ** |
* |
/ |
%(取余数) |
+ |
- |
|
关系操作符 |
< |
<= |
> |
>= |
<> 或 != 或 # = = |
|
逻辑操作符 |
()表达式分组 |
no或!(非) |
and(和) |
or (或) |
|
日期和时间操作符 |
+ |
- |
注意: 日期型: 天数 时间型: 秒数 |
|
字符操作符: |
+ |
- |
$ |
|
|
|
|
|
两个特殊的操作符 |
圆点操作符(.):用于分隔对象的名称以及分隔对象中的属性、事件、方法。 |
|
范围转变操作符(::):提供了从一个子类中调用一个父类的方法。 |
2.3 程序设计基础
1. 基本概念
程 序:为解决某一问题而设计的一系列指令。
主程序:通常被用户直接执行的程序。
子程序:在程序中被调用的程序。
源程序: 由人用源语言编写的计算机程序,必须翻译成机器语言后才能被执行。
目标程序: 是源程序经过编译后所产生的机器语言程序。
可执行程序:
源程序被编译后产生的可被机器直接执行的程序,具有 .exe 扩展名。在vfp中是指由项目管理器连编生成的、可脱离vfp环境运行的程序。
应用程序:
指为完成专门工作而设计的一组相互联系的例行程序和子程序。在vfp中是指一组 visual foxpro 程序、表单、菜单和其他文件经项目管理器连编后形成的单个程序,不能脱离vfp环境运行,扩展名为.app。
例行程序:
按某种顺序排列的、使计算机能执行某种任务的指令集合,可以是一种专用的程序或作为程序的一部分。它可由若干个子程序组成。
2. 程序控制
(1) 顺序语句
即按程序中的语句顺序依次执行。
(2) 分支语句
|
条件语句: |
情况语句: |
|
if 条件
命令组1
[ else
命令组2 ]
endif |
do case
case 情况1
命令组1
case 情况2
命令组2
…
[otherwise
其它命令组 ]
endcase |
3. 循环语句
|
for
循环语句(预知循环次数) |
for 变量 = 初值 to 终值 [step 步长 ]
命令组
endfor | next |
|
do while
循环语句(未知循环次数) |
do while 条件
命令组
enddo |
|
scan
循环语句(针对全部记录)or_XU[*
X?oi-(此_资_料_转_贴_于_学_习_网_IT认证_全国计算机等级考试]hTtP://wWw.gZu521.cOmor_XU[*
X?oi- |
scan [ 范围 ] [for | while 条件 ]
命令组
endscan |
循环结构中的loop命令和exit命令:
loop是短路语句,表示从此开始下一次循环;
exit是退出语句,表示跳出循环。
4. 子程序
子程序的的形式可以是一个程序文件,也可以是一个过程或自定义函数。
|
|
子程序 |
自定义函数 |
过程 |
|
特点 |
总是被其他程序调用而不单独执行,可以调用其他子程序,不一定要返回一个值。 |
能以一个独立的文件储存,也可包含在调用程序中,必须返回一个值。 |
是一个程序段,是程序的组成部分,一般放在程序的最后。 |
|
定义方法 |
与程序相同,只是在子程序的结尾加需一条返回命令:
return [ 表达式 |to master |to 程序文件名] |
function 函数名
或:modify command 函数名
parameters 数表
命令组
return 表达式
注:用此命令定义的函数以独立的文件形式储存。 |
procedure 过程名
parametrs 参数表
命令组
return |
|
调用方法 |
do 子程序名[with 参数表 ] |
= 函数名 ( 参数表 ) |
do 过程名 with 参数表 |