用SCAN语句最省事
不要为了打发无聊而做无聊的事!不要在虚幻的世界里做虚幻的事!
偶刚学VFP不久,写了一段代码,一运行就进入死循环,哪位高手帮忙看看哪里出错了,多谢了!
SET TALK OFF
SELECT 1
USE 表1
go top
do while .not. EOF()
a1=姓名
a2=语文
a3=数学
a4=英语
a5=总成绩
a6=平均成绩
a7=考试日期
a5=a2+a3+a4
a6=a5/3
SELECT 2
use 考试日期
y2=年份
m2=月份
use
y2=val(y2)
m2=val(m2)
if m2>0 .and. m2<10
m3=1
else
m3=2
endi
mm=str(m2,m3)
yy=str(y2,4)
ymym=yy+mm
a7=ymym
SELECT 1
USE 表1
replace 姓名 with a1
replace 语文 with a2
replace 数学 with a3
replace 英语 with a4
replace 总成绩 with a5
replace 平均成绩 with a6
replace 考试日期 with a7
SELECT 1
ENDDO
USE
retu
你全部的程序可改写为:
CLOSE ALL
USE 考试日期
YYMM=年份+月份 &&根据你的程序大概知道年份和月份都是字符型
USE 表1
REPLACE ALL 总成绩 WITH 语文+数学+英语,平均成绩 WITH (语文+数学+英语)/3,考试日期 WITH YYMM
原来的程序有多处错了,最主要的是在循环里面不断地打开表,而每次打开表都将使记录指针指向第一条记录。即使只选择工作区而不打开表,也应该使用SKIP命令。