命令格式:?【??<表达式表》功能:计算表达式的值,并将其换行或者不换行的显示在屏幕上。4.内存变量的显示命令格式:LISTDISPLAYMEMORY[LIKE<通配符>][TOPRINTER[PROMPT]|TOFILE<文件名》功能:显示当前的已定义好的内存变量名、作用范围、类型和值。5.内存变量的清除命令格式:RELEASE[<内存变量表>][ALL[LIKE|EXCEPT<通配符>]]功能:从内存清除指定的内存变量。二、数组变量【数组变量】内存中连续的一片存储区域,每一个数组元素在内存中独占一个内存单元。数组中的各个变量称为数组元素,数组必须先定义后使用。1.数组变量的命名规则:(1)由字母、汉字、数字、下划线组成;(2)以字母或者汉字开头。2.数组变量的定义命令格式:DIMENSION|DECLEAR<数组名>(<下标1><下标2>I)「<数组名>(<下标1>[,《下标2>])..]功能:定义一维或者二维数组,以及下标的上界。数组创建之后,系统自动给每一个数组元素赋以逻辑假.F.。3.数组的赋值(1)在一般高级语言中,同一数组各元素的类型必须相同。VFP则不然,它不仅允许同一数组元素取不同类型,而且同一元素的前、后类型也允许改变。(2)用赋值命令可为数组元素单个地赋值,也可为整个数组的各个元素赋以相同值。(3)二维数组各元素在内存中按行的顺序存储,而且也可按一维数组来表示其数组元素。例如:DIMENSION AB(3).C(2.3)AB(1)=325AB (2) ="ABC"AB (3) =. T.STORE5TOC三.字段变量用户可以将表中的字段名看成是一种特殊类型变量一—字段变量。表的每一个字段都是一个字段变量。四、系统变量VFP提供了一批系统内存变量,它们都是以””开头,分别用于控制外部设备(如打印机、鼠标器等),屏幕输出格式,或者处理有关计算器、日历、剪贴板等方面的3.1.3内存变量常用命令1.内存变量的赋值命令命令格式1:<《内存变量>=<表达式>功能:计算表达式的值,然后赋给内存变量。【例3-1】内存变量的赋值举例。A=2&&将数值2赋给变量A,则A为数值型变量B=5+6&&计算表达式5+6的值,再将结果11赋给变量B,则B为数值型变量S='VFP'&&将字符串VFP赋给变量S,S为字符型变量
命令格式:?|??<表达式表> 功能:计算表达式的值,并将其换行或者不换行的显示在屏幕上。 4.内存变量的显示 命令格式:LIST|DISPLAY MEMORY [LIKE<通配符>][TO PRINTER [PROMPT]|TO FILE< 文件名>] 功能:显示当前的已定义好的内存变量名、作用范围、类型和值。 5.内存变量的清除 命令格式:RELEASE [<内存变量表>][ALL[LIKE|EXCEPT<通配符>]] 功能:从内存清除指定的内存变量。 二.数组变量 【数组变量】内存中连续的一片存储区域,每一个数组元素在内存中独占一个内存单 元。数组中的各个变量称为数组元素,数组必须先定义后使用。 1.数组变量的命名规则: (1)由字母、汉字、数字、下划线组成; (2)以字母或者汉字开头。 2.数组变量的定义 命令格式:DIMENSION|DECLEAR<数组名> (<下标 1>[,<下标 2>]) [,<数组名>(<下标 1>[,<下标 2>])„„] 功能:定义一维或者二维数组,以及下标的上界。数组创建之后,系统自动给每一个 数组元素赋以逻辑假.F.。 3.数组的赋值 (1)在一般高级语言中,同一数组各元素的类型必须相同。VFP 则不然,它不仅允 许同一数组元素取不同类型,而且同一元素的前、后类型也允许改变。 (2)用赋值命令可为数组元素单个地赋值,也可为整个数组的各个元素赋以相同值。 (3)二维数组各元素在内存中按行的顺序存储,而且也可按一维数组来表示其数组 元素。 例如: DIMENSION AB(3),C(2,3) AB(1)=325 AB(2)="ABC" AB(3)=.T. STORE 5 TO C 三.字段变量 用户可以将表中的字段名看成是一种特殊类型变量——字段变量。表的每一个字 段都是一个字段变量。 四.系统变量 VFP 提供了一批系统内存变量,它们都是以”_”开头,分别用于控制外部设备 (如打印机、鼠标器等),屏幕输出格式,或者处理有关计算器、日历、剪贴板等方 面的 3.1.3 内存变量常用命令 1.内存变量的赋值命令 命令格式 1: <内存变量>=<表达式> 功能:计算表达式的值,然后赋给内存变量。 【例 3-1】内存变量的赋值举例。 A=2 &&将数值 2 赋给变量 A,则 A 为数值型变量 B=5+6 &&计算表达式 5+6 的值,再将结果 11 赋给变量 B,则 B 为数值型变量 S=’VFP’ &&将字符串 VFP 赋给变量 S,S 为字符型变量
命令格式2:STORE<表达式》TO<内存变量名表》功能:计算表达式的值,将结果依次赋给内存变量名表中的每个变量,常用于将同一值赋给多个内存变量。【例3-2】内存变量的赋值举例。STORE2 TOa&&将数值2赋给变量a,相当于命令a=2STORE2*3TOc,d&计算2*3得6,将数值6赋给变量c和d命令后的符号&,表示该符号后跟随的是本命令行的注解,它只对命令起注释作用,与命令执行无关。2.数组的赋值用赋值命令可为数组元素单个地赋值,也可为整个数组的各个元素赋以相同值。【例3-3】数组的使用。DIMENSIONa(4)a=8?a(1),a(2),a(3),a(4)STOREO TOa(3),a(4)?a(1),a(2),a(3),a(4)执行以上命令序列后,屏幕上的结果如图3-3所示。其中?是内存变量值的显示命令。可看到执行“a=8”命令后,显示的所有数组元素的值都为8,而执行“STORE0TOa(3),a(4)”命令后,再显示4个数组元素值时,数组元素a(3)和a(4)的值为0,a(1)和a(2)的值不变,仍为8。3.表达式的输出命令若要显示某个内存变量或表达式的值,最简单的方法就是使用“?”或“??”命令。命令格式:?|??[<表达式表》]功能:依次计算表达式的值,并将其显示在屏幕上。说明:?和??命令,默认在屏幕上显示数据。若使用?,则表示从光标所在行的下一行起始列开始显示;若使用??,则从光标所在当前行当前列开始显示。《表达式表>表示可用逗号来隔开多个表达式,命令执行时遇到逗号就输出一个空格。【例3-4】观察下列命令的执行结果?我爱学”,"VFP??”很简单”?"SO EASY!"命令执行的结果为如图3-4所示。4.内存变量的显示命令格式:LISTDISPLAYMEMORY[LIKE<通配符>][TOPRINTER[PROMPT】TOFILE<文件名>]功能:显示当前已定义的内存变量名、作用范围、类型和值。说明:(1)LIKE<通配符>表示显示与通配符相匹配的内存变量。<通配符>有?和*两种,前者代表单个字符,后者代表任意多个字符。缺省该选项则选出全部内存变量(此时包括系统内存变量),并同时显示当前内存变量总的个数、字节数等。(2)选项TOPRINTER能将屏幕显示内容输出到打印机,使用[PROMPT则能提供是否要打印的提示窗口。选项TOFILE<文件名>能将显示内容存入文件,文件扩展名为.txt。5.内存变量的清除命令格式:RELEASE[<内存变量表>][ALL[LIKE|EXCEPT<通配符>]]
命令格式 2: STORE <表达式> TO <内存变量名表> 功能:计算表达式的值,将结果依次赋给内存变量名表中的每个变量,常用于将同一 值赋给多个内存变量。 【例 3-2】内存变量的赋值举例。 STORE 2 TO a && 将数值 2 赋给变量 a,相当于命令 a=2 STORE 2*3 TO c,d && 计算 2*3 得 6,将数值 6 赋给变量 c 和 d 命令后的符号&&,表示该符号后跟随的是本命令行的注解,它只对命令起注释作用, 与命令执行无关。 2.数组的赋值 用赋值命令可为数组元素单个地赋值,也可为整个数组的各个元素赋以相同值。 【例 3-3】数组的使用。 DIMENSION a(4) a=8 ? a(1),a(2),a(3),a(4) STORE 0 TO a(3),a(4) ? a(1),a(2),a(3),a(4) 执行以上命令序列后,屏幕上的结果如图 3-3 所示。其中?是内存变量值的显示命令。 可看到执行“a=8”命令后,显示的所有数组元素的值都为 8,而执行“STORE 0 TO a(3),a(4)”命令后,再显示 4 个数组元素值时,数组元素 a(3)和 a(4)的值为 0,a(1) 和 a(2)的值不变,仍为 8。 3.表达式的输出命令 若要显示某个内存变量或表达式的值,最简单的方法就是使用“?”或“??”命令。 命令格式: ? | ?? [<表达式表>] 功能:依次计算表达式的值,并将其显示在屏幕上。 说明:?和??命令,默认在屏幕上显示数据。若使用?,则表示从光标所在行的下一行 起始列开始显示;若使用??,则从光标所在当前行当前列开始显示。<表达式表>表示 可用逗号来隔开多个表达式,命令执行时遇到逗号就输出一个空格。 【例 3-4】观察下列命令的执行结果 ? '我爱学' , 'VFP' ?? "很简单" ? "SO EASY!" 命令执行的结果为如图 3-4 所示。 4.内存变量的显示 命令格式: LIST|DISPLAY MEMORY [LIKE <通配符>] [TO PRINTER [PROMPT]|TO FILE <文件名>] 功能:显示当前已定义的内存变量名、作用范围、类型和值。 说明: (1)LIKE <通配符>表示显示与通配符相匹配的内存变量。<通配符>有?和*两种, 前者代表单个字符,后者代表任意多个字符。缺省该选项则选出全部内存变量(此时 包括系统内存变量),并同时显示当前内存变量总的个数、字节数等。 (2)选项 TO PRINTER 能将屏幕显示内容输出到打印机,使用[PROMPT]则能提供是否 要打印的提示窗口。选项 TO FILE<文件名>能将显示内容存入文件,文件扩展名 为.txt。 5.内存变量的清除 命令格式: RELEASE [<内存变量表>][ALL[LIKE|EXCEPT<通配符>]]
功能:从内存清除指定的内存变量。3.2运算符与表达式,运算符VFP中运算符总共有5种,即算数、关系、逻辑、字符、日期与日期时间。1.算数、关系、逻辑运算符表2-5运算符意义运算优先级运算符运算举例(注解表示显示结果)8(圆括号7^或·*乘方?3*2&&9乘&&6*?3+2除29/6&&1.50算数6取模:取两数相除的%215%4&&3余数加+?3+2&&55减23-2&&1-V小于?63<54&&.F.?(01/01/92)<=(01/01/92)<=小于等于&&,T.>大于?"ABC”>"AAAA"&&.T.>=?”大专”>”大学”&&.T.大于等于相等:串比较时串首?”ABC"=AB&&.T.=关系4同就得真完全相等:两串全同?"ABC"=="AB"&&.F.才得真2.T.<.F.<>、#或!=不相等&&.T.包含:左串是右串子s?"BC"S"ABCD"&&.T.串才得真非:结果是右边逻辑3&&.F.NOT或!?NOT"BC"$"ABCD"值的反2逻辑AND&&.T.与:两边都真才得真?.T.AND"ABC">"AB"或:两边有一为真就1OR2.T.OR4=5&&.T.得真(1)算术运算的操作数必须是数值,运算的结果也是数值。运算顺序是先乘方、再乘除与取模、后加减,同一级别要从左向右。有圆括号时先算圆括号内的,若有圆括号嵌套,则按先内后外次序处理。(2)关系运算两操作数类型须一致,比较的结果是逻辑型。数值型数据按数值大小进行比较:日期型数据按年、月、日的先后比较:字符型数据按相应位置上两个字符ASCII码值的大小进行比较。(3)逻辑运算的操作数须是能得出逻辑值的表达式,运算结果也是逻辑值。若操作数类型不符要求,将会出现“操作符/操作数类型不一致”的出错提示。关系运算常用来描述某种条件,而逻辑运算可用于描述复合的条件。若两个条件中有个成立便算成立,应使用OR运算,而两个条件同时成立才算成立,应使用AND运算:至于NOT则用于否定一个条件。(4)表达式计算按优先级从高到低执行。(5)表达式值的类型决定了表达式的类型,运算结果为数值的表达式称为数值表达式,运算结果为逻辑值的表达式称逻辑表达式
功能:从内存清除指定的内存变量。 3.2 运算符与表达式 一.运算符 VFP 中运算符总共有 5 种,即算数、关系、逻辑、字符、日期与日期时间。 1.算数、关系、逻辑运算符 表 2-5 运算符 运算 优先级 运算符 意 义 运算举例(注解表示显示结果) 算数 8 () 圆括号 7 ^或* * 乘方 ?3^2 &&9 6 * 乘 ?3*2 &&6 / 除 ?9/6 &&1.50 % 取模:取两数相除的 余数 ?15%4 &&3 5 + 加 ?3+2 &&5 - 减 ?3-2 &&1 关系 4 < 小于 ?63<54 &&.F. <= 小于等于 ?{01/01/92}<={01/01/92} &&.T. > 大于 ?”ABC”>”AAAA” &&.T. >= 大于等于 ?”大专”>=”大学” &&.T. = 相等:串比较时串首 同就得真 ?”ABC”=AB &&.T. = = 完全相等:两串全同 才得真 ?”ABC”= =”AB” &&.F. <>、#或!= 不相等 ?.T.<>.F. &&.T. $ 包含:左串是右串子 串才得真 ?”BC”$”ABCD” &&.T. 逻辑 3 NOT 或! 非:结果是右边逻辑 值的反 ?NOT”BC”$”ABCD” &&.F. 2 AND 与:两边都真才得真 ?.T.AND”ABC”>”AB” &&.T. 1 OR 或:两边有一为真就 得真 ?.T.OR4=5 &&.T. (1)算术运算的操作数必须是数值,运算的结果也是数值。运算顺序是先乘方、再 乘除与取模、后加减,同一级别要从左向右。有圆括号时先算圆括号内的,若 有圆括号嵌套,则按先内后外次序处理。 (2)关系运算两操作数类型须一致,比较的结果是逻辑型。数值型数据按数值大小 进行比较;日期型数据按年、月、日的先后比较;字符型数据按相应位置上两 个字符 ASCII 码值的大小进行比较。 (3)逻辑运算的操作数须是能得出逻辑值的表达式,运算结果也是逻辑值。若操作 数类型不符要求,将会出现“操作符/操作数类型不一致”的出错提示。关系运 算常用来描述某种条件,而逻辑运算可用于描述复合的条件。若两个条件中有 一个成立便算成立,应使用 OR 运算,而两个条件同时成立才算成立,应使用 AND 运算;至于 NOT 则用于否定一个条件。 (4)表达式计算按优先级从高到低执行。 (5)表达式值的类型决定了表达式的类型,运算结果为数值的表达式称为数值表达 式,运算结果为逻辑值的表达式称逻辑表达式
2.字符运算符+运算符:用于连接两个字符串。-运算符:用于连接两个字符串,并将前一个字符串尾部的空格移到结果字符串的尾部。例如:?”国防”+”大学”&显示”国防大学”?”国防”-”大学”&显示”国防大学”3.日期与日期时间日期或日期时间的运算,以运算符+表示数据相加,以运算符-表示数据相减。对日期型数据进行运算指日期的加减,或加减某个天数。3.2.2表达式1概念:由若于的运算符将常量、变量和函数等连接在一起的有意义的式子。它是VisualFoxPro的重要组成部分,具有计算、判断和数据类型转换等作用。2.类型:根据表达式运算结果的数据类型不同,VF表达式分为数值表达式、字符表达式、日期或者日期时间表达式、关系表达式、逻辑表达式。3.3常用函数一,函数的要素函数有函数名、参数、函数值3个要素。1.函数名起到表示作用。2.参数是自变量,一般是表达式,写在()。3.函数运算后会返回一个值,称为函数值,这是函数的功能。函数值会因参数值而异。注意:有的函数缺省参数,称为哑参,但仍有返回值,例如函数DATE()能返回系统当前日期。二、函数类型所谓函数类型就是函数值的类型。在表达式中嵌入函数时须了解函数值的类型,以免发生数据类型不一致的错误。使用TYPE函数能返回表达式的类型,也能测出函数的类型。例如:?TYPE(”DATE()”)&&显示D,表明函数DATE()是日期型函数三常用函数函数是用程序来说实现的一种数据运算·或者转换。函数格式:《函数名》([参数表])1.数值函数序号函数功能1ABS ()求绝对值函数2SIGN符号函数3INT ()求整数函数4ROUND ()四舍五入函数5SQRT ()平方根函数6MOD ()求余函数7EXP(数据表达式值)指数函数8LOG ()对数函数9MAX ()最大函数10MIN ()最小函数2.字符函数功能序号函数1LEN ()字符串长度函数
2.字符运算符 +运算符:用于连接两个字符串。 -运算符:用于连接两个字符串,并将前一个字符串尾部的空格移到结果字符串的尾 部。 例如: ?”国防 ” + ”大学” && 显示”国防 大学” ?”国防 ” –”大学” && 显示”国防大学 ” 3.日期与日期时间 日期或日期时间的运算,以运算符+表示数据相加,以运算符-表示数据相减。对 日期型数据进行运算指日期的加减,或加减某个天数。 3.2.2 表达式 1.概念:由若干的运算符将常量、变量和函数等连接在一起的有意义的式子。它是 Visual FoxPro 的重要组成部分,具有计算、判断和数据类型转换等作用。 2.类型:根据表达式运算结果的数据类型不同,VF 表达式分为数值表达式、字符表 达式、日期或者日期时间表达式、关系表达式、逻辑表达式。 3.3 常用函数 一.函数的要素 函数有函数名、参数、函数值 3 个要素。 1.函数名起到表示作用。 2.参数是自变量,一般是表达式,写在()。 3.函数运算后会返回一个值,称为函数值,这是函数的功能。函数值会因参数值而异。 注意:有的函数缺省参数,称为哑参,但仍有返回值,例如函数 DATE()能返回系 统当前日期。 二.函数类型 所谓函数类型就是函数值的类型。在表达式中嵌入函数时须了解函数值的类型, 以免发生数据类型不一致的错误。使用 TYPE 函数能返回表达式的类型,也能测出函 数的类型。 例如: ?TYPE(”DATE()”) && 显示 D,表明函数 DATE()是日期型函数 三.常用函数 函数是用程序来说实现的一种数据运算·或者转换。函数格式: <函数名> ([参数表]) 1.数值函数 序号 函数 功能 1 ABS() 求绝对值函数 2 SIGN 符号函数 3 INT() 求整数函数 4 ROUND() 四舍五入函数 5 SQRT() 平方根函数 6 MOD() 求余函数 7 EXP(数据表达式值) 指数函数 8 LOG() 对数函数 9 MAX() 最大函数 10 MIN() 最小函数 2.字符函数 序号 函数 功能 1 LEN() 字符串长度函数
2LOWER/UPPER(<字符串表达式>)大小写转换函数3SPACE(<数值表达式》)空格字符串生成器4TRIM )去掉尾部空格后形成的字符串5LTRIM ()去掉前导空格后形成的字符串6ALLTRIM ()去掉字符串中前导和尾部空格后形成的字符串7取子字符串LEFT(字串,长度)8取子字符串RIGHT(字串,长度)9SUBSTR(字串,长度)取子字串10OCCURS(<字符1>,《字符2>》)子串在字符串中出现的次数11AT(串1,串2,长度)子串的位置函数12ATC(串1,串2,长度)子串的位置函数,不区分大小写13LIKE(<字符表达式1>,<字符字符串匹配函数表达式2>)14STUFF(<字符串1>,<起始位用字符2来替换字符1中从起始位置起置》,《长度》,《字符2》的长度数的子串,替换和被替换的字符数可以不等:长度=0则在起始位置前插入字符串2:字符串2是空值,则等于是删除了由起始位置和长度确定的子串15CHRTRAN(<字符串1>,<字符串字符替换函数2>,《字符串3>)15&[. ]替换出字符型变量的内容,即&的值是变量中的字符串。如果该函数与其后的字符无明显的分界,则用“”做为函数结束的标志。3.日期型函数序号函数功能1DATE ()系统日期函数2TIME ()系统时间函数3系统日期和时间函数DATETIME ()4YEAR ()年份函数5月份函数MONTH ()6DAY ()天数函数7DOW()星期函数8HOUR ()小时函数9MINUTE )分钟函数10SEC ()秒钟函数4.数值类型转换函数序号函数功能1STR(<数值表达式>[,<长将<数值表达式>的值转换成指定长度的度>[,《小数位数>]])字符串:如果长度大于数值表达式在字符串之前加空格来满足长度,如果长度小于数值表达式的整数部分的位数,则返回一串*。长度为10;小数位数为0。2VAL(<字符表达式>)字符串转换成数值3CTOD/CTOTO字符串转换成日期或者日期时间函数
2 LOWER/UPPER(<字符串表达式>) 大小写转换函数 3 SPACE(<数值表达式>) 空格字符串生成器 4 TRIM() 去掉尾部空格后形成的字符串 5 LTRIM() 去掉前导空格后形成的字符串 6 ALLTRIM() 去掉字符串中前导和尾部空格后形成 的字符串 7 LEFT(字串,长度) 取子字符串 8 RIGHT(字串,长度) 取子字符串 9 SUBSTR(字串,长度) 取子字 串 10 OCCURS(<字符 1>,<字符 2>) 子串在字符串中出现的次数 11 AT(串 1,串 2,长度) 子串的位置函数 12 ATC(串 1,串 2,长度) 子串的位置函数,不区分大小写 13 LIKE(<字符表达式 1>,<字符 表达式 2>) 字符串匹配函数 14 STUFF(<字符串 1>,<起始位 置>,<长度>,<字符 2>) 用字符 2 来替换字符 1 中从起始位置起 的长度数的子串,替换和被替换的字符 数可以不等;长度=0 则在起始位置前插 入字符串 2;字符串 2 是空值,则等于 是删除了由起始位置和长度确定的子 串 15 CHRTRAN(<字符串 1>,<字符串 2>,<字符串 3>) 字符替换函数 15 &[.] 替换出字符型变量的内容,即&的值是 变量中的字符串。如果该函数与其后的 字符无明显的分界,则用“.”做为函 数结束的标志。 3.日期型函数 序号 函数 功能 1 DATE() 系统日期函数 2 TIME() 系统时间函数 3 DATETIME() 系统日期和时间函数 4 YEAR() 年份函数 5 MONTH() 月份函数 6 DAY() 天数函数 7 DOW() 星期函数 8 HOUR() 小时函数 9 MINUTE() 分钟函数 10 SEC() 秒钟函数 4.数值类型转换函数 序号 函数 功能 1 STR ( < 数值表达式 >[,< 长 度>[,<小数位数>]]) 将<数值表达式>的值转换成指定长度的 字符串;如果长度大于数值表达式在字符 串之前加空格来满足长度,如果长度小于 数值表达式的整数部分的位数,则返回一 串*。长度为 10;小数位数为 0。 2 VAL(<字符表达式>) 字符串转换成数值 3 CTOD/CTOT() 字符串转换成日期或者日期时间函数