以下是引用吹水佬在2025-10-30 15:51:05的发言:不用API函数可能容易理解点SET DEFAULT TO (ADDBS(JUSTPATH(SYS(16))))CREATE CURSOR tt (姓名 C(10),项目 V(10),金额 N(6,2))USE 开支明细表2 ALIAS tb IN 0SELECT tbSCAN getExpenditureRecord(ALLTRIM(tb.支出明细))ENDSCANcmd="CREATE TABLE 开支统计表 (姓名 C(10)"SELECT DISTINCT 项目 FROM tt INTO CURSOR tmpSCAN cmd=cmd+","+项目+ " n(5,2)"ENDSCANcmd=cmd + ",合计 n(6,2))"EXECSCRIPT(cmd)SELECT distinct 姓名 FROM tt INTO CURSOR tmpSELECT 开支统计表APPEND FROM DBF("tmp")INDEX on 姓名 TAG 姓名SELECT ttSET RELATION TO 姓名 INTO "开支统计表"SCAN replace (tt.项目) WITH tt.金额, 合计 WITH 合计+tt.金额 IN "开支统计表"ENDSCANSELECT * FROM 开支统计表CLOSE TABLES ALL CLEAR ALL RETURNFUNCTION getExpenditureRecord(er) s = "" i = 1 len = LEN(er) DO WHILE i <= len ch = SUBSTR(er,i,1) IF ISDIGIT(ch) OR ch=="." a = VAL(SUBSTR(er,i)) INSERT INTO tt VALUES (tb.姓名, s, a) s = "" n = i DO WHILE ISDIGIT(ch) OR ch=="." n = n+1 ch = SUBSTR(er,n,1) ENDDO i = n ELSE s = s+ch i = i+1 ENDIF ENDDOENDFUNC
吹版好,您在过程中用了 ISDIGIT(ch) OR ch=="." 判断是否是数字或小数点。 如果要分离的是汉字与字母的混合字符串,那么判断 字母 的函数是什么?麻烦告知一下,谢谢!

只求每天有一丁点儿的进步就可以了







