| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 420 人关注过本帖
标题:如何从“购物清单”字段中统计每天购物共用了多少元
只看楼主 加入收藏
hsfisher
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:147
专家分:118
注 册:2009-4-26
收藏
得分:0 
昨天 08:22
王咸美
Rank: 1
等 级:新手上路
帖 子:786
专家分:3
注 册:2018-1-4
收藏
得分:0 
@吹水佬 刚才运行一下代码,不知为何“合计”中都显示“0.00”
昨天 08:31
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:Usa
等 级:贵宾
威 望:67
帖 子:2276
专家分:4768
注 册:2012-2-29
收藏
得分:0 
回复 20楼 吹水佬

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2025-10-16 08:38编辑过]

昨天 08:37
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10772
专家分:43344
注 册:2014-5-20
收藏
得分:0 

比较了一下api算法与正则算差距还是有点明显

程序代码:
DECLARE long sscanf IN msvcr71 long, string, single@, long@
DECLARE long strcpy IN msvcr71 string@, string
buffer = REPLICATE(0h00,256)

USE C:\_temp\gwmxz.dbf ALIAS td
SELECT * FROM td INTO CURSOR tmp READWRITE 
SELECT tmp
FOR i=1 TO 10000
    APPEND FROM DBF("td")
ENDFOR

#if 1    && 1 or 0
tm = SECONDS()
REPLACE ALL 合计 WITH f_合计(购物明细) IN "td"
? "api算法", SECONDS()-tm
#else
tm = SECONDS()
REPLACE ALL 合计 WITH RegExpTest("([.0-9_-])+(元)",购物明细) IN "td"
? "正则算法", SECONDS()-tm
#endif


*SELECT * FROM td

FUNCTION f_合计(c购物明细)
    p = strcpy(@buffer, 购物明细)
    a = 0.00
    n = 0
    t = 0
    DO WHILE SYS(2600,p,1) != 0h00
        IF sscanf(p,"%f%n",@a,@n) == 1
            p = p+n
            IF SYS(2600,p,2)=="元"
                t = t+a
                p = p+2
            ENDIF 
        ELSE
            p = p+1
        ENDIF
    ENDDO
    RETURN t
ENDFUNC

      
Function RegExpTest(patrn, strng)
regEx = CreateObject("VBScript.RegExp")   &&建立正则表达式对象
regEx.Pattern = patrn                      &&设置模式
regEx.IgnoreCase = .T.                     &&设置是否区分字符大小写
regEx.Global = .T.                         &&设置全局可用性
Matches = regEx.Execute(strng)            &&执行搜索
RetStr=0
For Each Match in Matches               &&遍历匹配集合
  RetStr=RetStr+VAL(Match.Value)
Next
Return RetStr
昨天 08:46
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:806
专家分:3219
注 册:2018-3-13
收藏
得分:0 
以下是引用吹水佬在2025-10-16 06:27:55的发言:

数据无规无格,什么算法都不好使。
程序就是 数据结构+算法,有好的数据结构才有好的算法。

这种无法无天的数据,加上人工智能好使
假设有:【草鸡单卖55元一只买8只共415元牛肉648元 - 问:总共花了多少钱】,交给能听懂人话的AI试试

这家伙很懒,啥也没留下
昨天 08:50
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:806
专家分:3219
注 册:2018-3-13
收藏
得分:0 

图片附件: 游客没有浏览图片的权限,请 登录注册

这家伙很懒,啥也没留下
昨天 08:54
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:Usa
等 级:贵宾
威 望:67
帖 子:2276
专家分:4768
注 册:2012-2-29
收藏
得分:0 
回复 24楼 吹水佬
昨天 15:13
王咸美
Rank: 1
等 级:新手上路
帖 子:786
专家分:3
注 册:2018-1-4
收藏
得分:0 
@吹水佬 谢谢您的热心指点!不知为何我在vfp9.0上运行程序,“合计”字段下均显示为0.00[合计 N(7,2)],未达到统计的效果。
昨晚 20:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10772
专家分:43344
注 册:2014-5-20
收藏
得分:0 
以下是引用王咸美在2025-10-16 20:29:09的发言:

@吹水佬 谢谢您的热心指点!不知为何我在vfp9.0上运行程序,“合计”字段下均显示为0.00[合计 N(7,2)],未达到统计的效果。

产生显示为0.00的代码呢?

昨晚 20:50
王咸美
Rank: 1
等 级:新手上路
帖 子:786
专家分:3
注 册:2018-1-4
收藏
得分:0 
就是没有实现统计汇总功能
昨晚 22:26
快速回复:如何从“购物清单”字段中统计每天购物共用了多少元
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020617 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved