第2章数据与数据运算2.1数据类型数据是反映客观事物属性的记录,通常分为数值型和学符型两种基本类型。数据类型一旦被定义,就确定了其存储方式和使用方式。其中,存储方式决定了数据的取值范围和占用存储空间的大小:使用方式决定了数据能进行哪些操作。VisualFoxPro6.0中的数据类型主要有:1、字符型(C型)字符型(Character)数据是描述不具有计算能力的文字数据类型,是最常用的数据类型之一。字符型数据由汉字和ASCII字符集中可打印字符(英文字符、数字字符、空格及其他专用字符)组成,其宽度为1254个字节。【例2-1】字符型数据的表示。X="数据库原理及应用VisualFoxPro6.0程序设计"其中“X”为字符型变量,是字符型数据的存储单元。2、数值型数值型数据是描述数量的数据类型,是最常用的数据类型之一。数值型数据又可被细化为以下3种类型:(1)数值型(N型)数值型(Numeric)数据是由数字(0~9)、小数点和正负号组成,用来描述数值大小。其宽度为1~20位,占用8个字节的存储空间。【例2-2】数值型数据的表示。X=-19.5Y=19.5其中“X”、“Y”为数值型变量,是数值型数据的存储单元。(2)浮点型浮点型(Float)数据是数值型数据的一种,与数值型数据完全等价,只是在存储形式上采取浮点格式且数据的精度要比数值型数据高,其宽度为1~20位,占用8个字节的存储空间。如:1.23456e+5,表示数字:123456。(3)双精度型双精度型(Double)数据是更高精度的数值型数据。它只用于数据表中的字段类型的定义,并采用固定长度浮点格式存储,可精确到小数点后15位,并占用8个字节的存储空间。3、货币型(Y型)货币型(Currency)数据是数值型数据的一种特殊形式,在数据的第一个数字前加一个货币符号(S)。货币型数据小数位的最大长度是4,小数位超过4个数符时,系统将会自动截取。该类型占用存储空间8个字节。4、逻辑型(L型)逻辑型(Logic)数据是描述客观事物真假的数据,通常用于表示逻辑判断的结果。逻辑型数据只有逻辑真和逻辑假两个值,其宽度为1个字节。5、日期型(D型)日期型(Date)数据是用于表示日期的数据,其宽度为8个字节。日期型数据包括年、月、日三个部分,各占2个学节,每个部分用规定的分隔符分开,分隔符各占1个字节。6、日期时间型(T型)
第 2 章 数据与数据运算 2.1 数据类型 数据是反映客观事物属性的记录,通常分为数值型和字符型两种基本类型。数据类型一 旦被定义,就确定了其存储方式和使用方式。其中,存储方式决定了数据的取值范围和占用 存储空间的大小;使用方式决定了数据能进行哪些操作。 Visual FoxPro 6.0 中的数据类型主要有: 1、字符型(C 型) 字符型(Character)数据是描述不具有计算能力的文字数据类型,是最常用的数据类 型之一。 字符型数据由汉字和 ASCII 字符集中可打印字符(英文字符、数字字符、空格及其他专 用字符)组成,其宽度为 1~254 个字节。 【例 2-1】字符型数据的表示。 X=”数据库原理及应用 _Visual FoxPro 6.0 程序设计” 其中“X”为字符型变量,是字符型数据的存储单元。 2、数值型 数值型数据是描述数量的数据类型,是最常用的数据类型之一。数值型数据又可被细化 为以下 3 种类型: (1) 数值型(N 型) 数值型(Numeric)数据是由数字(0~9)、小数点和正负号组成,用来描述数值大小。 其宽度为 1~20 位,占用 8 个字节的存储空间。 【例 2-2】数值型数据的表示。 X=-19.5 Y=19.5 其中“X”、“Y”为数值型变量,是数值型数据的存储单元。 (2) 浮点型 浮点型(Float)数据是数值型数据的一种,与数值型数据完全等价,只是在存储形式 上采取浮点格式且数据的精度要比数值型数据高,其宽度为 1~20 位,占用 8 个字节的存储 空间。如:1.23456e+5,表示数字:123456。 (3) 双精度型 双精度型(Double)数据是更高精度的数值型数据。它只用于数据表中的字段类型的定 义,并采用固定长度浮点格式存储,可精确到小数点后 15 位,并占用 8 个字节的存储空间。 3、货币型(Y 型) 货币型(Currency)数据是数值型数据的一种特殊形式,在数据的第一个数字前加一个 货币符号($)。 货币型数据小数位的最大长度是 4,小数位超过 4 个数符时,系统将会自动截取。该类 型占用存储空间 8 个字节。 4、逻辑型(L 型) 逻辑型(Logic)数据是描述客观事物真假的数据,通常用于表示逻辑判断的结果。逻 辑型数据只有逻辑真和逻辑假两个值,其宽度为 1 个字节。 5、日期型(D 型) 日期型(Date)数据是用于表示日期的数据,其宽度为 8 个字节。日期型数据包括年、 月、日三个部分,各占 2 个字节,每个部分用规定的分隔符分开,分隔符各占 1 个字节。 6、日期时间型(T 型)
日期时间型(DateTime)数据是描述日期和时间的数据,其宽度为8个学字节。日期时间型数据除包括年、月、日以外,还要包括时、分、秒以及上午、下午等信息,中间用空格分隔。7、备注型(M型)备注型(Memo)数据是用于存放长文本块的数据类型,可以看成是字符型数据的特殊形式,但没有数据长度的限制,仅受限于现有的磁盘空间,只用于数据表中字段类型的定义,字段宽度为4个字节,数据实际存放在与数据表同名的“.fpt”文件中。8、通用型(G型)通用型(General)数据用于存放OLE对象(对象链接与嵌入)的数据类型,可以是表格、图片、声音文档等数据,与备注型数据一样只用于数据表中字段类型的定义,字段宽度为4个字节,数据实际存放在与数据表同名的“.fpt”文件中。2.2常量与变量2.2.1 常量常量是指一个具体的、不变的值。VisualFoxPro6.0中常用的常量类型有以下5种:1、数值型常量数值型常量(N型常量):可以进行算术运算的常数,由数字(O-9)、小数点和正负号组成。例如:80,-52.06,3.1415e-82、字符型常量字符型常量(C型常量):是用定界符括起来的由英文、汉字、空格或数字所组成的字符串。定界符可以是英文单引号、双引号或方括号,且必须成对使用。当某一种定界符本身是字符型常量的组成部分时,就应选用另一种定界符。例如:[abcd],"铜陵学院",","Hesay[Iamastudent]."注意:不包含任何字符的字符串("")叫空串。空串与包含空格的字符串(”")不同。3、逻辑型常量逻辑型常量(L型常量):只有两个值,即“真”与“假”,用.T.、.t.、.Y.、·y.表示“真”,用.F.、.f.、.N.、.n.表示“假”。注意:两边的小圆点不能省掉。4、日期型常量日期型常量(D型常量):默认格式(yyyy/mm/dd),必须用一对大括号括起来。大括号内包含年、月、日三部分,各部分之间用分隔符分隔,系统默认的分隔符为斜杠(/)。常用的分隔符还有连字符()、句点(.)等。注意:脱字符()不能省略。例如:(1999/05/10),(1999/05/10),(~2003.05.10)。注意:日期型常量的输入格式为(yyyy/mm/dd),但系统默认日期格式是月/日/年。5、日期时间型常量日期时间型常量(T型常量):默认格式(yyyy/mm/ddhh:mmss[a|p])(年/月/日小时:分:秒)。注意:日期和时间数据间必须有空格。例如:(1999/05/1009:15:22am),(~2002/05/1009:15:22pm)。6、货币型常量(Y型常量)货币型常量用来表示货币值,其书写格式为在数字前加上一个前置符号$。例如:$60.25。货币型常量在存储和运算时采用保留4位小数,多于4位小数时采用四舍五入
日期时间型(Date Time)数据是描述日期和时间的数据,其宽度为 8 个字节。 日期时 间型数据除包括年、月、日以外,还要包括时、分、秒以及上午、下午等信息,中间用空格 分隔。 7、备注型(M 型) 备注型(Memo)数据是用于存放长文本块的数据类型,可以看成是字符型数据的特殊形 式,但没有数据长度的限制,仅受限于现有的磁盘空间,只用于数据表中字段类型的定义, 字段宽度为 4 个字节,数据实际存放在与数据表同名的“.fpt”文件中。 8、通用型(G 型) 通用型(General)数据用于存放 OLE 对象(对象链接与嵌入)的数据类型,可以是表 格、图片、声音文档等数据,与备注型数据一样只用于数据表中字段类型的定义,字段宽度 为 4 个字节,数据实际存放在与数据表同名的“.fpt”文件中。 2.2 常量与变量 2.2.1 常量 常量是指一个具体的、不变的值。Visual FoxPro 6.0 中常用的常量类型有以下 5 种: 1、数值型常量 数值型常量(N 型常量):可以进行算术运算的常数,由数字(0-9)、小数点和正负号 组成。例如:80,-52.06,3.1415e-8 2、字符型常量 字符型常量(C 型常量):是用定界符括起来的由英文、汉字、空格或数字所组成的字 符串。定界符可以是英文单引号、双引号或方括号,且必须成对使用。当某一种定界符本身 是字符型常量的组成部分时,就应选用另一种定界符。 例如:[abcd],”铜陵学院”,’ ’,”He say[I am a student].” 注意:不包含任何字符的字符串(”)叫空串。空串与包含空格的字符串(” ”)不同。 3、逻辑型常量 逻辑型常量(L 型常量):只有两个值,即“真”与“假”,用 .T.、.t.、.Y.、.y. 表 示“真”,用 .F.、.f.、.N.、.n. 表示“假”。 注意:两边的小圆点不能省掉。 4、日期型常量 日期型常量(D 型常量):默认格式{^yyyy/mm/dd},必须用一对大括号括起来。大括 号内包含年、月、日三部分,各部分之间用分隔符分隔,系统默认的分隔符为斜杠(/)。常 用的分隔符还有连字符()、句点(.)等。 注意:脱字符(^)不能省略。 例如:{^1999/05/10},{^1999/05/10},{^2003.05.10}。 注意: 日期型常量的输入格式为{^yyyy/mm/dd},但系统默认日期格式是月/日/年。 5、日期时间型常量 日期时间型常量(T 型常量):默认格式{^yyyy/mm/dd hh:mm:ss [a|p]}(年/月/日 小 时:分:秒)。 注意:日期和时间数据间必须有空格。 例如:{^1999/05/10 09:15:22 am},{^2002/05/10 09:15:22 pm}。 6、货币型常量(Y 型常量) 货币型常量用来表示货币值,其书写格式为在数字前加上一个前置符号$。例如: $60.25。货币型常量在存储和运算时采用保留 4 位小数,多于 4 位小数时采用四舍五入
2.2.2变量变量是指在命令操作或程序运行期间,其值可以被改变的量。VisualFoxPro6.0中的变量分为字段变量、用户内存变量和系统内存变量三类。用户内存变量简称为内存变量,前两种变量的名称不超过128个字符,但必须以字母、汉字或下划线开头,后跟字母、汉字、下划线和数字,而系统内存变量名称由系统规定。1、字段变量字段变量随着数据表的打开和关闭而在内存中存储和释放,表中的字段名就是变量的标识。它的当前值是记录指针所指记录(当前记录)的相应字段值,因此字段变量的值随看表记录指针所指的位置变化而变化。2、内存变量内存变量是一种独立于表文件而存在于内存中的临时变量,或者说是一种临时存放数据的单元。它一般用来在程序的执行过程中保留中间结果与最后结果,或用来保留对某种分析处理后得到的结果。注意:当内存变量名与当前表文件的字段名变量同名时,系统优先引用字段名变量。如果要引用同名的内存变量,则必须在变量前加上M->或M.作为前缀。例M->姓名,指内存变量姓名。内存变量在赋值之前不必事先定义。在赋值时若该变量并不存在,系统会自动建立。2.2.3内存变量常用命令VisualFoxPro提供了多种命令,用于变量的定义、赋值及保存。1、内存变量的赋值格式1:<内存变量名>=<表达式>功能:计算表达式的值,并赋值给赋值号(=)左边的内存变量。格式2:STORE<表达式》TO<内存变量名表》功能:计算表达式的值,一次对多个变量赋相同的值,各内存变量名间要用逗号分开。【例2-3】在命令窗口键入如下命令USE XSDA&&打开数据库表XSDABROWSE&&打开浏览窗口浏览数据后,关闭浏览窗口?姓名&&显示当前记录的姓名字段值姓名="王芳"&定义内存变量姓名,字符型,其值为"王芳”?姓名&&显示当前记录的姓名字段值?M.姓名&显示内存变量姓名的值2、输出表达式的值格式1:?[《表达式表》]格式2:??<表达式表)功能:计算并输出各表达式的值,各表达式间用逗号分隔。格式1不管有没有表达式,都会先输出一个回车换行符,若有表达式则在下一行的起始处输出表达式的值。格式2则不会输出一个回车换行符,表达式的值在当前行的光标处输出。3、显示内存变量格式1:LISTMEMORY[LIKE<通配符>][TOPRINTERTOFILE<文件名>]格式2:DISPLAYMEMORY[LIKE<通配符>][TOPRINTERTOFILE<文件名>]功能说明:①格式1、格式2的功能是显示内存变量的当前信息,包括变量名、作用域、类型和取值。②选用LIKE短语只显示与通配符相匹配的那些内存变量。通配符包括“*”和“?”,其中
2.2.2 变量 变量是指在命令操作或程序运行期间,其值可以被改变的量。Visual FoxPro 6.0 中的 变量分为字段变量、用户内存变量和系统内存变量三类。用户内存变量简称为内存变量,前 两种变量的名称不超过 128 个字符,但必须以字母、汉字或下划线开头,后跟字母、汉字、 下划线和数字,而系统内存变量名称由系统规定。 1、字段变量 字段变量随着数据表的打开和关闭而在内存中存储和释放,表中的字段名就是变量的标 识。它的当前值是记录指针所指记录(当前记录)的相应字段值,因此字段变量的值随着表 记录指针所指的位置变化而变化。 2、内存变量 内存变量是一种独立于表文件而存在于内存中的临时变量,或者说是一种临时存放数据 的单元。它一般用来在程序的执行过程中保留中间结果与最后结果,或用来保留对某种分析 处理后得到的结果。 注意:当内存变量名与当前表文件的字段名变量同名时,系统优先引用字段名变量。如 果要引用同名的内存变量,则必须在变量前加上 M->或 M.作为前缀。例 M->姓名,指内存变 量姓名。内存变量在赋值之前不必事先定义。在赋值时若该变量并不存在,系统会自动建立。 2.2.3 内存变量常用命令 Visual FoxPro 提供了多种命令,用于变量的定义、赋值及保存。 1、内存变量的赋值 格式 1:<内存变量名>=<表达式> 功能:计算表达式的值,并赋值给赋值号(=)左边的内存变量。 格式 2:STORE <表达式> TO <内存变量名表> 功能: 计算表达式的值,一次对多个变量赋相同的值,各内存变量名间要用逗号分开。 【例 2-3】在命令窗口键入如下命令: USE XSDA &&打开数据库表 XSDA BROWSE &&打开浏览窗口浏览数据后,关闭浏览窗口 ?姓名 &&显示当前记录的姓名字段值 姓名=”王芳” &&定义内存变量姓名,字符型,其值为”王芳” ?姓名 &&显示当前记录的姓名字段值 ?M.姓名 &&显示内存变量姓名的值 2、输出表达式的值 格式 1:?[<表达式表>] 格式 2:??<表达式表> 功能:计算并输出各表达式的值,各表达式间用逗号分隔。 格式 1 不管有没有表达式,都会先输出一个回车换行符,若有表达式则在下一行的起始处输 出表达式的值。 格式 2 则不会输出一个回车换行符,表达式的值在当前行的光标处输出。 3、显示内存变量 格式 1:LIST MEMORY [LIKE<通配符>] [TO PRINTER|TO FILE<文件名>] 格式 2:DISPLAY MEMORY [LIKE<通配符>] [TO PRINTER|TO FILE<文件名>] 功能说明: ①格式 1、格式 2 的功能是显示内存变量的当前信息,包括变量名、作用域、类型和取值。 ②选用 LIKE 短语只显示与通配符相匹配的那些内存变量。通配符包括“*”和“?”,其中
“*”表示任意多位、每位可以是任意一个字符,“?”表示任意一个字符。③选用TOPRINTER或TOFILE<文件名>用于在显示的同时送往打印机打印或者存入指定文件名的文本文件中,文件的扩展名为.txt。②LISTMEMORY与DISPLAYMEMORY的区别:前者一次性显示与通配符相匹配的所有内存变量如果内存变量多,一屏显示不下,自动向上滚动而不停顿:后者是分屏显示,即显示一屏后暂停,按任意键再显示下一屏。【例2-4】定义常用类型的内存变量并赋值。在命令窗口中键入如下命令:STORE28.21TOA&定义内存变量A,数值型,其值为28.21STORE"铜陵学院”TOB&&定义内存变量B,字符型,其值为”铜陵学院”STORE.T.TO C&定义内存变量C,逻辑型,其值为.T.(真)STORE $100 TO D&定义内存变量D,货币型,其值为S100E=(2010/04/10)&定义内存变量E,日期型,其值为2010年4月10日F=(2010/3/209:30:10am)&&定义内存变量F,日期时间型,其值为2010年3月20日上午9点30分10秒STORE 20O TO X,Y,Z&&定义内存变量x,y,z,数值型,其值都为20LISTMEMORYLIKE?&显示以一个字符为变量名的所有内存变量的属性。运行结果:APubN28.21(28.21000000)BPubc"铜陵学院"cL.T.PubDYPub100.0000EPubD04/10/10FPubT03/20/1009:30:10AMXPubN(2020.00000000)Y(PubN2020.00000000)ZPub(N2020.00000000)4、内存变量的保存与恢复(1)内存变量的保存格式:SAVETO<内存变量文件名》[ALLLIKE/EXCEPT<通配符>]功能:将内存中的部分或全部内存变量以文件的形式存入磁盘,文件名由<内存变量文件名》指定,文件扩展名的缺省为.mem。参数说明:[ALLLIKE<通配符>]:将符合<内存变量名框架>的那些变量存入指定的文件。ALLEXCEPT<通配符>I:将不符合<内存变量名框架>的那些变量存入指定的文件。【例2-5】保存指定的内存变量SAVETOABCALLLIKE?&保存以一个字符为变量名的所有内存变量(2)内存变量的恢复格式:RESTOREFROM<内存变量文件名》[ADDITIVE]功能:它将<内存变量文件名>指定的内存变量文件中所保存的内存变量从磁盘读回内存重新使用。参数说明:FROM<内存变量文件名》:指定恢复内存变量的来源。[ADDITIVE]:保留当前内存中的内存变量,将指定文件中的内存变量添加到当前内存变量之后。:若省略ADDITIVE选择项,则内存中已有的内存变量全部释放,将指定文件中的内
“*” 表示任意多位、每位可以是任意一个字符,“?”表示任意一个字符。 ③选用 TO PRINTER 或 TO FILE<文件名>用于在显示的同时送往打印机打印或者存入指定文 件名的文本文件中,文件的扩展名为.txt。 ②LIST MEMORY 与 DISPLAY MEMORY 的区别:前者一次性显示与通配符相匹配的所有内存变量, 如果内存变量多,一屏显示不下,自动向上滚动而不停顿;后者是分屏显示,即显示一屏后 暂停,按任意键再显示下一屏。 【例 2-4】定义常用类型的内存变量并赋值。在命令窗口中键入如下命令: STORE 28.21 TO A &&定义内存变量 A,数值型,其值为 28.21 STORE ”铜陵学院” TO B &&定义内存变量 B,字符型,其值为”铜陵学院” STORE .T.TO C &&定义内存变量 C,逻辑型,其值为.T.(真) STORE $100 TO D &&定义内存变量 D,货币型,其值为$100 E={^2010/04/10} &&定义内存变量 E,日期型,其值为 2010 年 4 月 10 日 F={^2010/3/20 9:30:10am} &&定义内存变量 F,日期时间型,其值为 2010 年 3 月 20 日 上午 9 点 30 分 10 秒 STORE 20 TO X,Y,Z &&定义内存变量 x,y,z,数值型,其值都为 20 LIST MEMORY LIKE ? &&显示以一个字符为变量名的所有内存变量的属性。 运行结果: A Pub N 28.21 (28.21000000) B Pub C ”铜陵学院” C Pub L .T. D Pub Y 100.0000 E Pub D 04/10/10 F Pub T 03/20/10 09∶30∶10 AM X Pub N 20 ( 20.00000000) Y Pub N 20 ( 20.00000000) Z Pub N 20 ( 20.00000000) 4、内存变量的保存与恢复 (1) 内存变量的保存 格式:SAVE TO <内存变量文件名> [ALL LIKE/ EXCEPT <通配符>] 功能:将内存中的部分或全部内存变量以文件的形式存入磁盘,文件名由<内存变量文件名> 指定,文件扩展名的缺省为 .mem。 参数说明: [ALL LIKE <通配符>]:将符合<内存变量名框架>的那些变量存入指定的文件。 [ALL EXCEPT <通配符>]:将不符合<内存变量名框架>的那些变量存入指定的文件。 【例 2-5】保存指定的内存变量 SAVE TO ABC ALL LIKE ? &&保存以一个字符为变量名的所有内存变量 (2) 内存变量的恢复 格式:RESTORE FROM <内存变量文件名> [ADDITIVE] 功能:它将<内存变量文件名>指定的内存变量文件中所保存的内存变量从磁盘读回内存重新 使用。 参数说明: FROM <内存变量文件名> :指定恢复内存变量的来源。 [ADDITIVE] :保留当前内存中的内存变量,将指定文件中的内存变量添加到当前内存变 量之后。 若省略 ADDITIVE 选择项,则内存中已有的内存变量全部释放,将指定文件中的内
存变量调入内存5、内存变量的清除格式一:RELEASE<内存变量名表)功能:删除指定的内存变量。当<内存变量名表》为多个变量时,变量名之间用“,”隔开。格式二:RELEASEALL[LIKE/EXCEPT<内存变量名框架>]功能:删除指定的内存变量。省略所有选择项时,则删除所有的内存变量。格式三:CLEARMEMORY功能:删除当前内存中的所有内存变量。它和RELEASEALL的效果完全相同。说明:参数与前述相同。【例2-6】清除指定的内存变量RELEASE A, B, C&&清除内存变量A、B和CRELEASEALLLIKEB*&清除所有首字母为B的内存变量RELEASEALLEXCEPTB*&&清除所有首字母不为B的内存变量DISPRELEASE ALL&&清除所有内存变量RESTOREFROMABC&&将文件ABC.TXT中的内存变量从磁盘读回内存2.2.4数组数组是一组按一定顺序排列的内存变量,数组中的各个变量称为数组元素,每个数组元素可以通过数组名和下标来访问,数组必须先定义后使用。数组的定义和功能如下:格式:DIMENSION<数组名1>(<下标上限1>[,<下标上限2>J)[,<数组名2>(<下标上限3>[<下标上限4>])]】.·...·功能:定义一个一维或二维数组,同时定义该数组下标的上限。说明:①定义数组时必须指定数组名、数组的维数、数组的大小。系统规定数组下标的下限是1。②数组中各个元素在数组中的位置由下标表示。例如,命令“DIMENSIONX(4),Y(2,3)”分别定义了数组名为X的一维数组和数组名为Y的二维数组。数组X的下标下限为1,上限为4,故数组X的元素为:X(1),X(2),X(3),X(4)。二维数组Y的下标下限为(1,1),上限为(2,3),因而数组Y有2行3列共6个元素:Y(1,1)Y(1,2)Y(1,3)Y(2,1)Y(2,2)Y(2,3)③数组定义后,数组中各个元素的初始值是.F.。④数组中各个元素的取值类型可以互不相同。③用赋值命令可以对数组元素赋值,也可以对数组中的所有元素赋同一值。③在可以使用简单内存变量的地方,均可使用数组元素。③在同一运行环境中,数组名不能与简单内存变量同名。【例3-7】DIMENSIONX(4)X(1)="10106"X(2)="李冰"X(3)=~1981/6/5)X(4)=. T.DISPMEMOLIKE?
存变量调入内存 。 5、内存变量的清除 格式一:RELEASE <内存变量名表> 功能:删除指定的内存变量。当<内存变量名表>为多个变量时,变量名之间用“,”隔开。 格式二:RELEASE ALL [LIKE/EXCEPT <内存变量名框架>] 功能:删除指定的内存变量。省略所有选择项时,则删除所有的内存变量。 格式三:CLEAR MEMORY 功能:删除当前内存中的所有内存变量。它和 RELEASE ALL 的效果完全相同。 说明:参数与前述相同。 【例 2-6】清除指定的内存变量 RELEASE A,B,C && 清除内存变量 A、B 和 C RELEASE ALL LIKE B* && 清除所有首字母为 B 的内存变量 RELEASE ALL EXCEPT B* && 清除所有首字母不为 B 的内存变量 DISP RELEASE ALL && 清除所有内存变量 RESTORE FROM ABC && 将文件 ABC.TXT 中的内存变量从磁盘读回内存 2.2.4 数组 数组是一组按一定顺序排列的内存变量,数组中的各个变量称为数组元素,每个数组元 素可以通过数组名和下标来访问,数组必须先定义后使用。数组的定义和功能如下: 格式:DIMENSION <数组名 1>(<下标上限 1>[,<下标上限 2>]) [,<数组名 2>(<下标上限 3>[,<下标上限 4>])]. 功能:定义一个一维或二维数组,同时定义该数组下标的上限。 说明: ① 定义数组时必须指定数组名、数组的维数、数组的大小。系统规定数组下标的下限是 1。 ② 数组中各个元素在数组中的位置由下标表示。 例如,命令“DIMENSION X(4),Y(2,3)”分别定义了数组名为 X 的一维数组和数组名为 Y 的 二维数组。 数组 X 的下标下限为 1,上限为 4,故数组 X 的元素为:X(1),X(2),X(3),X(4)。 二维数组 Y 的下标下限为(1,1),上限为(2,3),因而数组 Y 有 2 行 3 列共 6 个元素: Y(1,1) Y(1,2) Y(1,3) Y(2,1) Y(2,2) Y(2,3) ③ 数组定义后,数组中各个元素的初始值是.F.。 ④ 数组中各个元素的取值类型可以互不相同。 ⑤ 用赋值命令可以对数组元素赋值,也可以对数组中的所有元素赋同一值。 ⑥ 在可以使用简单内存变量的地方,均可使用数组元素。 ⑦ 在同一运行环境中,数组名不能与简单内存变量同名。 【例 3-7】 DIMENSION X(4) X(1)=”10106” X(2)=”李冰” X(3)={^1981/6/5} X(4)=.T. DISP MEMO LIKE ?