当前位置:文档之家› 第2讲变量常量表达式

第2讲变量常量表达式

常量、变量、表达式(1)常量、变量、表达式。

在Visual FoxPro系统中,数据可用常量、变量、数组、字段、记录和对象来存储。

他们可以容纳各种类型的数据。

因此,常把这些供数据存储的常量、变量、数组、字段、记录和对象等称为数据存储容器。

2.1.1常量常量是在命令或程序中可直接引用、具有具体值的命名数据项,其特征是在整个操作过程中它的值和表现形式保持不变。

Visual FoxPro按常量取值的数据类型,将常量分为6种类型数值型常量、货币型常量、字符型常量、逻辑型常量、日期型常量、日期时间型常量。

1.数值型常量(N)由数字0-9、小数点和正负号组成,表示整数或实数值。

如;100,-21,15.31,-21092.5041等分别是数值型常量中的整数和实数。

数值型数据在内存中占用8个字节.2.货币型常量(Y)用来表示货币值,书写格式与数据型常量类似.但要多加一个$前置符号.且采用四位小数.他没有科学记数法,在内存中占8个字节.3.字符型常量(C)由任意ASCII字符、汉字和汉字字符组成的字符型数据,字符型常量又称为字符串。

为与其他类型常量、变量和标识符相区别,Visual FoxPro要求将字符串中所有字符,用一对双引号“"”或单引号“'”或方括号“[]”作为定界符对括起来。

如“ I am a student..”,…中华人民共和国‟,[Visual FoxPro 6.0系统]都是字符常量。

4.逻辑型常量(L)逻辑型数据只有逻辑真和逻辑假两个值。

逻辑真的常量表示形式有:.T.、.t.、.Y.和.y.。

逻辑假的常量表示形式有:.F.、.f.、.N.、.n.。

前后两个句点作为逻辑型常量的定界符是必不可少的,否则会被误认为变量名。

逻辑型数据只占用一个字节。

5.日期型常量(D)日期型常量是表示日期值的数据,其默认格式是{mm/dd/[yy]yy}。

如{10/01/02}和{10/01/2002}均表示2002年10月1日这一日期常量值。

6.日期时间型常量(T)Visual FoxPro系统中增加了一种表示日期和时间值的日期时间型常量,其默认格式是:{mm/dd/[yy]yy [,] hh:mm:ss[a|p]}其中a和p分别表示AM(上午)和PM(下午)。

日期值和日期时间值的输入格式与输出格式并不完全相同,特别是输出格式受系统环境设置的影响,用户可根据应用需要进行相应调整、设置。

(1)日期格式中的世纪值通常日期格式中用2位数表示年份,但涉及到世纪问题就不便区分。

Visual FoxPro提供设置命令对此进行相应设置。

命令格式:SET CENTURY ON | OFF | TO [nCentury]命令功能:ON:日期数据显示10位,其中年份4 位,即日期值输出时显示年份值;OFF:(默认值)。

日期数据显示8位,年份2位,即日期值输出时不显示年份值;TO [nCentury]:指定日期数据所对应的世纪值。

nCentury是一个1~99的整数,代表世纪数。

(2)设置日期显示格式用户可以调整、设置日期值和时间值的显示输出格式。

既可以用命令方式设置,也可以用菜单方式设置。

命令格式:SET DATE [TO] AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITLIAN | JAPAN | USA | MDY| DMY | YMD | SHORT | LONG命令功能:设置日期型和日期时间型数据的显示输出格式。

系统默认为AMERICAN美国格式。

如果日期格式设置为SHORT或LONG格式,Visual FoxPro系统将按Windows系统设置的短日期格式或长日期格式显示输出日期数据,而且SET CENTURY命令的设置被忽略。

各种日期格式设置所对应的日期显示输出格式,见表2-1所示。

表2-1 系统日期格式(3)设置日期2000年兼容性通常日期型和日期时间型数据的结果,与SET DATE命令和SET CENTURY命令设置状态及当前系统时间有关。

由于系统时间与相应设置不同,同一数据的结果可能有不同的解释。

如日期值{10/11/12}可以解释为1912 年10 月11 日、2012 年10 月11 日、1912 年11 月10 日、1910 年11 月12 日或者2010 年11 月12 日等。

这显然会导致系统混乱,而且还可能造成2000年兼容性错误,影响系统正常、有效的操作运行。

Visual FoxPro系统增加了一种所谓严格的日期格式。

不论哪种设置,按严格日期格式表示的日期型和日期时间型数据,都具有相同的值和表示形式。

严格的日期格式是:{^yyyy-mm-dd[,][hh[:mm[:ss]][a|p]]}^ 符号表明该格式是严格的日期格式,并按照YMD 的格式解释日期型和日期时间型数据,它是严格日期格式的标志,不可缺少。

有效的日期型和日期时间型数据分隔符为:连字符“-”、正斜杠“/”、句点“.”和空格。

如{^2002-10-01}、{^2002-10-01 10:30:30a},分别以严格的日期格式表示2002年10月1日及该日上午10时30分30秒这两个日期数据。

2.1.2变量变量是在操作过程中可以改变其取值或数据类型的数据项。

在Visual FoxPro 系统中变量分为字段变量、内存变量、数组变量和系统变量4类。

此外,作为面向对象的程序语言,Visual FoxPro在进行面向对象的程序设计中引入了对象的概念,对象实质上也是一类变量。

确定一个变量,需要确定其三个要素:变量名、数据类型和变量值。

1.命名约定在Visual FoxPro系统中,将表示、存储数据的常量、变量、数组、字段、记录、对象、表、数据库等,都称之为数据容器。

所有数据容器均需命名以相互区别,为规范各类对象的命名,Visual FoxPro系统推荐了若干“命名约定”供用户参考,以提高操作命令与程序的可读性和规范性。

●使用字母,下划线和数字命名。

一般建议不采用汉字命名;●命名以字母或下划线开头;除自由表中字段名、索引的TAG标识名最多只能10个字符外,其他的命名可使用1~128个字符;●避免使用Visual FoxPro的保留字;●文件名的命名应遵循操作系统的约定。

2.字段变量表由若干记录构成,每个记录都包含若干个数量相同的字段,同一字段在不同记录中分别对应不同的字段值,因此,字段也是变量。

与其他变量不同的是,字段变量是定义在表中的变量,随表的存取而存取,因而是永久性变量。

字段名就是变量名;变量的数据类型为Visual FoxPro中任意数据类型,字段值就是变量值。

3.内存变量内存变量是在内存中定义的、一种单个数据元素的临时性变量。

(1)内存变量的数据类型内存变量的数据类型包括:数值型、货币型、字符型、逻辑型、日期型和日期时间型;(2)内存变量的建立建立内存变量就是给内存变量赋值。

内存变量赋值既可定义一个新的内存变量,也可改变已朋内存变量的值或数据类型。

命令格式1:STORE <表达式> TO <内存变量表>命令功能:计算<表达式>的值并赋值给各个内存变量。

命令格式2:<内存变量> = <表达式>命令功能:计算<表达式>的值并赋值给指定内存变量。

(3)内存变量的显示输出可以用两个命令在屏幕上显示输出内存变量的值。

命令格式1:?| ??<表达式表> [AT <列号>]命令功能:计算表达式表中各表达式的值,并在屏幕上指定位置显示输出各式的值。

?:先回车换行,再计算并输出表达式的值;??:在屏幕上当前位置,计算并直接输出表达式的值;<表达式表>:多个用逗号分隔的表达式,各表达式的值输出时,以空格分隔;AT <列号>子句指定表达式值从指定列开始显示输出。

AT的定位只对它前面的一个表达式有效,多个表达式必须用多个AT子句分别定位输出,而且可反序定位。

命令格式2:@<行,列>SAY<表达式>命令功能:命令在指定位置输出表达式的值。

<行,列>指定了输出的位置。

左上角顶点为(0,0),行、列都可为表达式,还可为小数。

4.数组变量数组变量是结构化的变量,是一组具有相同名称、以下标相互区分的有序内存变量。

一个数组通常都包含多个数据元素。

Visual FoxPro系统中只允许使用一维数组(相当于数列)和二维数组(相当于行列式或矩阵)。

(1)数组元素●数组中各有序变量(数据元素)组成数组的成员,称为数组元素。

数组元素实质上是一个内存变量,也称数组变量,它们具有相同变量名即数组名,彼此以下标区分;●数组元素的名称(变量名)用数组加下标构成。

如AA(1),BB(2,3)分别表示一维数组AA的第1个元素,二维数组BB中第2行第3列的元素;●下标必须用圆括号对括;一维数组的元素只有一个下标,二维数组的元素有两个以逗号分隔的下标;●下标必须是非负数值,可以是常量、变量、函数或表达式,下标值会自动取整。

如AA(1.5),AA(nA1),AA(2+10/3)等;●数组元素的数据类型决定于最后赋值的数据类型;不同数组元素的数据类型可以不同;●数组元素与普通内存变量一样操作,可以赋值和引用。

2)数组的定义数组必须先定义后使用,定义数组是向系统申请数组元素在内存中的存储空间。

命令格式:DIMENSION | DECLARE <数组名1>(<数值表达式1>[,<数值表达式2>])[,<数组名2>(<数值表达式3>[,<数值表达式4>])…]命令功能:定义指定的各个数组。

(3)数组的赋值与引用数组元素的赋值与引用,与普通内存变量的规则相同。

5.系统变量系统变量是Visual FoxPro系统特有的内存变量,它由Visual FoxPro系统定义、维护。

系统变量有很多,其变量名均以下划线“_”开始,因此在定义内存变量和数组变量名时,不要以下划线开始,以免与系统变量名冲突。

系统变量设置、保存了很多系统的状态、特性,了解、熟悉并且充分地运用系统变量,会给数据库系统的操作、管理带来很多方便,特别是开发应用程序时更为突出,学习时可对此有所关注。

6.内存变量与数组变量的基本操作(1)变量的显示用?/??命令可以分别显示单个或一组变量的值。

有时用户还需了解变量其他相关信息,如数据类型、作用范围,或了解系统变量的信息。

Visual FoxPro 系统提供了相应操作命令。

命令格式:DISPLAY | LIST MEMORY [LIKE <通配符>] [TO PRINTER [ PROMPT] | TO FILE <文本文件名>] [NOCONSOLE]命令功能:显示指定变量的信息。

相关主题