以下是引用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