主题:关于填数的问题
lvweiming
[专家分:20] 发布于 2007-10-05 22:38:00
这是我的问题:
b j x h
三班 1
三班 1
三班 1
五班 1
五班 1
五班 1
五班 1
五班 1
七班 1
七班 1
七班 1
七班 1
我要做成下面的表:
b j x h
三班 1
三班 2
三班 3
五班 1
五班 2
五班 3
五班 4
五班 5
七班 1
七班 2
七班 3
七班 4
谢谢!!
回复列表 (共12个回复)
11 楼
myww [专家分:1190] 发布于 2007-10-09 21:23:00
[quote]USE XXXX
SORT TO temp ON bj
USE temp
cBj=''
nXh=1
SCAN
IF ALLTRIM(bj)==ALLTRIM(cBj)
nXh=nXh+1
ELSE
nXh=1
ENDIF
REPLACE xh WITH nXh
cBj=bj
ENDSCAN[/quote]
在上面几种方法中,我都运行了,其中user886633这个程序最好。
12 楼
oufeiwen [专家分:910] 发布于 2008-11-25 11:01:00
[quote][quote]我的跟4楼的差不多,如下
&& 设表名为myclass,字段xh为数值型或整型
use myclass
scan
if recn()#1 and bj=bj001
xh001=xh001+1
else
xh001=1
bj001=bj
endif
repl xh with xh001
endscan[/quote]
变量bj001和xh001没有初值
[/quote]
模拟一下程序运行就清楚了,如下:(给执行顺序打个号)
1 use myclass
2 scan
3 if recn()#1 and bj=bj001 && 开始时,recn()值为1,所以会跳到else后语句
xh001=xh001+1
else
4 xh001=1
5 bj001=bj
endif
......
......
另外,如 if recn()#1 and bj=bj001, 当 “and”之前的“recn()#1”为否时,系统不运算“and”之后的“bj=bj001”,这时,表达式“bj=bj001”是否能运算也没有一点关系了,所以逻辑运算式中的各要素的先后位置有一定的考究,处理得当会相对提高程序运行的速度。
(以上为个人的一点看法,欢迎交流!)
我来回复