- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
解析VFP中三种循环语句对表操作
解析VFP中三种循环语句对表的操作
摘要:通过VisualFoxPro提供的三种循环(即DOWHILE…ENDDO、FOR…ENDFOR、SCAN…ENDSCAN),对同一问题,分别用三种循环完成对表的操作,并对程序进行解析,对比分析三种循环语句对表的操作方法。
关键词:Visual FoxPro 循环语句 表 操作方法
中图分类号:TP31
文献标识码:A
文章编号:1007-3973(2011)010-070-01
循环结构是VisualFoxPro(以下简称VFP)程序设计中最常用、最重要的程序结构形式之一,VFP提供的循环语句有:(1)当型循环DO WHILE…ENDDO;(2)计数循环FOR…ENDFOR;(3)指针循环SCAN…ENDSCAN。VFP中的表是一些相关数据的集合,是VFP保存数据的主要形式。用循环语句处理表中的数据,是每个VFP程序设计人员常用的方法,也是VFP初学者认为最难的内容之一。本文以一数据表为实例,谈谈在VFP中用三种循环语句解决同一问题的不同方法。
例:有一招生录取数据表lq-2010.dbf,包含编号(c,10),考生号(C,14),生源地(C,16),姓名(C,8),性别(C,2),民族(c,8),政治面貌(c,8),录取专业(c,20),高考成绩(N,3)等字段。要求显示生源地为河北省且录取专业为会计专业的学生信息。
1、用当型循环完成
代码如下:
settalkoff
clear
use lq_2010
d0 while.not.eof()
if生源地=‘河北省’.and.录取专业=。会计’
displayfields编号,考生号,生源地,姓名,性别,高考成绩,录取专业
endi
skip
enddo
use
settalkOn
retum
程序解析:本例用到的是当型循环,use 1q 2010.dbfH口打开数据表,此时指针指向第1条记录,dowhile.not.eof()为当指针不在表的末尾时执行循环体,第1次执行时,指针指向第l条记录且不在数据末尾,故运行循环体中的程序。循环体中if…endif语句是判断当前记录如果满足条件(即:生源地为河北省且录取专业为会计),则显示该学生基本信息。skip语句为指针下移一条记录,当程序运行遇到enddo语句时,程序跳到循环开始位置,当指针指向表的末尾时循环结束。
2、用计数循环完成
代码如下:
settalk off
clear
uselq_2010
rel=reccount()
fori=lto rel
if生源地=.???北省’.and.录取专业=‘会计’
displayfields编号,考生号,生源地,姓名,性别,高考成绩,录取专业
endif
skip
endfor
use
settalkOn
retum
程序解析:本例用到的是计数循环,use lq_2010.dbf即打开数据表,首先用变量rel取得数据表的总记录数(reccount()函数功能为取得当前数据表的总记录数),作为计数循环变量的终值,for i=l to rel为当变量i的值在1至rel的值之间时执行循环体,循环次数为数据表的总记录数。循环体中 if…endif语句为判断当前记录如果满足条件(即:生源地为河北省且录取专业为会计),则显示该学生基本信息。skip语句为指针下移一条记录,程序遇到endfor语句时,程序跳到循环开始位置,并将i+l赋值给循环变量i。当变量i的值超出数据表的总记录数(即irel)时,循环结束,指针指向表末尾。
3、用指针循环完成
代码如下:
settalkoff
clear
uselq_2010
SCan
if生源地=河北省’.and.录取专业=l厶计’
displayfields编号,考生号,生源地,姓名,性别,高考成绩,录取专业
endif
endscan
use
settalkOn
return
程序解析:本例用到的是指针循环,也称之为表扫描循环,专用于处理数据表中的记录,其功能为在当前表指定范围内,自动逐条移动记录指针,直到不满足条件或遇到文件尾自动结束。Use 1q 2010.dbf即打开数据表,“scan”…endscan为循环体,自动访问表中的记录,循环体中if.“endif”语句为判断当前记录,如果满足条件(即:生源地为河北省且录取专业为会计),则显示该学生基本信息,“scan”endscan循环语句中不用skip语
文档评论(0)