日期:2014-05-17  浏览次数:20844 次

asp如何做到?
有如下字符串:

aa = "modelA|brandA|seriesA,modelB|brandA|seriesA,modelC|brandB|seriesB,modelD|brandA|seriesB"

利用asp,把上面的字符串归整起来。。最终的结果是:

aa = "brandA|seriesA|modelA,modelB;brandA|seriesB|modelD;brandB|seriesB|modelC"


怎么用asp来写?谢谢。。

------解决方案--------------------
VBScript code

<%
aa = "modelA|brandA|seriesA,modelB|brandA|seriesA,modelC|brandB|seriesB,modelD|brandA|seriesB"

Set rs = CreateObject("ADODB.RecordSet")
rs.CursorLocation = 3
rs.Fields.Append "brand", 200, 50
rs.Fields.Append "series", 200, 50
rs.Fields.Append "model", 200, 50
rs.Open
aRd = Split(aa, ",")
For i = 0 To UBound(aRd)
    If aRd(i) <> "" Then
        rs.AddNew
        aItem = Split(aRd(i), "|")
        If UBound(aItem) > 1 Then
            For j = 0 To UBound(aItem)
                rs("brand") = aItem(1)
                rs("series") = aItem(2)
                rs("model") = aItem(0)
            Next
        End If
    End If
Next

rs.Sort = "brand, series, model"
rs.MoveFirst
sBrand = ""
sSeries = ""
aa = ""
Do While Not rs.EOF
    b1 = False
    b2 = False
    If sBrand <> rs("brand").Value Then
        b1 = True
        sBrand = rs("brand").Value
    End If
    If sSeries <> rs("series").Value Then
        b2 = True
        sSeries = rs("series").Value
    End If
    If b1 Or b2 Then
        If aa <> "" Then aa = aa & ";"
        aa = aa & sBrand & "|" & sSeries & "|" & rs("model").Value
    Else
        aa = aa & "," & rs("model").Value
    End If
    rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Response.Write aa
%>

------解决方案--------------------
如body,html,td,table,th,div,xml


排序后结果是: body,div,html,table,td,th,xml
Dim arr(7) 
Dim i, h, t, w, x As Integer 
arr(1) = body 
arr(2) = html 
arr(3) = td 
arr(4) = table 
arr(5) = th 
arr(6) = div 
arr(7) = xml 
w = Len(arr(1)) 
for x = 2 To 7 
If w>len(arr(x)) then 
w=len(arr(x)) 
else 
endif 
next 
z = 1
For i = 1 To 7 
For h = i + 1 To 7 
If Asc(mid(arr(i),z,1)) > Asc(mid(arr(h),z,1)) Then 
t = arr(i) 
arr(i) = arr(h) 
arr(h) = t 
End If 
Next 
Next 
for z = 1 to w
For i = 1 To 7 
For h = i + 1 To 7 
If Asc(mid(arr(i),z,1)) = Asc(mid(arr(h),z,1)) Then
z = z+1 
If Asc(mid(arr(i),z,1)) > Asc(mid(arr(h),z,1)) 
t = arr(i) 
arr(i) = arr(h) 
arr(h) = t 
z = z -1
End If 
Next 
Next 
Next
for 
For i = 1 To 7 
reponse.write(arr(i)&",") 
Next