| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 421 人关注过本帖
标题:如何从“购物清单”字段中统计每天购物共用了多少元
只看楼主 加入收藏
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:Usa
等 级:贵宾
威 望:67
帖 子:2276
专家分:4768
注 册:2012-2-29
收藏
得分:0 
@nbwww,吹水版主,学习啦!正则确实非常好,谢谢!
图片附件: 游客没有浏览图片的权限,请 登录注册

又新加一些数字,结果确实正则好用!
图片附件: 游客没有浏览图片的权限,请 登录注册





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

昨天 05:17
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10772
专家分:43344
注 册:2014-5-20
收藏
得分:0 
以下是引用schtg在2025-10-16 05:17:05的发言:

@nbwww,吹水版主,学习啦!正则确实非常好,谢谢!

又新加一些数字,结果确实正则好用!

如果有些没有“元〞
如10元写成10;12.34元写成12.34

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

昨天 06:21
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10772
专家分:43344
注 册:2014-5-20
收藏
得分:0 
数据无规无格,什么算法都不好使。
程序就是 数据结构+算法,有好的数据结构才有好的算法。
昨天 06:27
王咸美
Rank: 1
等 级:新手上路
帖 子:786
专家分:3
注 册:2018-1-4
收藏
得分:0 
各位高手,请分享一下具体代码!谢谢!
昨天 06:57
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:Usa
等 级:贵宾
威 望:67
帖 子:2276
专家分:4768
注 册:2012-2-29
收藏
得分:0 
回复 12楼 吹水佬
这个绝对正确,表中的数据没有按照规矩记录,计算起来难度确实很大
昨天 07:31
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:Usa
等 级:贵宾
威 望:67
帖 子:2276
专家分:4768
注 册:2012-2-29
收藏
得分:0 
回复 13楼 吹水佬
昨天 07:31
schtg
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:Usa
等 级:贵宾
威 望:67
帖 子:2276
专家分:4768
注 册:2012-2-29
收藏
得分:0 
回复 14楼 王咸美
代码就在7楼
昨天 07:55
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10772
专家分:43344
注 册:2014-5-20
收藏
得分:0 
如果只算元单位的数加多个判断就可以;如果要算不同单位的数就按单位结构检索判断。
程序代码:
DECLARE long sscanf IN msvcr71 long, string, single@, long@
DECLARE long strcpy IN msvcr71 string@, string
购物明细 = "黄鳝10条40元牛肉61元鸡蛋11元冷菜75元蔬菜53元肉10.30元"
buffer = REPLICATE(0h00,256)
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)=="元"
            ? a
            t = t+a
            p = p+2
        ENDIF 
    ELSE
        p = p+1
    ENDIF
ENDDO
? t

昨天 07:57
王咸美
Rank: 1
等 级:新手上路
帖 子:786
专家分:3
注 册:2018-1-4
收藏
得分:0 
@吹水佬 用上我提供的表文件gwmxz.dbf,上述代码如何修改?请指点!
另上述代码运行后显示结果为0,不知为何?
昨天 08:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10772
专家分:43344
注 册:2014-5-20
收藏
得分:0 
回复 19楼 王咸美
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码:
DECLARE long sscanf IN msvcr71 long, string, single@, long@
DECLARE long strcpy IN msvcr71 string@, string
USE C:\_temp\gwmxz.dbf ALIAS td
buffer = REPLICATE(0h00,256)
REPLACE ALL 合计 WITH f_合计(购物明细) IN "td"
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
昨天 08:13
快速回复:如何从“购物清单”字段中统计每天购物共用了多少元
数据加载中...
 
   



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

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