m程序设计 第9讲内存变量、数组及处理 FoxproForWindowshttp://cc.synu.edu.cn
FoxPro For Windows http://cc.synu.edu.cn 1 FoxPro程序设计 第9讲 内存变量、数组及处理
m程序设计 几个? 里示一下! 内存变量 【例】内存袞量赋值 小结: X=3 内存变量赋值和重新赋值 Y=x+5 赋值的过程是生成内存变量的过程 STOR 'ABC TO X,y, z 内存变量名 ACcE请输入姓名: TO name下划线组成:、数字 *x,yz的值都是字符ABC 字母为首,10个长 n name=王强 数据类型 NPUT请输入查询的学号Toxh 和它存放的数据类型一致。 xh=990106 WAT继续查询吗?(Y/N)TojX *jx=“Y 内存中暂时存放常数、运算结 果的内存空间。 FoxproForWindowshttp://cc.synu.edu.cn 2
FoxPro For Windows http://cc.synu.edu.cn 2 FoxPro程序设计 内存变量 小结: •内存变量赋值和重新赋值 赋值的过程是生成内存变量的过程 【例】内存变量赋值 X=3 Y=x+5 STOR 'ABC ' TO x,y,z * x,y,z的值都是字符'ABC ‘ ACCE '请输入姓名: ' TO name * name=‘王强’ INPUT '请输入查询的学号' TO xh * xh=990106 WAIT '继续查询吗? (Y/N)' TO jx * jx=‘Y’ •内存变量名 字母为首,10个长,字母、数字、 下划线组成。 M1、1m、 m_1 •数据类型 和它存放的数据类型一致。 •内存中暂时存放常数、运算结 果的内存空间。 几个? 显示一下!
m程序设计 内存变量显示 LIST DISPLAY MEMORY Pub C Pub C“ABC 关问 Pub CABC 机题 NAME Pub C“王强 XH Pub 990106 Pub C“"y 已定义6个变量,古用了52个字节 1018个变量可用 LIST MEMORY LIKE X &通配符和? 后内存变量保留吗 Pub H Pub H990106 变量名字 作用域类型值 FoxproForWindowshttp://cc.synu.edu.cn 3
FoxPro For Windows http://cc.synu.edu.cn 3 FoxPro程序设计 LIST│DISPLAY MEMORY 问 题 : 关 机 后 , 内 存 变 量 保 留 吗 ? LIST MEMORY LIKE X* &&通配符*和? 变量名字 作用域 类型 值 内存变量显示
内存变量的存取 m程序设计 存:将已定义的所有或部分内存变量保存到内存变量文件(MEM中。 取:需要时从某个内存变量文件中恢复内存变量的有关信息。 1)生成内存变量文件命令: SAVE TO <file> [ALL LIKEJEXCEPT<skel> 2)恢复内存变量文件命令: RESTORE FROM <file> [ADDITIVE] ADDITIVE使恢复之前内存中所有内存变量有效,否则清除。 内存变量的释放 从内存中删除已定义的内存变量,释放内存空间 RELEASE <memvar list> RELEASE ALL [LIKE<skeP EXCEPT<ske] CLEAR ALL CLEAR MEMORY FoxproForWindowshttp://cc.synu.edu.cn
FoxPro For Windows http://cc.synu.edu.cn 4 FoxPro程序设计 存:将已定义的所有或部分内存变量保存到内存变量文件(.MEM)中。 取:需要时从某个内存变量文件中恢复内存变量的有关信息。 从内存中删除已定义的内存变量,释放内存空间。 RELEASE <memvar list> RELEASE ALL [LIKE<skel>|EXCEPT<skel>] CLEAR ALL CLEAR MEMORY 1)生成内存变量文件命令: SAVE TO <file> [ALL LIKE|EXCEPT<skel>] 2)恢复内存变量文件命令: RESTORE FROM <file> [ADDITIVE] ADDITIVE 使恢复之前内存中所有内存变量有效,否则清除。 内存变量的存取 内 存 变 量 的 释 放
m程序设计 【例】**xprg SET TALK OFF CLEAALL PK. mem Y1=77 Priv Y2=88 Priv N88 X1 Priv C“99“ X1=99 SAVE TO PK RELE ALL EXCEPT Y*&&释放X1 LIST MEMORY PP N88 X2=A RESTORE FROM PK ADDI Priv C“A Priv NNC 77 LISTMEMORY LIKE ? Y2 Priv 88 X1 P rIV 99“ SET TALK ON 思考:删除ADD语句,结果如何? FoxproForWindowshttp://cc.synu.edu.cn 5
FoxPro For Windows http://cc.synu.edu.cn 5 FoxPro程序设计 【例】 ***lx.prg SET TALK OFF CLEA ALL Y1=77 Y2=88 X1='99' SAVE TO PK RELE ALL EXCEPT Y* &&释放X1 LIST MEMORY X2='A' RESTORE FROM PK ADDI LIST MEMORY LIKE ?? SET TALK ON Y1 Priv N 77 Y2 Priv N 88 X2 Priv C “A” Y1 Priv N 77 Y2 Priv N 88 X1 Priv C “99 “ Y1 Priv N 77 Y2 Priv N 88 X1 Priv C “99 “ PK.mem 思考:删除ADDI语句,结果如何?