VFP程序设计基础实验指导 下载本文

use zgdabak &&显示错误信息,找不到备注文件 copy file zgda.fpt to zgdabak.fpt &&复制备注文件 use zgdabak &&打开文件

list &&显示全部记录后,指针指向文件尾 5.文件改名、删除与文件目录的显示 dir z*.* &&列出所有z开头的文件 dir &&列出所有表文件

rename zgdabak.dbf to zb.dbf &&表文件zgdabak.dbf改名为zb.dbf use zb.dbf &&显示错误信息,找不到备注文件 rename zgdabak.fpt to zb.fpt

&&表备注文件同时要改名,否则,zb.dbf表打不开。

dele file zb.fpt &&删除zb.fpt

use zb.dbf &&显示错误信息,找不到备注文件 dele file zb.dbf &&删除zb.dbf文件 6.表记录的修改 use zgda

edit &&进入全屏幕状态,修改表的记录 change &&进入全屏幕状态,修改表的记录 browse &&进入全屏幕状态,修改表的记录 *用replace命令修改特定的记录 go 4 &&指针定位记录号为4的记录 disp &&显示当前记录信息

repl 年龄 with 年龄+1 &&当前记录的年龄+1,无范围、条件替换的是当前记录 disp &&显示当前记录信息(对比一下) *用replace命令成批的修改满足条件的多条记录 clear &&清屏 list

&&显示所有记录信息

repl all 年龄 with 年龄+1 for 职称=\讲师\所有讲师记录的年龄+1 list &&显示所有记录信息(对比一下) 7.表记录的插入

go 3 &&指针定位在第3条记录

insert blank &&在第3条记录后,插入一条空记录 list &&显示所有记录信息 go 3

insert blank before &&在第3条记录前,插入一条空记录 list &&显示所有记录信息 8.表记录的删除 go 3

dele &&逻辑删除当前记录

list &&可以看到第3条记录有删除标记* pack &&物理删除有删除标记的记录

list &&显示所有记录信息,原来的第3号记录已删除了。 注:

(1)请读者将另一条空记录用命令删除

(2)zap等价于先执行dele all后,再执行pack(请复制一个表文件再试这个命令)。 (3)recall、delete 命令后无任何选项时,只对当前记录操作。 9.表的排序 use zgda

sort on 性别 /D to zgxb &&按照性别降序生成排序表zgxb use zgxb list

10.建立索引及索引查找 (1)建立单索引

close all &&关闭所有文件 use zgda &&打开表文件zgda

list &&此时表按照物理顺序显示,即按照记录号顺序显示(用户输入记录的顺序) index on 性别 to xb.idx &&按照性别递增的顺序建立单索引文件

list &&此时表按照性别递增的逻辑顺序来显示(刚刚建立的索引文件正起作用) set index to &&关闭索引文件,记录恢复物理顺序显示

list &&记录恢复物理顺序显示

set index to xb.idx &&打开已经建立单索引文件 (2)建立结构复合索引

index on 年龄 desc tag NL &&在结构复合索引文件中按照年龄降序建立索引,NL为其索引标识。

index on 姓名ascending tag xm &&在结构复合索引文件中按照姓名升序建立索引,xm为其索引标识。

set order to tag nl &&设置结构复合索引文件中年龄索引方式起作用 list &&按照年龄降序显示表的记录

find 45 &&查找年龄为45的记录,如果找到,则指针定位该记录,同时found()返回值为真;没有找到,指针指向文件尾,found()返回值为假。 display

set order to xm &&设置结构复合索引文件中姓名索引方式起作用 list &&按照姓名升序显示记录 seek “王” &&查找姓王的记录 (3)建立非结构复合索引

index on 工作时间 desending tag GT of fjg.cdx &&建立非结构复合索引文件fjg.cdx,索引方式为工作时间降序,其索引标识为GT。 11.顺序查找 use zgda

locate for 姓名=”王” &&查找姓王的职工,=为非精确比较,可以实现模糊查询 ? found() &&.t. display &&显示当前记录

continue &&继续查找下一个满足条件(姓王的职工)的记录 ? found() &&.t. 假设表中有2条姓王的记录 display

注意:locate 与 continue 合用,可以实现查询每一个满足条件的记录。 12.过滤记录 USE ZGDA

set filter to 年龄>40 &&指定过滤条件为年龄大于40岁,满足条件的记录可操作 List &&只会显示年龄大于40岁的记录 set filter to &&取消过滤器,此时,所有记录都可操作 set filter to 性别=”女” and 职称=“讲师” &&指定过滤条件为女讲师 13.统计命令 use zgda

sum 年龄 TO X &&求所有记录年龄字段值的和,结果存放到X变量中。 ? X

AVERGE 年龄 TO Y &&求所有记录年龄的平均值,结果存放到Y变量中。 ? Y clear

count for性别=”女” to k &&查表中女职工记录个数,结果存放到k变量中。 ? k &&8 表中共有8条记录 注:count命令的结果受set dele on的影响 loca for 性别=”女” &&找到第一条女职工记录 delete &&逻辑删除

set delete on &&屏蔽有删除标记的记录

count for性别=”女” to k &&查表中女职工记录个数,结果存放到k变量中。 ? k &&7 有删除标记的记录被屏蔽不计数

? recount() &&8 该函数不受set dele on的影响,表中共有8条记录 14.分类汇总 use zgda

index on性别 to xb &&汇总的关键字段必先索引

total on 性别 to zgnew &&按照性别分类汇总,生成新表文件,表中只有2个记录 use zgnew

count to x &&统计表记录的个数 ? x &&2

List &&显示全部的两条记录信息