加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

asp两组字符串数据对比合并相同数据

发布时间:2023-07-17 13:39:20 所属栏目:Asp教程 来源:
导读:asp两组字符串数据对比合并相同数据:a1="sp2=20;sp1=34;"a2="sp3=2;sp2=3;sp1=4;"两组字符串数据,将字符串中相同的数据值相加后得到新的一组数据即“sp3=2;sp2=23;sp1=38”(p.s 一个简单的应用:商品二原

asp两组字符串数据对比合并相同数据:

a1="sp2=20;sp1=34;"

a2="sp3=2;sp2=3;sp1=4;"

两组字符串数据,将字符串中相同的数据值相加后得到新的一组数据

即“sp3=2;sp2=23;sp1=38”

(p.s 一个简单的应用:商品二原有数量20件,商品一原有数量34件,新进货或者新出售了商品二3件,商品一4件等类型模拟情况下计算出进货量,销售量和库存量,小型的进销存系统可采用这样的方法)

那么如何实现两组字符串数据比较合并相同数据?

第一,将两组字符串数据进行连接组合

a3=a1&a2

那么a3="sp2=20;sp1=34;sp3=2;sp2=3;sp1=4;"

第二,将a3中相同的数据进行值的相加

这里主要解决的是如何寻找到相同的数据

首先因为现在a3就是由 sp2、sp1、sp3、sp2和sp1组成,需要把相同的sp2和sp1单独找出来再进行值得相加。

通过split函数分割“;”为分隔符获得每块数据和值。

即 s_array = split(a3,";")通过for i = 0 to ubound(s_array)循环我们可以获得单独的各项数据及值

其中每项的格式是类似“sp2=20”,要将sp2提取出来才能和同组中的数据进行比较,所以还需要独立函数进行提取

Function getSPName(sp)

    getSPName = split(sp,"=")(0)

End Function

Function getSPNum(sp)

    getSPNum = split(sp,"=")(1)

end function

分别获得“=”前的数据名称和“=”后的数据值。

其次每块数据都分解下来了,就是如何寻找到相同的数据名称。

我们假设这样的流程,首先将a3数组中的第一元素提取,通过和除第一元素之前以为的数据进行比较,如果有相同则进行相加。

s_array = split(a3,";")

for i = 0 to ubound(s_array)

    for j=i+1 to ubound(s_array)

        if getSPName(s_array(i)) = getSPName(s_array(j)) then

        Nums = Nums + Cint(getSPNum(s_array(j)))

        end if

    next

next

我们获得了最终的值可以随时将值赋到新的动态数组中,组合成最终的“组合数据”数组

redim Preserve result(p)

result(p) = getSPName(s_array(i)) & "=" & Nums

s_array = split(a3,";")

for i = 0 to ubound(s_array)

    for j=i+1 to ubound(s_array)

        if getSPName(s_array(i)) = getSPName(s_array(j)) then

        Nums = Nums + Cint(getSPNum(s_array(j)))

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章