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

来源:asp之家 时间:2011-04-14 11:08:00 

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))) 
end if 
next 

redim Preserve result(p) 
result(p) = getSPName(s_array(i)) & "=" & Nums 
p=p+1 
next 

这个里面势必会遇到这样的一个情况:当a3数组中的其后的某一元素总会与之前比较的相同的元素进行了运算,所以该元素就不能计入 for i = 0 to ubound(s_array)内的result(p) = getSPName(s_array(i)) & "=" & Nums动态数组中去。

标签:asp,字符串,数据比较,合并
0
投稿

猜你喜欢

  • js更好地截取字符串

    2008-03-11 19:00:00
  • asp的日期转换星座函数

    2010-06-09 21:05:00
  • 从开发人员角度看IE8的开发新特性

    2010-02-26 10:48:00
  • 正则 global 属性介绍

    2008-03-18 20:50:00
  • Oracle10g 安装方法

    2009-06-19 17:50:00
  • 统一的品牌设计

    2008-08-07 12:53:00
  • MySQL中隐藏空间问题浅析

    2009-11-24 09:04:00
  • IE下,事件触发那点破烂事儿

    2009-04-27 12:31:00
  • asp下查询xml的实现代码

    2011-04-19 10:37:00
  • 合理关闭XHTML标签

    2008-06-25 13:20:00
  • SQL Server 2005 内置工具建审查系统

    2009-01-19 14:24:00
  • asp如何对文件进行操作?

    2009-11-20 18:31:00
  • TXT.WORD文档下载另存为,而不是在浏览器中打开

    2007-10-25 11:43:00
  • 提升你设计水平的CSS3新技术[译]

    2009-08-02 20:51:00
  • ORACLE实例的后台进程

    2009-09-30 10:28:00
  • 使用 JavaScript 获取本地盘符

    2010-01-12 13:49:00
  • ASP利用 xmlhttp 分块上传文件

    2007-11-01 22:55:00
  • js 返回 utf-8 字符编码是多少个字节, 函数 fUtf8BoundCheck

    2010-07-31 18:59:00
  • ASP分页显示Recordset数据

    2008-11-07 15:43:00
  • 经验:解决DB2中出现的SQL1032N错误现象

    2009-09-02 14:10:00
  • asp之家 网络编程 m.aspxhome.com