搜索
您的当前位置:首页正文

Visual FoxPro基础

来源:尚车旅游网
Visual FoxPro应用基础与面向对象程序设计教程授课教师:张亚涛

第3章Visual FoxPro基础Visual FoxPro应用基础与面向对象程序设计教程3.1 数据类型3.2 数据存储3.3 函数3.4 表达式3.1 数据类型Visual FoxPro应用基础与面向对象程序设计教程3.1.1 字符型3.1.2 数值型3.1.3 日期型3.1.4 日期时间型3.1.5 逻辑型3.1.6 备注型3.1.7 通用型3.1.1 字符型Visual FoxPro应用基础与面向对象程序设计教程字符型(Character)数据是描述不具有计算能力的

文字字符数据类型,是常用的数据类型之一。

字符型数据由汉字、ASCII字符集中可打印字符、空格及其他专用字符组成。

3.1.2 数值型应用基础与面向对象程序设计教程数值型数据是描述数量的数据类型,是最常用的数据类型之一,在Visual FoxPro系统中被细分为以下5种类型。

1.数值型Numeric :数据位最大20位,内存占8个字

2.浮点型Float:同数值型3.货币型Money :前面自动加$4.双精度型Double:长度8个字节。

5.整型Integer:长度4个字节

Visual FoxPro3.1.3 日期型Visual FoxPro应用基础与面向对象程序设计教程日期型(Date)数据是用于表示日期的数据类型,长度固定为8个字符。

日期型数据的表现形式可由以下几个SET命令决定:(1)Set Date To [日期分隔符] 设置日期分隔符(2)Set Century On/Off 是否显示日期表达式中世纪部分(3)Set Date [to] 设定日期格式

(4)Set Strictdate To 是否进行严格日期检查

3.1.4 日期时间型应用基础与面向对象程序设计教程日期时间型(Date Time)数据是描述日期

和时间的数据类型,长度固定为8个字符。

日期时间型数据除包括日期数据的年、月、日外,还包括时、分、秒以及上午、下午标识

等内容。

Visual FoxPro3.1.5 逻辑型应用基础与面向对象程序设计教程逻辑型(Logic)数据是描述客观事物真假的数

据类型,用于表示逻辑判断结果。

逻辑型数据只有真和假两种值,长度固定为1个字符。

Visual FoxPro3.1.6 备注型Visual FoxPro应用基础与面向对象程序设计教程备注型(Memo)数据用于存放较长的字符数据类型,

可以把它看成是字符型数据的特殊形式。

备注型数据没有数据长度限制,仅受限于现有的磁盘空间。实际长度存放于和表同名的备注文件.FPT中。

3.1.7 通用型Visual FoxPro应用基础与面向对象程序设计教程通用型(General)数据是用于存储OLE对象的数据

类型。通用型数据中的OLE对象可以是电子表格、文档、图片等,它只用于数据表中的字段类型的定义。

通用型字段长度固定为4个字符,实际数据长度仅受限于现有的磁盘空间。表中存储的是指向OLE的引用。

3.2 数据存储Visual FoxPro应用基础与面向对象程序设计教程3.2.1 常量3.2.2 内存变量3.2.3 数组变量3.2.4 字段变量3.2.5 记录3.2.6 对象3.2.7 内存变量的作用域3.2.8 有关内存变量的操作

3.2.1 常量Visual FoxPro应用基础与面向对象程序设计教程常量是一个命名的数据项,是在命令或程序中直接引用的实际值,其特征是在所有的操作中其值不变。

1.数值型常量:数值型常量由数字(0~9)、小数点和正负号组成。

2.浮点型常量:浮点型常量是数值型常量的浮点格式。

3.字符型常量:字符型常量是由汉字和ASCII字符集中可打印字符组成的字符串。

4.逻辑型常量:逻辑型常量由表示逻辑判断结果为“真”或“假”的符号组成。

5.日期常量:日期常量常用的系统输出格式:mm/dd/yy

6.日期时间型常量:日期时间常量常用的系统输出格式:mm/dd/yy hh:mm:ss

3.2.1 常量Visual FoxPro应用基础与面向对象程序设计教程定义常量

格式:用编译命令#define定义。

用#undef取消定义

如:#define TRUE .t.

#define A “中国”

3.2.2 内存变量Visual FoxPro应用基础与面向对象程序设计教程1定义:使用过程中,其值可以改变的量

2 功能:是内存中的临时存储单元。可以用来在程序的执行过程中保留中间结果或最终结果

注意:当退出系统后,内存变量的值也会和系统一样在内存中消除。

3.2.2 内存变量Visual FoxPro应用基础与面向对象程序设计教程命名规则:

1使用字母,数字,下划线开头。一般不建议用汉字。2 除自由表中字段名,索引的TAG标识名最多只能用10个字符外,其他命名可使用1—254个字符。(有的是128个字符)

3 避免使用VFP的保留字4 字母不分大小写

5 当内存变量与数据表中字段变量同名时,用户在引用内存变量时,要在其前面加一个m.或m->

3.2.2 内存变量Visual FoxPro应用基础与面向对象程序设计教程内存变量的类型:数值型内存变量字符型内存变量逻辑型日期型

日期时间型浮点型

3.2.2 内存变量Visual FoxPro应用基础与面向对象程序设计教程内存变量的定义,可以通过定义内存变量的作用域,或者直接给内存变量赋值来进行,内存变量一旦定义完成,便可以对其进行如下操作。

1.给内存变量赋值命令

Store <表达式> To <内存变量表>

功能:计算表达式的值,并将该值赋给变量名列表中的每一个变量说明:变量名列表中的多个变量之间用逗号隔开。例如:store 50 to aa<内存变量>=<表达式>

功能:计算表达式的值,并将该值赋给内存变量。

3.2.2 内存变量Visual FoxPro应用基础与面向对象程序设计教程2.表达式输出命令

?/??[ <表达式表>]

功能:计算表达式的值,并在屏幕上显示。说明:?,先回车换行,再计算并输出表达式

??,在屏幕上当前位置,计算并直接输出表达式的值

3.数据表与内存变量间数据的传递命令

Scatter [Fields <字段名表> | Fields Like <通配符>

| Fields Except <通配符>] [Memo] To <数组名> [Blank]Gather From <数组名> [Fields <字段名表> ] [Memo]功能:将当前表中,当前记录的全部或部分数据传送到<数组名>指定的数组中。

3.2.3 内存变量Visual FoxPro应用基础与面向对象程序设计教程内存变量的消除<1> clear memory

消除所有的内存变量,但不消除系统的内存变量<2> release [内存变量|all]

消除指定的内存变量或所有的内存变量<1> clear all

在关闭所有文件同时,消除所有的内存变量如:release all或release x,y,z

3.2.3 内存变量的作用域Visual FoxPro应用基础与面向对象程序设计教程内存变量的作用域是按变量在程序中的作用范围来区分的。1.全局型内存变量

•用命令public命令定义的内存变量和数组,就是全局变量。

•定义格式:Public <内存变量表>如:public aaa 定义一个内存变量aaa

•使用范围:在整个程序中都有效,包括在主程序的函数过程中。注意:

全局型的内存变量必须先定义,后赋值

全局变量可以下级子程序中定义为局部变量。反之不行

在命令窗口使用的所有内存变量和数组都是全局型。

3.2.3 内存变量的作用域Visual FoxPro应用基础与面向对象程序设计教程2.局部型变量

<1>是在定义它的程序以及该程序调用的子程序中有效<2>定义格式:Private <内存变量表>注意:

如果定义它的程序再调用其他子程序,则该变量在子程序中继续有效如果它在子程序中改变了值,则返回调用程序时,也带回新值。并在程序中继续使用

如果另一个程序调用它的程序,调用程序中与定义它的程序同名的内存变量将被屏蔽,而一旦调用程序运行完毕,所有被屏蔽的内存变量便又恢复原来的状态。

3.2.3 内存变量的作用域Visual FoxPro应用基础与面向对象程序设计教程3.2.3 内存变量的作用域Visual FoxPro应用基础与面向对象程序设计教程3.本地型变量<1>作用范围

只在定义它的程序中有效,在其子程序或调用定义它的程序中均无效

<2>定义格式

Local <内存变量表>如:local a

3.2.4 数组变量Visual FoxPro应用基础与面向对象程序设计教程数组是一组有序内存变量的集合。或者说,数组是由同一个名字组织起来的通过下标加以区分的简单内存变量的集合。

所有的数组元素是用一个变量名命名的一个集合体,而且每一个数组元素在内存中独占一个内存单元,视同一个简单内存变量。为了区分不同的数组元素,每一个数组元素都是通过数组名和下标来访问的。

在Visual FoxPro系统环境下,可以定义只有一个下标的一

维数组,或有两个下标的二维数组。

3.2.4 数组变量Visual FoxPro应用基础与面向对象程序设计教程<1>概念:

一系列被称为数组元素的有序数据值构成的一个集合。可以用序号引用这些元素。<2> 说明:

数组必须先定义,后使用

实质是一系列内存变量的有序集合。<3>命名:

数组元素的名称(变量名)用数组加下标构成。最大维数是二维。下标必须用圆括号括起。一维数组元素有一个下标。二维数组元素有两个用逗号分隔的下标。

如,A(1)表示一维数组a的第一个元素

aa(2,2)表示二维数组aa中的第二行,第二列的元素下标必须是非负值,可以是常量,变量,函数或表达式

每个数组元素的数据类型可以不同,数组元素的数据类型是通过所赋值的数据类型类确定的。

注意;每一个数组元素相当于一个内存变量

3.2.4 数组变量Visual FoxPro应用基础与面向对象程序设计教程<4>数组的定义

命令格式:demension|declare <数组名1>(<数值表达式1>

[,数值表达式2])[,<数组名1>(<数值表达式3>[,数值表达式4])]说明:

数值表达式是数组的下标,对一维数组来说,指的是数组元素的个数。对二维数组则是最大行号和最大列号

数组的下标允许使用圆括号或方括号括起来

数组一旦被定义后,该数组的每个元素的初值是逻辑假值,可以给数组赋值。

<5>数组元素的赋值aa(1,2)=3

aa=3 数组的全部元素被赋值为3

B=aa 把数组的第一个元素的值赋给变量B?aa 输出数组aa第一个元素的值

3.2.4 数组变量Visual FoxPro应用基础与面向对象程序设计教程数组的排列规则1开始排列

<6>数组从下标二维数组的元素排列是先按行排,再按列排。

3.2.5 字段变量Visual FoxPro应用基础与面向对象程序设计教程字段变量是数据库管理系统中的一个重要概念。它与记录一纵一横构成了数据表的基本结构。

字段变量就是指数据表中已定义的任意一个字段。字段变量的数据类型与该字段定义的类型一致,字段变量的类型有数值型、浮点型、货币型、整型、双精度型、字符型、逻辑型、日期型、日期时间型、备注型和通用型等。

3.2.5 字段变量Visual FoxPro应用基础与面向对象程序设计教程<1>定义

是指数据表中已定义的任意一个字段<2>说明:

字段变量可以是前面所讲的任意数据类型它和记录一纵一横构成了数据表的基本结构<3>字段变量和变量的区别

在vfp中,若变量和字段同名,字段具有更高的优先权要访问变量,可在变量前加上:m.或m->示例:有一个表xs(xm)xm=12use xsgo 1? xm? m.xm? m->xm

3.2.5 记录Visual FoxPro应用基础与面向对象程序设计教程记录是数据表中一组数据项的集合。

在同一个数据表中可以有若干个记录,每一个记

录具有相同的字段个数。

在数据表中记录的顺序不影响对记录的操作。

3.2.6 对象Visual FoxPro应用基础与面向对象程序设计教程对象是数据存储器的一种。对象是类的实体,对象也

是类的变量,它是任何具有属性和方法的信息的集合。

对象的建立可以通过设计器和CreateObject ( ) 函数实现。

3.3 函数Visual FoxPro应用基础与面向对象程序设计教程3.3.1 数值函数3.3.2 字符函数3.3.3 日期时间函数3.3.4 转换函数3.3.5 测试函数3.3.6 其它函数3.3.1 数值函数应用基础与面向对象程序设计教程Visual FoxPro3.3.2 字符函数Visual FoxPro应用基础与面向对象程序设计教程3.3.3 日期时间函数应用基础与面向对象程序设计教程Visual FoxPro3.3.4 转换函数Visual FoxPro应用基础与面向对象程序设计教程3.3.5 测试函数Visual FoxPro应用基础与面向对象程序设计教程3.3.6 其它函数Visual FoxPro应用基础与面向对象程序设计教程3.4 表达式Visual FoxPro应用基础与面向对象程序设计教程3.4.1 算术表达式3.4.2 字符表达式3.4.3 日期时间表达式3.4.4 关系表达式3.4.5 逻辑表达式3.4.6 名表达式3.4.7 类与对象操作符3.4.1 算术表达式Visual FoxPro应用基础与面向对象程序设计教程3.4.2 字符表达式Visual FoxPro应用基础与面向对象程序设计教程3.4.3 日期时间表达式Visual FoxPro应用基础与面向对象程序设计教程3.4.4 关系表达式Visual FoxPro应用基础与面向对象程序设计教程3.4.5 逻辑表达式Visual FoxPro应用基础与面向对象程序设计教程3.4.6 名表达式Visual FoxPro应用基础与面向对象程序设计教程在Visual FoxPro系统中,允许用户给命令和函数定义一个名字。

1.间接引用方式

把命令和函数名赋给内存变量和数组元素,再取内存变量和数组元素值。

Stroe “c:\\myvf\\xsda” to name

Use(name) &&该命令等价于use c:\\myvf\\xsda

list

3.4.6 名表达式Visual FoxPro应用基础与面向对象程序设计教程2.宏替换方式

宏替换函数&

格式:&<字符型变量>[.]

功能:用于替换一个字符型变量的内容,如果宏替换函数和后面的字符间无空格时,后面应加点号.。例1:

Clear clearclearma=\"*\" ma=\"*\" ma=\"*\"

mb=\"14&ma50\" mb=\"14&ma.50\" mb=\"14&ma 50\"?mb ?mb ?mb结果:14&ma50 14*50 14* 50

例2:利用宏替换输出表达式的值Store “5^2” to expr

? &expr &&该命令等价于?5^2=25

说明:上面所讲的功能并不全面。其实宏替换的真正含义:宏替换是提取

当前变量的值作为真正需要的变量,并返回这个变量的值。

3.4.6 名表达式Visual FoxPro应用基础与面向对象程序设计教程详解宏替换

这个程序说明,宏替换是提取当前变量的值作为真正需要的变量,并返回这个变量的值。注意,这里这个值的意义不仅仅是字符串。还可以是表达式。下面再举个例子。

3.4.6 名表达式Visual FoxPro应用基础与面向对象程序设计教程我们知道,locate for 后面跟的条件不是固定的,你的程序可以允许操作者选择不同的字段来查询,可能是:

姓名=... 也可能是,电话=...

你不能直接把for 后面的内容整个作为一个变量,这时宏替换也可以起作用,你可以把条件整个放入一个变量,比如字段名放在一个变量中吃cxmb,要查的内容放在bianhao:ex='编号'+\"=\"+\"'\"+bianhao+\"'“LOCATE ALL FOR &ex

如果这时编号='姓名',cxz='庄稼',这就相当于:locate for 姓名='庄稼'

那么只要ex 的内容是个正确的逻辑表达示,不论是什么内容都可以运行,这将给编程带来很大方便。

3.4.6 名表达式Visual FoxPro应用基础与面向对象程序设计教程3.4.6 名表达式Visual FoxPro应用基础与面向对象程序设计教程总结:宏替换

本质含义是提取当前变量的值作为真正需要的变量,并返回这个变量的值。

当前变量的值的形式必须是字符串。

这个字符串作为宏替换的真正变量来用。可能是作为表达式或其他形式来用。

3.4.7 类与对象操作符Visual FoxPro应用基础与面向对象程序设计教程Visual FoxPro应用基础与面向对象程序设计教程本

章要点

因篇幅问题不能全部显示,请点此查看更多更全内容

Top