以下是引用liuxingang28在2014-5-20 13:56:21的发言:
尽管楼主的表结构设计并不利于统计报考各科目的人数,但我还是对楼主的问题给出了解决方案:
为 ls2.dbf 新增一个字段 subject c(50),用于保存整理后的报考课目,然后执行如下代码:
CLOSE ALL
USE ls2
SCAN FOR !EMPTY(报考科目)
cStr = ','+ALLT(报考科目)+',' && 为报考科目加前后定界符,便于使用 STREXTRACT()提取科目
nNum = OCCURS(',',cStr) - 1 && 报考科目数
DIMENSION aStr[nNum] && 将各科目保存到数组
FOR i = 1 TO nNum
aStr[i] = ALLT(STREXTRACT(cStr,',',',',i))
NEXT
= ASORT(aStr) && 对科目进行排序
cStr = '' && 由数组重新组合成报考科目字符串
FOR i = 1 TO nNum
cStr = cStr + IIF(i=1,'',',')+aStr[i]
NEXT
REPLACE subject WITH cStr && 保存排序后的报考科目
ENDSCAN
GO TOP
BROWSE
DIMENSION aStr[nNum] && 将各科目保存到数组
FOR i = 1 TO nNum
aStr[i] = ALLT(STREXTRACT(cStr,',',',',i))
NEXT
中STREXTRACT函数第5个参数I表示何义?从for循环中STREXTRACT函数第5个参数I的值中1,2,3,4,5,。。VFP9帮助文件中第5个参数是1,2,4