文档库 最新最全的文档下载
当前位置:文档库 › VF常用编程命令及常用函数

VF常用编程命令及常用函数

VF常用编程命令及常用函数
VF常用编程命令及常用函数

VFP常用编程命令及常用函数

常用编程命令及常用函数

注:在语法中如用方括号“[]”括起来的词句,表示可以不用。常用命令

假设(if...endif) 循环(do

while...enddo)

分支(do case...endcase)

赋值(store...to) 调用表单(do form) 调用子程序(do)

返回调用程序(return) 启动事件处理(read

events)

清除事件处理(clear

events)

开关命令执行状态(set talk

on/off)

结束程序(cancel)

常用函数

数值转换字符(str()) 字符转换数值(val()) 取系统日期(date())

取年份(year()) 取月份(month()) 取天日(day())

取整(int()) 四舍五入(round()) 删除标记(delete())

记录号(recno()) 记录数(reccount()) 找到记录(found())

表结尾(eof()) 表开头(bof()) 消除后续空格(trim())

消除前导空格(ltrim())

假设语句

根据一逻辑表达式的值,有条件的执行一组命令。

语法:

IF 逻辑表达式 [THEN]

程序组1

[ELSE

程序组2]

ENDIF

参数:

逻辑表达式代表一逻辑值,如果这逻辑值为真,系统执行程序组1,否则不执行程序组1,如果有else及程序组2的话,则执行程序组2,如没有则什么也不执行,直接执行endif后面的语句。

备注:

在if...endif之间还可以有if...endif,即该命令是可以嵌套的。

then可以有也可以没有,对程序没有影响。

else及程序组2可以有也可以没有,但如果有的话,在逻辑表达式的值为假时,程序组2将被执行。

if 与endif必须配对使用,即有一个 if 必须有一个endif,否则程序会出错。

举例:

例1:假如分数字段的值大于等于90,则让等级字段的值为“优”,并显示该记录。程序如下:

if 分数>=90

replace 等级 with '优'

display

endif

例2:在数据库中可以把性别字段设为逻辑型,“真”代表“男”,“假”代表“女”,但显示时不能显示真、假,否则别人看不懂,而应显示男、女,因此我们设一变量xb,根据性别字段的具体值,将xb的值设为男或女,然后在需要的时候显示xb的值即可。程序如下:

if 性别

xb='男'

else

xb='女'

endif

其中第一句:if 性别,表示“假如性别为真”的意思,不要写成“if性别=.t.”。

以上程序也可以写成如下形式,效果相同:

if .not. 性别

xb='女'

else

xb='男'

endif

即,假如性别不为真的话,xb的值就为女,否则为男。

循环语句(do while...enddo)

根据条件重复执行一组程序。

语法:

DO WHILE lExpression

Commands

[LOOP]

[EXIT]

ENDDO

参数:

lExpression为一逻辑表达式,其值如果是“真”,即执行commands程序组,如果表达的值为“假”,则跳过该段程序组,执行enddo后面的语句。Commands当表达式 lExpression 值为真时所要执行的程序组。

LOOP此为 do while...enddo命令的一个子句,它可以放在commands程序组中间的任何地方,当程序一旦执行到该子句时,则返回 do while 重新执行。此子句根据需要可以有,也可以没有。

EXIT与loop一样是 do while...enddo命令的一个子句,它可以放在commands 程序组中间的任何地方,当程序一旦执行到该子句时,则跳出循环,执行enddo 后面的语句。此子句根据需要可以有,也可以没有。

备注:

程序一旦执行到do while 语句,如果lExpression 的值为真,则执行commands 程序组,该程序组执行完后,就到enddo语句,enddo会将程序返回 do while 再次验证lExpression 是否为真,如仍是,则又一次执行commands,如此循环往复,直到lExpression 为假,或遇上 exit 语句。

该语句可以嵌套,即循环中还可以有循环。

do while 与enddo必须配对使用,即有一个 do while 必须有一个enddo否则程序会出错。

举例:

例1:在数据库中不断将记录指针往下移,直到数据库结尾。程序如下:

do while .not. eof()

skip

enddo

例2:在上面的例子加入此功能,当遇到性别字段为“女”时,跳出循环。程序如下:

do while .not. eof()

if 性别='女'

exit

endif

skip

enddo

例3:不断将记录指针往下移,当遇到数量字段的值大于等于600时退出循环,如遇到值小于400的,将其值乘2,然后再检验一次是否大于600,如是则退出循环。程序如下:

do while 数量<600

if 数量<400

replace 数量 with 数量*2

loop

endif

skip

enddo

分支语句(do case...endcase)

根据不同的条件执行不同的程序组。

语法:

DO CASE

CASE 逻辑表达式1

程序组1

[CASE 逻辑表达式2

程序组2

...

CASE 逻辑表达式n

程序组n]

[OTHERWISE

程序组0]

ENDCASE

参数:

CASE 逻辑表达式程序组 ... 当程序执行到 do case 时,便检验第一个 case 的逻辑表达式(逻辑表达式1)是否为真,如不为真,接着检验第二个 case 的逻辑表达式,以此类推直到逻辑表达式n。当检测到第一个为真的逻辑表达式时,

便执行跟随在其后面的程序组,执行完后跳过后面所有的 case ,接着执行endcase 后面的语句,也就是说即使后面还有为真的逻辑表达式也不执行了。如果所有 case 后面的逻辑表达式都为假,则执行 otherwise 后面的程序组(如果有的话, otherwise 及其程序组是可以没有的,如果没有则什么都不做,直接执行 endcase 以后的程序)

备注:

在do case 和 endcase 之间可以有任意多个 case 。

do case 和 endcase 必须配对使用,即有一个 do case 必须有一个 endcase ,否则程序会出错。

举例:

如果工资在200元以下,增加50%;300元以下,增加30%;500元以下,增加20%;其它增加10%。程序如下:

do case

case 工资<=200

replace 工资 with 工资*1.5

case 工资<=300

replace 工资 with 工资*1.3

case 工资<=500

replace 工资 with 工资*1.2

otherwise

replace 工资 with 工资*1.1

endcase

在这里要注意一个问题,不能把300元的 case 放在200元之前,否则一个100元的,按理应加50%,但当遇到小于300元的 case 时,其逻辑表达式为真(小于200元的肯定小于300元),因此就会执行后面的程序,加30%,并且执行完后,就不再执行其它的 case 了,这样就产生了错误的结果,所以应按从小到大的顺序来排列。

赋值语句(store...to)

将一个数据赋给一个变量。

语法:

STORE 表达式 TO 变量名表

参数:

表达式的值即为要赋给变量的数据。

变量名表即为要被赋值的各变量。在这里可以是一个变量,也可以是多个变量,如果有多个变量,其间用“,”(逗号)隔开。

备注:

如果是给一个变量赋值,该语句可写成如下形式:

变量名=表达式

表达式可以是一个数值,也可以是一个算术式。

举例:

例1:将3赋给ab、xyz、jfz三个变量,程序如下:

store 3 to ab,xyz,jfz

例2:将变量gz的值加100赋给yfgz。程序如下:

yfgz=gz+100

调用表单语句

运行一个由表单设计器设计的表单文件。该文件是经编译过的。

语法:

DO FORM 表单文件名 [NAME 变量名 [LINKED]]

参数

表单文件名即是要运行的由表单设计器设计的表单文件名称。

变量名为调用该表单所用的变量名称,做为表单,不能直接用这的名称去调用它,必须将其赋给一个变量,然后用这个变量来调用它。如果您不会在这个表单之外调用它,也可以不要这个变量。

在程序中产生的所有变量在程序运行结束后将被释放,即这些变量不再存在,因此也就无法继续调用这些变更,如果为了调试程序需要在程序运行结束后在命令窗口中调用这个表单,必须加上 linked 子句。

举例:

在程序中调用xy7表单,并将赋给一个变量lucky,程序如下:

do form xy7 name lucky

调用子程序语句(do)

运行一个VFP程序。当我们要在一个程序中调用另一个程序(子程序)时使用此命令。

语法:

DO 程序名

参数:

程序名即为被调用的程序名称。

备注:

如被调用的程序的扩展名是“prg”,调用时可不用带扩展名,否则要带上扩展名。

举例:

有一个程序,名称为 xy7.prg,调用它的程序如下:

do xy7

返回调用程序语句(return)

返回调用本程序(该语句所在程序)的程序。

前面讲过调用子程序的语句,从一个程序A调用另一个程序B后,系统便开始执行B程序中的语句,到一定时候往往要从程序B返回程序A,便可使用该语句。语法:

RETURN

备注:

程序A调用程序B,当从B返回A后,系统接着执行调用语句(do b)下面的一条语句。

举例:

程序a.prg如下:

do while .not. eof()

if 工资<100

do b

endif

skip

程序b.prg如下:

replace 工资 with 工资*1.5 &&将工资增加50%

display &&显示出该记录,这样可以将所有增加了工资的记录显示出来

return

首先执行程序a.prg,当程序执行到 do b 语句时,便转去执行程序 b.prg ,在程序 b 中执行到 return语句时,又返回程序 a ,并接着执行 do b 的下一条语句endif。

启动事件处理语句(read events)

启动VFP的事件处理程序。

语法:

READ EVENTS

备注:

当该命令执行后,系统即停止继续执行后续的语句,这时我们可以调用之前所启动的菜单、表单等对象,并用这些对象的事件程序去完成相应的任务,直到发出clear events命令,系统才接着执行 read events 后面的命令语句。

可能初学者看了上面的内容还不是很清楚,不要紧,我们在后面课程中会进一步讲解。

清除事件处理语句(clear events)

终止由 read events 语句启动的事件处理程序。

语法:

clear events

备注:

发出该命令后,系统将继续执行read events之后的语句。

开关命令执行状态语句(set talk on/off)

确定是否显示VFP命令执行的状态。

语法:

SET TALK ON | OFF

参数:

ON 显示VFP命令执行的状态。

OFF 不显示VFP命令执行的状态。

备注:

使用时,on、off 二者之中必须选择一个。

很多VFP命令执行后,会显示执行后的结果状态,如 locate for 命令执行,如找到记录的会显示被找到的记录号,否则会显示“已到文件尾”,但一般我们在程序中是不需要这些显示的,比如找到了记录就直接显示出来,没找到一般用一个对话框来给出更清楚的提示,所以在程序一开始往往要将 set talk 关闭。结束程序语句(cancel)

结束当前正在运行的所有程序,返回VFP或操作系统。

语法:

cancel

备注:

数值转换字符函数(str())

返回与指定数值表达式对应的字符。

str(数值表达式[,长度[,小数位数]])

返回值的类型

字符型

参数:

数值表达式:要被转换为字符的数值表达式。

长度:转换后字符的长度。该长度等于小数点和小数点右边第个数字所占字符的数目总和。

如果指定长度大于所需长度,自动在前面加空格补齐。

如果指定长度小于所需长度,返回一串星(*)号,表示数值溢出。

如省略长度,则默认长度为10。

小数位数:指定返回字符串中的小数位数。

如指定位数小于实际位数,则返回值四舍五入。

如指定位数大于实际位数,则加0补齐。

如省略小数位数,默认为0。

在指定了小数位数的情况下,如指定长度(第二个参数)小于总长度,但大于整数长度,则返回对小数部分做了四舍五入的字符。

备注:

返回后的值看起来还是数的形式,但它的数据类型已经变了,不再是一个数值,也就是不能再用来做加、减、乘、除的算术运算,但可以和字符进行加减。比如:? '季度'+1

就会出错,因为一个字符是不能和一个数值相加的。写成如下形式就可以了:? '季度'+str(1,1)

结果是:

季度1

注意,这里一定要指定长度,否则由于默认长度是10,就会出现如下结果:

季度 1

假如不知道数值有几位数怎么办呢?请参见ltrim()函数。

字符转换数值函数(val())

将数字组成的字符表达式转换成数字值。

语法:

val(字符表达式)

返回值的类型

数值型

参数:

字符表达式:要被转换为数值的字符表达式。该表达式由最多16位的数字组成,若超过16位,则对其圆整。

备注:

val()函数从左到右返回字符表达式中的数字,直到遇到非数值型字符(忽略前面的空格)时为止。

若字符表达式的第一个字符不是数字,也不是正、负号,则返回0。

举例:

a='123'

如果按下面的写法,就会出错,因为一个字符不能与一个数值相加:

写成如下形式便可以了:

? val(a)+3

结果是126。

取系统日期函数(date())

返回由操作系统控制的当前系统日期。

语法:

date()

返回值的类型

日期型

取年份函数(year())

从指定的日期表达式中返回年份。

语法:

year(日期表达式)

返回值的类型

数值型

参数:

日期表达式:指定的日期表达式,该函数即是返回其年份值。

举例:

? year(date())

如果当前的系统日期是1999年2月5日,则显示的结果为1999。

取月份函数(month())

从指定的日期表达式中返回月份。

语法:

month(日期表达式)

返回值的类型

数值型

参数:

日期表达式:指定的日期表达式,该函数即是返回其月份值。

举例:

? month(date())

如果当前的系统日期是1999年2月5日,则显示的结果为2。

取天日函数(day())

以数值型返回日期表达式是当月的第几天。

语法:

day(日期表达式)

返回值的类型

数值型

参数:

日期表达式:指定的日期表达式,该函数返回该日期是当月的第几天。举例:

? day(date())

如果当前的系统日期是1999年2月5日,则显示的结果为5。

取整函数(int())

返回数值表达式值的整数部分。

语法:

int(数值表达式)

返回值的类型

数值型

参数:

数值表达式:指定的数值表达式,该函数返回其整数部分。

举例:

? int(123.47)

结果是123。

四舍五入函数(round())

对指定表达式进行四舍五入运算,并把结果返回。

语法:

round(数值表达式,小数位数)

返回值的类型

数值型

参数:

数值表达式:指定的数值表达式,该函数返回其四舍五入后的值。

小数位数:保留的小数位数。

举例:

? int(123.457,2)

结果是123.46。

删除标记函数(delete())

确定当前记录是否已做删除标记,若已做删除标记,返回真(.t.),否则返回假(.f.)。

语法:

delete([表别名|工作区])

返回值的类型:

逻辑型

参数:

表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区去检测另一工作区的表的记录是否做了删除标记,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作区,如有该参数的话,别名或工作区只选一个。

记录号函数(recno())

返回当前表或指定表中的当前记录号。

语法:

recno([表别名|工作区])

返回值的类型:

数值型

参数:

表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区去得到另一工作区的表的当前记录号,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作区,如有该参数的话,别名或

工作区只选一个。

记录数函数(reccount())

返回当前表或指定表中的记录数目。

语法:

reccount([表别名|工作区])

返回值的类型:

数值型

参数:

表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区去得到另一工作区的表的记录数,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作区,如有该参数的话,别名或工作区只选一个。

找到记录函数(found())

如果locate、continue、seek等查找记录的命令成功(即找到了记录),该函数返回“真”(.t.),否则返回“假”(.f.)。

语法:

found([表别名|工作区])

返回值的类型:

逻辑型

参数:

表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区知道另一个工作区上次查找记录是否找到,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作区,如有该参数的话,别名或工作区只选一个。

举例:

locate for 姓名='庄稼'

?found()

如找到记录,显示结果为.t.,否则为.f.。

表结尾函数(eof())

确定记录指针是否在表的结尾处。

语法:

eof([表别名|工作区])

返回值的类型:

逻辑型

参数:

表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区知道另一个工作区表的指针是否在尾部,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作区,如有该参数的话,别名或工作区只选一个。

备注:

这里所说的结尾处,并非是指最后一个记录,而是最后一个记录的后面,即没有记录。

举例:

go bottom

skip

?eof()

显示结果为.t.。

如果没有skip,仅仅走到最后一个记录,返回的将是.f.,而必须再往下跳一下才会是“真”结尾。

此时如输入命令:display,则没有记录显示。这一点与bof()函数不同。

表开头函数(bof())

确定记录指针是否在表的开头。

语法:

bof([表别名|工作区])

返回值的类型:

逻辑型

参数:

表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区知道另一个工作区表的指针是否在开头,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作区,如有该参数的话,别名或工作区只选一个。

备注:

这里所说的开头,并非是指第一个记录,而是第一个记录的前面。

举例:

go top

skip -1

?bof()

显示结果为.t.。

如果没有skip-1,仅仅走到第一个记录,返回的将是.f.,而必须再往上跳一下才会是“真”开头。

但与eof()函数不同,此时如输入命令display,将显示第一条记录。

消除后续空格函数(trim())

将字符表达式的后续空格全部删除,并将结果返回。

语法:

trim(字符表达式)

返回值的类型:

字符型

参数:

字符表达式:指定的字符表达式,该函数将删除其后续空格。

备注:

trim()函数等同于rtrim()函数。

举例:

如表的“姓名”字段长度为10,当前内容为“张三”,那么如下语句:

? 姓名+'先生:'

其显示结果是:

张三先生:

而语句:

? trim(姓名)+'先生:'

显示结果是:

张三先生

消除前导空格函数(ltrim())

将字符表达式前面的空格全部删除,并将结果返回。

语法:

trim(字符表达式)

返回值的类型:

字符型

参数:字符表达式:指定的字符表达式,该函数将删除其后续空格。

举例:

在讲str()函数时我们举过一个例,即把一个字符与一个数值相加时,应采用如下形式:

? '季度'+str(1,1)

但是当我们没有办法确定这个数值的位数时,这个办法就行不通了,您不可能规定它的长度只能是1或2等等。那么怎么办呢,采用ltrim()函数可以解决了:? '项目'+ltrim(str(sz))

这里假设事先已有一个数值存入了sz变量,但不知道这个数值是几,也就更不知道有几位数,那么在隐含状态下,str()函数将把sz转换为长度为10的字符,其前面可能有若干空格,通过ltrim()函数的处理,不论前面有多少空格,都可以得到如下结果(假设数值是15):

项目15

如果发出该命令时不带任何参数,则清除当前记录中所有字段的数据。

语法

BLANK

[FIELDS 字段名列表]

[范围]

[FOR 条件]

[WHILE 条件]

[NOOPTIMIZE]

说明

如果使用了字段名列表,则清除指定字段中的数据,另外也可以在字段名前面加上别名,以清除其它工作区的表中数据,但要注意一点,如果当前工作区的记录指针指在了表的末尾,那么它也不能清除您所指定的其它工作区中的字段,即使其它工作区的记录指针没有指向末尾。

COPY FILE 命令

复制文件。

语法

COPY FILE 文件名1 TO 文件名2

说明

文件名中可以用“*”和“?”,如 *.prg。

要注意的一点是“文件名2”必须有,比如:

copy file *.prg to c:\temp\*.prg

不象 DOS 的 COPY 命令可以没有目的文件名,而且命令中的“FILE”也一定要有。

COPY STRUCTURE EXTENDED 命令

将当前工作区的表结构信息复制到另一表中。

语法

COPY STRUCTURE EXTENDED TO 表文件名 [FIELDS 字段名表]

参数说明

FileName:指定结构信息所存放的表文件名。

FIELDS 字段名表:指定需要复制表结构中哪些字段的信息,如省略,则复制所有字段的信息。

说明

该命令将一个表的各字段信息复制到一个新表中,每个字段为一个记录,这是一个专门的表,其字段是固定,这些字段分别记录各字段的字段名、长度、数据类

如图1,即为用

在这个表中就可以看到 rsda.dbf 表的各字段情况。

那么用这个命令产生的结构信息表有什么用呢?这可以让我们在编程时改变一个表的结构,因为信息结构表也是个表,我们可以象操作一般表一样去修改它的内容,当然修改时要遵从表结构的有关规定,比如字段名不能超过10个字符,字段类型必须是上表中的字符之一,字段名不能重名等等。

当然我们修改了这个表后不会对原表马上产生作用,因为它们已经是分别独立的两个表,在物理上没有任何联系,但我们可以首先使用以下命令:

CREATE 表文件名 FROM 结构信息表文件名

根据结构信息表创建一个新表,再将原表的数据加到这个新表中,删除原表,将新表改为原表名,这样就修改了表的结构。比如,我们要将 rsda 表部门字段的

将表和索引中的数据存入磁盘。

语法

FLUSH

说明

当我们修改一个表时,修改完后,我们可能并不马上将表关闭,那么这时所做的修改可能只是在内存中,而没有真正存到盘,如果这时死机或停电,那么......,所以我们可以在程序适当的地方用此命令确保数据存盘。

比如,我们可以在菜单中加个“保存”命令,该命令就调用 FLUSH 语句,供操作者在适当的时候调用此命令来保存数据。

还可以用一个表单,在其中放一个计时器,在计时器的 timer 事件中用此命令,这样就做成一个具有自动保存数据的功能,甚至可以在菜单中加一个设置计时器时间的命令,以供操作者设置自动保存数据的间隔时间。

FOR...ENDFOR 命令

按指定的次数循环执行一组命令。

语法

FOR 变量=初始值 TO结束值 STEP 步长值

命令组

[EXIT]

[LOOP]

ENDFOR | NEXT

参数描述

变量:指定一个变量作为计数器,该变量可以不预先存在,FOR 命令会自动创建。初始值 TO 结束值:即计数器的初始值和结束值,也就是指定循环的次数。STEP 步长值:设定计数器每次增加或减少的量,如果省略此子句,则每次增加1,比如 for jsq=1 to 10,那么将会循环10次,如果是 for jsq=1 to 10 step 2,那么循环将会是5次,因为每循环1次计数器增加2,从1到10只需增加5次就行了。

可能有人会问了,既然循环5次,那为什么不 for jsq=1 to 5 呢?这往往是为了在某些情况下使程序编起来方便和易于理解,比如要对数据表中的记录进行某项操作,要求每隔一条记录做一次,起始和结束的记录是根据具体情况变化的,也就是初始值和结束值都是变量,那么我们就可以使用步长子句,并将步长设为2,这样就不用具体去计算到底需要多少次循环了,如果再加上步长也是变量,

行某项操作时就需要了,比如我们需要对记录进行某项操作,这个操作要求先处理第10条记录,再第9条(因为在处理第9条时需要根据第10条的情况),依

EXIT 和 LOOP:与 DO WHILE 中的意义一样。

说明

计数器只有在大于结束值时才结束循环,即当计数器等于结束值时仍要循环,也就是说:

for jsq=1 to 10

是循环10次,而不是9次,也就是当 jsq 的值为10时,还要循环一次,当它

设置一命令,当系统错误发生时,该命令执行。

这也就是程序员们常说的错误捕获陷井。所谓错误捕获陷井的意思就是在系统中启动一个监控程序,一旦错误发生,这个监控程序就将错误捕获,并不让错误显示出来,可保证程序的继续运行,然后用一个命令去对出现的错误进行处理,比

如显示一个错误提示等。如果错误不发生,这个命令则始终不执行。

语法

ON ERROR [命令]

参数说明

命令:此即为指定的在捕获错误后所要执行的程序。一旦程序执行到某个语句发

说明

ON ERROR 命令不能嵌套,也就是说在 ON ERROR 所执行的子程序中不能再有 ON ERROR 命令,否则等于取消错误捕获。

示例

当 DBF 文件的结构化复合索引损坏时,如果您打开 DBF 文件就会出错,下面的

设置一命令,当按了ESCAPE时,该命令执行。

语法

ON ESCAPE

[命令]

参数说明

命令:该命令即为指定的按下 ESC 键后所要执行的命令。

假设当程序执行到第10条语句时您按下了 ESC,那么在命令执行完后,将接着

执行第11条语句,如果命令是调用一个子程序,而子程序中有 RETRY 语句,则返回重新执行第10句。

说明

假如 ON KEY LABEL 命令也同时指定了 ESC 键,ON ESCAPE 所指定的命令优先执行。

指定一个命令,当键盘上某个键(也可以是组合键或鼠标)被按下后,该命令执行。

语法

ON KEY LABEL 键名 [命令]

参数描述

序陷井)。

说明

on key label ctrl+e tc=.t. tc=.f.

do while .t.

*循环程序组

if tc

exit

endif

enddo

on key label ctrl+e

PACK DATABASE 命令

将数据库所有表中作了删除标记的记录物理删除,即真正从磁盘上删除。

语法

PACK DATABASE

说明

执行该命令时,数据库必须以独占方式打开。

该命令可用于在程序中定期清理数据库各表中的删除记录,因为软件可能经常要作删除,对大的表会影响运行速度,所以可以在软件中设置 set delete on,即隐去作了删除标记的记录,但这些记录并没有真正删除,但这些垃圾记录太多了也对系统不利,故可设一功能由操作人员在需要时运行此命令来清理整个数据库。

SCAN...ENDSCAN 命令

将记录指针由头到尾扫描一遍,每移动一次记录指针可执行一组命令。

类似于循环 DO...ENDDO或 FOR...ENDFOR,只是这是专门针对表的循环。

语法

SCAN [范围] [FOR 条件1] [WHILE 条件2]

[命令组]

[LOOP]

[EXIT]

ENDSCAN

参数描述

范围:在指定范围内扫描,即不从开头扫描到最后。

FOR 条件1及 WHILE 条件2:只扫描符合条件的记录。

如果不带范围和条件子句,则隐含扫描表中的全部记录。

示例

库存日记帐表(字段有日期、入库数、出库数,库存数),每记录一笔出入库,则计算相应的库存数并放入表中,有时意外情况可能导致库存数出错,因此需要

或 continue 进行查询,速度很受影响。

当输入的内容填满输入区域时是否需要按回车键跳出输入区域。

语法

SET CONFIRM ON | OFF

参数描述

SET DEFAULT 命令

设置隐含的驱动器及目录。

设置了隐含的路径,我们可以在程序运行打开每个隐含路径下的文件时不用再指

VF常用函数列表

VF常用函数列表数值函数: 1.绝对值和符号函数 格式:ABS(<数值表达式>) SIGN(<数值表达式>) 例如:ABS(-5)=5,ABS(4)=4,SIGN(8)=1,SIGN(-3)=-1,SIGN(0)=0 2.求平方根表达式 格式:SQRT(<数值表达式>) 例如:SQRT(16)=4,它与开二分之一次方等同。 3.圆周率函数 格式:PI() 4.求整数函数 格式:INT(<数值表达式>)返回数值表达式的整数部分 CEILING(<数值表达式>)返回大于或等于表达式的最小整数FLOOR(<数值表达式>)返回小于或等于表达式的最大整数 例如: INT(5.8)=5.8,INT(-7.8)=-7,CEILING(6.4)=7,CEILING(-5.9)=-5 FLOOR(9.9)=9 5.四舍五入函数 格式:ROUND(<数值表达式1>,<数值表达式2>) 功能:返回制定表达式在制定位置四舍五入的结果 例如:

ROUND(345.345,2)=345.35,ROUND(345.345,1)=345.3,ROUND(345.345,0)=345,ROUND(345.345,-1)=350 6.求余函数 格式:MOD(<数值表达式1>,<数值表达式2>) 例如: MOD(10,3)=1 MOD(10,-3)=-2 MOD(-10,3)=2 MOD(-10,-3)=-1 求余数的规律:1.首先按照两数的绝对值求余 2.表达式1的绝对值大于表达式2的绝对值,则余数为表达式1的值 3.余数取表达式1的正负号 4.若两数异好号,余数在加上表达式2的值为最终的结果 7. 求最大值和最小值函数 MAX(数值表达式列表) MIN (数值表达式列表) 例如:MAX(2,3,5)=5 MAX(…2?,?12?,?05?)=2 MAX(…汽车?,?飞机?,?轮船?) 字符串比较的规律: 字符串比较首先比较第一个字母,如果有结果那就不用在进行比较了。如果相等在进行第二个字母的比较,以次类推。 字符函数 1.求字符串长度函数 格式:LEN(<字符表达式>) 功能:返回制定字符表达式的长度,即所包含的字符个数。函数值为数值型 例如:X=“中文Visual FoxPro6.0” 则LEN(X)=20 2.大小写转换函数

VFP常用函数大全

VFP常用函数大全 一.字符及字符串处理函数: 字符及字符串处理函数的处理对象均为字符型数据,但其返回值类型各异. 1.取子串函数: 格式:substr(c,n1,n2) 功能:取字符串C第n1个字符起的n2个字符.返回值类型是字符型. 例:取姓名字符串中的姓. store "王小风" to xm ?substr(xm,1,2) 结果为:王 2.删除空格函数:以下3个函数可以删除字符串中的多余空格,3个函数的返回值均为字符型. trim(字符串):删除字符串的尾部空格alltrim(字符串):删除字符串的前后空格 ltrim(字符串):删除字符串的前面的空格例:去掉第一个字符串的尾空格后与第二个字符串连接 store "abcd " to x store "efg" to y ?trim(x)+y abcdefg 3.空格函数: 格式:space(n) 说明:该函数的功能是产生指定个数的空格字符串(n用于指定空格个数). 例:定义一个变量dh,其初值为8个空格store space(8) to dh 4.取左子串函数: 格式:left(c,n) 功能:取字符串C左边n个字符. 5.取右子串函数: 格式:right(c,n) 功能:取字符串c右边的n个字符例:a="我是中国人" ?right(a,4) 国人?left(a,2) 我 6.empty(c):用于测试字符串C是否为空格. 7.求子串位置函数: 格式:At(字符串1,字符串2) 功能:返回字符串1在字符串2的位置 例:?At("教授","副教授") 2 8.大小写转换函数: 格式: lower(字符串) upper(字符串) 功能:lower()将字符串中的字母一律变小写;upper()将字符串中的字母一律变大写例: bl="FoxBASE" ?lower(bl)+space(2)+upper(bl) foxbase FOXBASE 9.求字符串长度函数: 格式:len(字符串) 功能:求指定字符串的长度 例:a="中国人" ?len(a) 6 二.数学运算函数: 1.取整函数: 格式:int(数值) 功能:取指定数值的整数部分. 例:取整并显示结果?int(25.69) 25 2.四舍五入函数: 格式:round(数值表达式,小数位数) 功能:根据给出的四舍五入小数位数,对数值表达式的计算结果做四舍五入处理 例:对下面给出的数四舍五入并显示其结果 ?round(3.14159,4),round(2048.9962,0),round(2048.9962,-3

Excel中常用函数列表

数据库函数: DA VERAGE 返回选择的数据库条目的平均值 DCOUNT 计算数据库中包含数字的单元格个数 DCOUNTA 计算数据库中的非空单元格 DGET 从数据库提取符合指定条件的单个记录 DMAX 返回选择的数据库条目的最大值 DMIN 返回选择的数据库条目的最小值 DPRODUCT 将数据库中符合条件的记录的特定字段中的值相乘DSTDEV 基于选择的数据库条目的样本估算标准偏差DSTDEVP 基于选择的数据库条目的总体计算标准偏差 DSUM 将数据库中符合条件的记录的字段列中的数字相加 DV AR 基于选择的数据库条目的样本估算方差 DV ARP 基于选择的数据库条目的样本总体计算方差GETPIVOTDATA 返回存储在数据透视表中的数据 日期与时间函数 DA TE 返回特定日期的序列号 DA TEV ALUE 将文本格式的日期转换为序列号 DAY 将序列号转换为月的日期 DAYS360 计算基于一年 360 天的两个日期间的天数 EDATE 返回用于表示开始日期之前或之后月数的日期的序列号EOMONTH 返回指定个数月之前或之后的月的末日的序列号HOUR 将序列号转换为小时 MINUTE 将序列号转换为分钟 MONTH 将序列号转换为月 NETWORKDAYS 返回两个日期之间的所有工作日个数 NOW 返回当前日期和时间的序列号 SECOND 将序列号转换为秒 TIME 返回特定时间的序列号 TIMEV ALUE 将文本格式的时间转换为序列号 TODAY 返回今天日期的序列号 WEEKDAY 将序列号转换为一星期的某天 WEEKNUM 将序列号转换为代表该星期为一年中的第几周的数字WORKDAY 返回指定个数工作日之前或之后日期的序列号

VF考试复习 命令大全

VF命令一览表 一、命令 https://www.wendangku.net/doc/8113527839.html,e 表名打开表 2.List 显示表记录,但不能修改 3.browse 浏览表记录,可以修改 4.display 显示记录指针指向的记录 5.append 追加记录 6.append blank 追加空白记录 7.insert blank 插入空白记录 8.delete 逻辑删除记录,记录前出现星号 9.pack 物理删除,将逻辑删除的记录彻底删除 10.recall 记录恢复 11.zap 删除表里的所有记录 12.go n 指向第n条记录 13.go top 指向第一条记录 14.go bottom 指向最后一条记录 15.skip n 往下跳n条记录 16.skip -n 往上跳n条记录 17.? 从屏幕的下一行的第一列起显示结果 18.? ? 从当前行当前列起显示结果 https://www.wendangku.net/doc/8113527839.html,e sb copy to sb() 复制sb表给sb()表 20.recno() 记录号函数 21.bof() 上溢出 22.eof() 下溢出 23.dimension x(4) 定义数组x,里面有四个元素,其中每个元素的默认值为.F. declare和dimension 相同 24.replace 替换 25.add 表示增加字段 26.distinct 不重复记录 27.error 错误 28.continue 继续 29.else if 否则 30.column 列 31.input 显示数值 32.accept 显示字符串 33.wait 是弹出的一个信息框 34.drop 删除字段或删除表 35.otherwise 其它情况 36.check 规则 37.cursor 临时表 38.build 连编 二、VF里文件类型 1.项目.pjx project 2.数据库.dbc database

VFP中常用命令集

VFP中常用命令集 一、主要命令: 1、CREATE 作用:建立一个新的表。 格式:CREATE [<文件>|?](注意,命令字符可取前面四个字符,后面可省略不写,即CREA,下同;中括号表示其中的参数是可选的;|管道符号表示两个参数只能选择一个,不能同时选择,下同。) 说明:文件指建立以.dbf为扩展名的VFP数据库文件,在命令后面加上一个问号表示系统会弹出 对话框,要求用户输入想要建立的表名。在命令中不加文件名或问号系统也会弹出对话框,要求用 户输入想要建立的表名。 2、MODIFY STRUCTURE 作用:显示表文件结构,并允许修改此表的结构。 格式:MODIFY STRUCTURE 说明:只有在用USE命令打开表文件以后,才能显示或修改表文件的结构。3、APPEND 作用:在当前表的尾部(无论表中有无记录)追加记录(在当前表指当前正使用的表)。 格式:APPEND [BLANK] 说明:在APPEND命令后面加上BLANK参数表示在当前表的尾部添加一条空白记录。无BLANK参数时,表示在当前表的尾部添加一条记录并要求用户输入相应的字段内容。 4、INSERT 作用:在表文件中间插入一个新记录。 格式:INSERT [BEFORE] [BLANK] 说明:INSERT 在当前记录后插入一记录; INSERT BEFORE 在当前记录前插入一记录; INSERT BEFORE BLANK 在当前记录前插入一空记录。 5、BROWSE 作用:主要用于打开浏览窗口,查阅表文件并同时进行修改。 格式:BROWSE 6、USE 作用:打开和关闭表文件。 格式:USE [<文件名>]

VFP函数大全

VFP函数大全 %运算符用于计算并返回两个数值表达式相除之后的余数 $(包含)运算符用于进行字符表达式之间的包含关系运算,如果一个字符表达式包含在另一个字符表达式之中,则函数返回真 ABS() 计算并返回指定数值表达式的绝对值 ACLASS() 用于将一个对象的父类名放置于一个内存数组中 ACOPY() 把一个数组的元素拷贝到另一个数组中 ACOS() 计算并返回一个指定数值表达式的余弦值 ADATABASES() 用于将所有打开的数据库名和它的路径存入一个内在变量数组中 ADB OBJECT S() 用于把当前数据库中的连接、表或SQL视图的名存入内存变量数组中 ADEL() 用于从一维数据中删除一个元素,或从二维数组中删除一行或者一列元素 ADIR() 将文件的有关信息存入指定的数组中,然后返回文件数 AELEMENT() 通过元素的下标,返回元素号 AFIELDS 将当前的结构信息存入数组中,然后返回表中的字段数 AFONT() 将可用字体的信息存入数组中 AERROR() 用于创建包含VFP或ODBC错误信息的内存变量 AINS() 在一维数组中插入一个元素或在二维数组中插入一行或一列元素 AINSTANCE() 用于将类的所有实例存入内存变量数组中,然后返回数组中存放的实例数 ALEN() 返回数组中元素、行或者列数 ALIAS() 返回当前工作区或指定工作区内表的别名 ALLTRIM() 从指定字符表达式的首尾两端删除前导和尾随的空格字符,然后返回截去空格后的字符串 AMEMBERS() 用于将对象的属性、过程和成员对象存入内存变量数组中

ANSITOOEM() 将指定字符表达式中的每个字符转换为MS-DOS(OEM)字符集中对应字符 APRINTERS() 将Print Manager中安装的当前打印机名存入内存变量数组中 ASC() 用于返回指定字符表达式中最左字符的ASCII码值 ASCAN() 搜索一个指定的数组,寻找一个与表达式中数据和数据类型相同的数组元素 ASELOBJ() 将活动的Form设计器当前控件的对象引用存储到内存变量数组中 ASIN() 计算并返回指定数值表达式反正弦值 ASORT() 按升序或降序排列数组中的元素 ASUBSCRIPT() 计算并返回指定元素号的行或者列坐标 AT() 寻找字符串或备注字段在另一字符串或备注字段中的第一次出现,并返回位置 ATAN() 计算并返回指定数值表达式的反正切值 ATC() 寻找字符串或备注字段中的第一次出现,并返回位置,将不考虑表达式中字母的大小写 ATCLINE() 寻找并返回一个字符串表达式或备注字段在另一字符表达式或备注字段中第一次出现的行号。不区分字符大小写 ATLINE() 寻找并返回一个字符表达式或备注字段在另一字符表达式或备注字段中第一次出现的行号ATN2() 根据指定的值返回所有4个像限内的反正切值 AUSED() 用于将一次会话期间的所有表别名和工作区存入变量数组之中 BAR() 从用DEFINE POPUP命令定义的菜单中返回最近所选择的菜单项的编号,或返回一个从VFP菜单所选择的一个菜单命令 BARCOUNT() 返回DEFINE POPUP命令所定义的菜单中的菜单项数,或返回VFP系统菜单上的菜单项数 BARPROMPT() 返回一个菜单项的有关正文 BETWEEN() 确定指定的表达式是否介于两个相同类型的表达式之间 BITAND() 返回两个数值表达式之间执行逐位与(AND)运算的结果 BITCLEAR() 清除数值表达式中的指定位,然后再返回结果值 BITLSHIFT() 返回将数值表达式左移若干位后的结果值

最常用函数公式大全

Excel函数公式大全工作中最常用Excel函数公式大全 一、数字处理 1、取绝对值 =ABS(数字) 2、取整 =INT(数字) 3、四舍五入 =ROUND(数字,小数位数) 二、判断公式 1、把公式产生的错误值显示为空 公式:C2 =IFERROR(A2/B2,"") 说明:如果是错误值则显示为空,否则正常显示。 ? 2、IF多条件判断返回值 公式:C2 =IF(AND(A2<500,B2="未到期"),"补款","") 说明:两个条件同时成立用AND,任一个成立用OR函数.

? 三、统计公式 1、统计两个表格重复的内容 公式:B2 =COUNTIF(Sheet15!A:A,A2) 说明:如果返回值大于0说明在另一个表中存在,0则不存在。 ? 2、统计不重复的总人数 公式:C2 =SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8)) 说明:用COUNTIF统计出每人的出现次数,用1除的方式把出现次数变成分母,然后相加。

? 四、求和公式 1、隔列求和 公式:H3 =SUMIF($A$2:$G$2,H$2,A3:G3) 或 =SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3) 说明:如果标题行没有规则用第2个公式 ? 2、单条件求和 公式:F2 =SUMIF(A:A,E2,C:C) 说明:SUMIF函数的基本用法

? 3、单条件模糊求和 公式:详见下图 说明:如果需要进行模糊求和,就需要掌握通配符的使用,其中星号是表示任意多个字符,如"*A*"就表示a前和后有任意多个字符,即包含A。 ? 4、多条件模糊求和 公式:C11 =SUMIFS(C2:C7,A2:A7,A11&"*",B2:B7,B11) 说明:在sumifs中可以使用通配符*

vfp常用函数

VPF常用函数 一.字符及字符串处理函数:字符及字符串处理函数的处理对象均为字符型数据,但其返回值类型各异. 1.取子串函数: 格式:substr(c,n1,n2) 功能:取字符串C第n1个字符起的n2个字符.返回值类型是字符型. 例:取姓名字符串中的姓. store \"王小风\" to xm ?substr(xm,1,2) 结果为:王 2.删除空格函数:以下3个函数可以删除字符串中的多余空格,3个函数的返回值均为字符型. trim(字符串):删除字符串的尾部空格 alltrim(字符串):删除字符串的前后空格 ltrim(字符串):删除字符串的前面的空格 例:去掉第一个字符串的尾空格后与第二个字符串连接 store \"abcd \" to x store \"efg\" to y ?trim(x)+y abcdefg 3.空格函数: 格式:space(n) 说明:该函数的功能是产生指定个数的空格字符串(n用于指定空格个数). 例:定义一个变量dh,其初值为8个空格 store space(8) to dh 4.取左子串函数: 格式:left(c,n) 功能:取字符串C左边n个字符. 5.取右子串函数: 格式:right(c,n) 功能:取字符串c右边的n个字符 例:a=\"我是中国人\" ?right(a,4) 国人 ?left(a,2) 我 6.empty(c):用于测试字符串C是否为空格. 7.求子串位置函数:

格式:At(字符串1,字符串2) 功能:返回字符串1在字符串2的位置 例:?At(\"教授\",\"副教授\") 2 8.大小写转换函数: 格式: lower(字符串) upper(字符串) 功能:lower()将字符串中的字母一律变小写;upper()将字符串中的字母一律变大写例: bl=\"FoxBASE\" ?lower(bl)+space(2)+upper(bl) foxbase FOXBASE 9.求字符串长度函数: 格式:len(字符串) 功能:求指定字符串的长度 例:a=\"中国人\" ?len(a) 6 二.数学运算函数: 1.取整函数: 格式:int(数值) 功能:取指定数值的整数部分. 例:取整并显示结果 ?int(25.69) 25 2.四舍五入函数: 格式:round(数值表达式,小数位数) 功能:根据给出的四舍五入小数位数,对数值表达式的计算结果做四舍五入处理例:对下面给出的数四舍五入并显示其结果 ?round(3.14159,4),round(2048.9962,0),round(2048.9962,-3) 3.1416 2049 2000 3.求平方根函数: 格式:sqrt(数值) 功能:求指定数值的算术平方根 例:?sqrt(100) 10

vfp函数命令大全

vfp函数大全 %运算符用于计算并返回两个数值表达式相除之后的余数 $(包含)运算符用于进行字符表达式之间的包含关系运算,如果一个字符表达式包含在另一个字符表达式之中,则函数返回真 ABS() 计算并返回指定数值表达式的绝对值ACLASS() 用于将一个对象的父类名放置于一个内存数组中 ACOPY() 把一个数组的元素拷贝到另一个数组中ACOS() 计算并返回一个指定数值表达式的余弦值 ADATABASES() 用于将所有打开的数据库名和它的路径存入一个内在变量数组中 ADB OBJECT S() 用于把当前数据库中的连接、表或SQL视图的名存入内存变量数组中 ADEL() 用于从一维数据中删除一个元素,或从二维数组中删除一行或者一列元素 ADIR() 将文件的有关信息存入指定的数组中,然后返回文件数 AELEMENT() 通过元素的下标,返回元素号AFIELDS 将当前的结构信息存入数组中,然后返回表中的字段数 AFONT() 将可用字体的信息存入数组中AERROR() 用于创建包含VFP或ODBC错误信息的内存变量 AINS() 在一维数组中插入一个元素或在二维数组中插入一行或一列元素 AINSTANCE() 用于将类的所有实例存入内存变量数组中,然后返回数组中存放的实例数 ALEN() 返回数组中元素、行或者列数 ALIAS() 返回当前工作区或指定工作区内表的别名 ALLTRIM() 从指定字符表达式的首尾两端删除前导和尾随的空格字符,然后返回截去空格后的字符串 AMEMBERS() 用于将对象的属性、过程和成员对象存入内存变量数组中 ANSITOOEM() 将指定字符表达式中的每个字符转换为MS-DOS(OEM)字符集中对应字符APRINTERS() 将Print Manager中安装的当前打印机名存入内存变量数组中 ASC() 用于返回指定字符表达式中最左字符的ASCII码值 ASCAN() 搜索一个指定的数组,寻找一个与表达式中数据和数据类型相同的数组元素 ASELOBJ() 将活动的Form设计器当前控件的对象引用存储到内存变量数组中 ASIN() 计算并返回指定数值表达式反正弦值ASORT() 按升序或降序排列数组中的元素ASUBSCRIPT() 计算并返回指定元素号的行或者列坐标 AT() 寻找字符串或备注字段在另一字符串或备注字段中的第一次出现,并返回位置 ATAN() 计算并返回指定数值表达式的反正切值ATC() 寻找字符串或备注字段中的第一次出现,并返回位置,将不考虑表达式中字母的大小写ATCLINE() 寻找并返回一个字符串表达式或备注字段在另一字符表达式或备注字段中第一次出现的行号。不区分字符大小写 ATLINE() 寻找并返回一个字符表达式或备注字段在另一字符表达式或备注字段中第一次出现的行号 ATN2() 根据指定的值返回所有4个像限内的反正切值 AUSED() 用于将一次会话期间的所有表别名和工作区存入变量数组之中 BAR() 从用DEFINE POPUP命令定义的菜单中返回最近所选择的菜单项的编号,或返回一个从VFP 菜单所选择的一个菜单命令 BARCOUNT() 返回DEFINE POPUP命令所定义的菜单中的菜单项数,或返回VFP系统菜单上的菜单项数 BARPROMPT() 返回一个菜单项的有关正文BETWEEN() 确定指定的表达式是否介于两个相同类型的表达式之间 BITAND() 返回两个数值表达式之间执行逐位与(AND)运算的结果 BITCLEAR() 清除数值表达式中的指定位,然后再返回结果值 BITLSHIFT() 返回将数值表达式左移若干位后的结果值 BITNOT() 返回数值表达式逐位进行非(NOT)运算后的结果值 BITOR() 计算并返回两个数值进行逐位或(OR)运算的结果 BITRSHIFT() 返回将一个数值表达式右移若干位后的结果值 BITSET() 将一个数值的某位设置为1,然后返回结果值 BITTEST() 用于测试数值中指定的位,如果该位的值是1,则返回真,否则返回假 BITXOR() 计算并返回两个数值表达式进行逐位异或(XOR)运算后的结果 BOF() 用于确定记录指针是否位于表的开始处CANDIDATE() 如果索引标记是候选索引标记则返回真,否则返回假 CAPSLOCK() 设置并返回CapsLock键的当前状态CDOW() 用于从给定Date或Datetime类型表达式

VFP常用函数大全整理

VFP常用函数大全整理 一.字符及字符串处理函数:字符及字符串处理函数的处理对象均为字符型数据,但其返回值类型各异. 1.取子串函数: 格式:substr(c,n1,n2) 功能:取字符串C第n1个字符起的n2个字符.返回值类型是字符型. 例:取姓名字符串中的姓. store \"王小风\" to xm ?substr(xm,1,2) 结果为:王 2.删除空格函数:以下3个函数可以删除字符串中的多余空格,3个函数的返回值均为字符型. trim(字符串):删除字符串的尾部空格 alltrim(字符串):删除字符串的前后空格 ltrim(字符串):删除字符串的前面的空格 例:去掉第一个字符串的尾空格后与第二个字符串连接 store \"abcd \" to x store \"efg\" to y ?trim(x)+y abcdefg 3.空格函数: 格式:space(n) 说明:该函数的功能是产生指定个数的空格字符串(n用于指定空格个数). 例:定义一个变量dh,其初值为8个空格 store space(8) to dh 4.取左子串函数: 格式:left(c,n) 功能:取字符串C左边n个字符. 5.取右子串函数: 格式:right(c,n) 功能:取字符串c右边的n个字符 例:a=\"我是中国人\" ?right(a,4) 国人 ?left(a,2) 我 6.empty(c):用于测试字符串C是否为空格. 7.求子串位置函数: 格式:At(字符串1,字符串2) 功能:返回字符串1在字符串2的位置 例:?At(\"教授\",\"副教授\") 2

8.大小写转换函数: 格式: lower(字符串) upper(字符串) 功能:lower()将字符串中的字母一律变小写;upper()将字符串中的字母一律变大写 例: bl=\"FoxBASE\" ?lower(bl)+space(2)+upper(bl) foxbase FOXBASE 9.求字符串长度函数: 格式:len(字符串) 功能:求指定字符串的长度 例:a=\"中国人\" ?len(a) 6 二.数学运算函数: 1.取整函数: 格式:int(数值) 功能:取指定数值的整数部分. 例:取整并显示结果 ?int(25.69) 25 2.四舍五入函数: 格式:round(数值表达式,小数位数) 功能:根据给出的四舍五入小数位数,对数值表达式的计算结果做四舍五入处理 例:对下面给出的数四舍五入并显示其结果 ?round(3.14159,4),round(2048.9962,0),round(2048.9962,-3) 3.1416 2049 2000 3.求平方根函数: 格式:sqrt(数值) 功能:求指定数值的算术平方根 例:?sqrt(100) 10 4.最大值、最小值函数: 格式: Max(数值表达式1,数值表达式2) Min(数值表达式1,数值表达式2) 功能:返回两个数值表达式中的最大值和最小值 例:

VFP常用函数、属性、事件和方法

VFP常用命令,函数,属性,事件和方法一.常用命令 1.CREATE TABLE-SQL 创建一个含有指定字段的表。 2.ALTER TABLE-SQL 以编程方式修改表的结构。 3.SELECT 激活指定工作区。 4.USE 打开一个表及其相关索引文件,或打开一个SQL视图。5.CLOSE TABLES 关闭所有打开数据库中的所有表。 6.COPY STRUCTURE 用当前选择的表结构创建一个新的空自由表。 7.COPY TO 用当前选定表的内容创建新文件。 8.RENAME TABLE 重命名当前数据库中的表。 9.BROWSE 打开浏览窗口。 10.A PPEND 在表的末尾添加一个或多个新记录。 11.A PPEND FROM 从一个文件中读入记录,添加到当前表的尾部。 12.G O/GOTO 将记录指针移到指定记录上。 13.L OCATE 按顺序搜索表,从而找到满足指定逻辑表达式的第一个记录。14.S EEK 在一个表中搜索首次出现的一个记录。 15.S KIP 使记录指针在表中向前或向后移动。 16.C ONTINUE 继续执行先前的LOCA TE命令。 17.E DIT 显示要编辑的字段。 18.D ELETE 给要删除的记录做标记。 19.D ELETE-SQL 给要删除的记录做标记。 20.P ACK 从当前表中永久删除有删除标记的记录。 21.R ECALL 恢复所选表中带删除标记的记录。

22.Z AP 从表中删除所有记录。 23.I NSERT-SQL 在表尾追加一个包含指定字段值的记录。 24.R EPLACE 更新表的记录内容。 25.U PDATE-SQL 以新值更新表中的记录。 26.S ET EXCLUSIVE 指定Visual FoxPro在网络上是以独占方式,还是以共享方式打开表文件。 27.S ET FILTER 指定访问当前表中记录时必须满足的条件。 28.S ET DELETED 指定Visual FoxPro 是否处理标有删除标记的记录。 29.S ET INDEX 打开一个或多个索引文件,供当前表使用。 30.S ET ORDER 指定表的主控索引文件或标识。 31.G A THER 将当前选定表中的当前记录的数据替换为某个数组、内存变量组或对象中的数据。32.S CATTER 从当前记录中把数据复制到一组内存变量或数组中。 33.O PEN DATABASE 打开一个数据库。 34.S ET DATABASE 指定当前数据库。 35.D ELETE DATABASE 从磁盘上删除数据库。 36.D ISPLAY DA TABASE 显示有关当前数据库的信息。 37.M ODIFY DATABASE 打开数据库设计器,让用户能够交互地修改当前数据库。 38.V ALIDATE DA TABASE 保证当前数据库中表和索引位置的正确性。 39.S ELECT-SQL 从一个表或多个表中检索数据。 40.D O 执行一个Visual FoxPro 程序或过程。 41.D O FORM 运行用表单设计器创建的、编译过的表单或表单集。 42.R EPORT 根据MODIFY REPORT或CREATE REPORE创建的报表定义文件,显示或打印报表。43.C ALCULATE 对表中的字段或包含字段的表达式进行财务和统计操作。

C程序设计常用函数列表

C语言常用函数 2009-11-07 22:53 1、字符处理函数 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换头文件 ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F),返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n'), 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 2、数学函数 本分类给出了各种数学计算函数

vfp中地常用函数与命令

VFP常用的命令和函数 1.数据库操作语言 使用可以CLOSE 命令关闭各种类型的文件。 DBC( ) 函数返回当前数据库的名称和路径。SQLCANCEL( ) 函数请求取消一条正在执行的 SQL 语句。SQLCOMMIT( ) 函数提交一个事务处理。SQLCONNECT( ) 函数建立一个对数据源的连接。SQLDISCONNECT( ) 函数结束一个对数据源的连接。SQLEXEC( ) 函数发送一条 SQL 语句到数据源中处理。SQLGETPROP( ) 函数获取一个活动连接的当前设置。 SQLMORERESULTS( ) 函数如果存在多个可用的结果集,则将另一个结果集复制到Visual FoxPro 临时表(cursor)中。 SQLROLLBACK( ) 函数取消当前事务处理期间所做的任何更改。SQLSETPROP( ) 函数指定一个活动连接的设置。SQLSTRINGCONNECT( ) 函数使用一个连接字符串建立与数据源的连接。TABLEREVERT( ) 函数放弃对缓冲行、缓冲表或临时表(cursor)的修改。 TABLEUPDATE( ) 函数提交对缓冲行、缓冲表或临时表(cursor)适配器的修改。 字段操作语言 使用可以BLANK 命令清除字段中的数据。 DELETED( ) 函数指出一个记录是否被标记为删除。FCOUNT( ) 函数返回一个表中的字段数量。 FIELD( ) 函数根据编号返回表中的字段名。 GATHER 命令用来自指定源的数据替换记录中的数据。SCATTER 命令从当前记录中复制数据到指定的目标。SET EXACT 命令指定比较不同长度两个串时的规则。

Excel常用函数公式大全(实用)

Excel常用函数公式大全 1、查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复","")。 2、用出生年月来计算年龄公式:=TRUNC((DAYS360(H6,"2009/8/30",FALSE))/360,0)。 3、从输入的18位身份证号的出生年月计算公式: =CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2))。 4、从输入的身份证号码内让系统自动提取性别,可以输入以下公式: =IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))公式内的“C2”代表的是输入身份证号码的单元格。 1、求和:=SUM(K2:K56) ——对K2到K56这一区域进行求和; 2、平均数:=AVERAGE(K2:K56) ——对K2 K56这一区域求平均数; 3、排名:=RANK(K2,K$2:K$56) ——对55名学生的成绩进行排名; 4、等级:=IF(K2>=85,"优",IF(K2>=74,"良",IF(K2>=60,"及格","不及格"))) 5、学期总评:=K2*0.3+M2*0.3+N2*0.4 ——假设K列、M列和N列分别存放着学生的“平时总评”、“期中”、“期末”三项成绩; 6、最高分:=MAX(K2:K56) ——求K2到K56区域(55名学生)的最高分; 7、最低分:=MIN(K2:K56) ——求K2到K56区域(55名学生)的最低分; 8、分数段人数统计: (1)=COUNTIF(K2:K56,"100") ——求K2到K56区域100分的人数;假设把结果存放于K57单元格; (2)=COUNTIF(K2:K56,">=95")-K57 ——求K2到K56区域95~99.5分的人数;假设把结果存放于K58单元格; (3)=COUNTIF(K2:K56,">=90")-SUM(K57:K58) ——求K2到K56区域90~94.5分的人数;假设把结果存放于K59单元格; (4)=COUNTIF(K2:K56,">=85")-SUM(K57:K59) ——求K2到K56区域85~89.5分的人数;假设把结果存放于K60单元格;

vf命令大全

命令大全 1. set make to [日期分隔符]设置日期分隔符,默认’/’ 2. set date to [American|MDY|YMD] 设置日期显示格式 3. set century on/off 默认显示两位数年,on显示四位数年 4. set strictdate to [0|1|2] 用于设置是否对日期格式进行严格检查 5. store<表达式> to <内存变量> 赋值函数 6. dimension <数组名>或declare<数组名>创建数组(自动赋值.f.) 7. list memory[like<通配符>] [to printer |to file<文件名>]滚屏显示.display memory 分屏显示 8. clear memory =release all 内存变量清除,release <内存变量名>.Release all[like<通配符>|except <通配符>] 9. scatter [fields <字段名表>][memo] to <数组名>将表当前记录复制到数组. 10. scatter [fields like <通配符>|fields except <通配符>[memo]to<数组名>] 11. gather from <数组名>[fields <字段名表>][memo]数组复制到表 12. gather from <数组名>[fields like <通配符>][fields except <通配符>][memo] 13. set collate to <排序次序名>设置排序次序。机器,拼音默认,笔画。 14. set exact on/off 字符串精确比较。 15. set hours to 12/24 时间显示12/24小时制 函数表达式 1. abs()绝对值 2. sign()符号函数(-1.0.1) 3. sqrt()求平方根 4. pi()π 5. round(<数值表达式>,<保留小数位数>)求整,无条件取整 6. mod(<数值1>,<数值2>)求余 7. max()最大值 8. min()最小值 9. len()球字符长度函数(N) 10. lower()大写 小写 11. upper()小写 大写 12. space()空字符串生成函数 13. trim()去掉尾空格 14. ltrim()去掉首空格 15. alltrim()去掉首位空格 16. left(<字符表达式>,<长度>)左取子串 17. right(<字符表达式>,<长度>)右取子串 18. substr(<字符表达式>,<启始位置>,<长度>)取子串 19. occurs(<字符1>,<字符2>)计算子串出现次数函数(N) 20. at(<字符1>,<字符2>,<数值表达式>)求子串位置函数分大小写 21. atc(<字符1>,<字符2>,<数值表达式>)求子串位置函数不分大小写 22. stuff(<字符1>,<起始位置>,<长度>,<字符2>)子串替换函数 23. chotran(<字符1>,<字符2>,<字符3>)字符串替换函数 24. like(<字符1>,<字符2>)字符串匹配函数 25. replicate(“sb”,3)字符串复制函数

vf常用函数

命令结构: <命令动词> [<范围>] [FIELD 字段列表] [<表达式>] [FOR <条件>] [WHILE <条件>] 范围:ALL NEXT N RECORD N REST 数据类型: 数值(N):12123.5968 222 字符(C):‘gfhghgf’“tytfytf”[rfgff] 逻辑(L):.t. .f .y. .n. 日期(D): 传统{mm/dd/yy} 绝对{^yyyy-mm-dd} 货币(Y): $56565 日期时间(T): 传统{mm/dd/yy, hh:mm:ss A|P} 绝对{^yyyy-mm-dd, hh:mm:ss A|P } 备注(M): 通用(G): 变量: 1.内存变量——直接赋值 2.系统内存变量 3.字段变量:优先于内存变量,如要使用内存变量,可加前缀:M. 或M-> Store <表达式> TO 变量列表

Display memory List memory Clear memory Release 变量列表 Release ALL link 通配符a* ? 数组: DIMENSION 数组名(下标,下标) DECLARE 运算符: 算术:+ - * / % ** ^ 关系:> >= < <= != <> # == = 逻辑:AND OR NOT ! 常用函数: Round(76667.878787, -3) Sqrt(9) PI() Date() Time() 取子串:substr(串,开始位置,取字符数)

Left(串,取字符数) Right(串,取字符数) 字符串长度:len(串) 消除空格:TRIM(串) LTRIM(串) ALLTRIM(串) At(s1,s2) ?len(dtoc({^2013-09-25})) ?dtoc({^2013-09-25}) ?date() ?len(“hjhhjjhhj”) ?ctod(dtoc({^2013-09-25})) ?year(ctod(dtoc({^2013-09-25}))) ?month(ctod(dtoc({^2013-09-25}))) ?day(ctod(dtoc({^2013-09-25}))) Upper(串) Lower(串) 测试:vartype(表达式) FOUND() Eof() Bof() 建立表结构:

完整word版常用函数列表word文档良心出品

附录信号处理工具箱函数汇总1、滤波器分析与实现 函数名描述绝对值(幅值abs 取相angle 求卷conv 求二维卷conv2 去卷deconv 重叠相加FF滤波器实fftfilt 直接滤波器实filter 二维数字滤波filter2

零相位数字滤波filtfilt 滤波器初始条件选filtic 模拟滤波器频率响freqs 频率响应中的频率间freqspace 数字滤波器频率响freqz 画出频率响应曲freqzplot 平均滤波延grpdelay 数字滤波器的单位抽样响impz 格形滤波latcfilt 一维中值滤medfilt1 Savitzky-Gola滤波sgolayfilt 二次分式滤波sosfilt 离散系统零极点zplane 上采upfirdn 去除相unwrap 2、FIR数字滤波器设计 函数名描述 矩阵卷积convmtx 复、非线性相位等波纹滤波器设计cremez 基于窗函数的FIR滤波器设计fir1 1 FIR滤波器设计基于频率采样的fir2

FIR多频滤波器设计约束的最小二乘fircls FIR滤波设计约束的最小二乘、低通和高能、线性相位fircls1 FIR滤波器设计最优最小二乘firls 升余弦滤波器设计firrcos FIR滤波器设计内插intfilt 基于阶数估计的凯瑟滤波器设kaiserord FI滤波器设切比雪夫最remez reme设基于阶数估计remezord 滤波器设Savizky-Golay FIsgolay 数字滤波器设计IIR3、 描函数 巴特沃思滤波器设butter 型滤波器设切比雪cheby1 I型滤波器设切比雪cheby2 椭圆滤波器设计ellip 广义巴特沃思低通滤波器设计maxflat 递归滤波器设计yulewalk 巴特沃思滤波器阶估计buttord I型滤波器阶估计切比雪夫cheb1ord 型滤波器阶估计切比雪夫IIcheb2ord 椭圆滤波器阶估计ellipord 拟滤波器设计模4、

相关文档