CLOSE DATABASES
USE bj IN 0
USE bj1 IN 0 EXCLUSIVE
ZAP IN bj1
SELECT bj
SCAN
i1=ALINES(arr1,ALLTRIM(jiaoshi),'、')
FOR i2=1 TO i1
INSERT INTO bj1 (banji,jiaoshi) VALUES (bj.banji,arr1[i2])
ENDFOR
ENDSCAN
CLOSE DATABASES
程序代码:SET TALK OFF
SET SAFETY OFF
CLOSE ALL
CREATE TABLE Bj1 (班级 V(50) , ;
教师名 V(100)) &&“V”是可变长字符串,性能优于C型
USE Bj
SCAN
顿号数=OCCURS('、',Bj.JiaoShi) &&先取当前记录的顿号数量
FOR I=1 TO 顿号数
上一顿号位置=IIF(I>1,当前顿号位置,0) &&保留前一个顿号位置备用
当前顿号位置=ATCC('、',Bj.JiaoShi,I)
姓名=SUBSTRC(Bj.JiaoShi,上一顿号位置+1,当前顿号位置-上一顿号位置-1)
INSERT INTO Bj1 VALUES (Bj.BanJi,姓名)
NEXT
姓名=TRIM(SUBSTRC(Bj.JiaoShi,当前顿号位置+1)) &&处理最后一个顿号后的姓名
INSERT INTO Bj1 VALUES (Bj.BanJi,姓名)
SELECT Bj
ENDSCAN
SET TALK ON
SET SAFETY ON
CLOSE ALL
程序代码:CLOSE DATABASES
SELECT 0
USE bj
SELECT 0
USE bj1
SELECT bj
SCAN
bjmc=bj.banji
jsxm=ALLTRIM(bj.jiaoshi)
kg=.T.
DO whil kg
dh=AT('、',jsxm) &&&& 从左到右获取第一个“、”号
cxm=SUBSTR(jsxm,1,dh-1) &&&& 截取第一个“、”号前的姓名
IF dh=0 &&&& 如果“、”号没有了,那就只有最后一个姓名了,直取
cxm=jsxm
kg=.F. &&&& 结束取姓名的循环
ENDIF
jsxm=SUBSTR(jsxm,dh+2) &&&& 截取第一个“、”号的字符串
SELECT bj1
APPEND BLANK
REPLACE bj1.banji with bjmc
REPLACE bj1.jiaoshi with cxm
ENDDO
SELECT bj
ENDSCAN 我的VFP8.0的,测试成功的
