두 세트의 문자열 데이터는 동일한 데이터를 비교하고 해당 값을 추가하여 새로운 문자열 데이터를 형성해야 합니다. a1=sp2=20;sp1=34;
a2=sp3=2;sp2=3;sp1=4;
두 세트의 문자열 데이터. 문자열에 동일한 데이터 값을 추가하여 새로운 데이터 세트를 얻습니다.
즉, sp3=2;sp2=23;sp1=38입니다.
(PS 간단한 적용: 제품 2의 원래 수량은 20개, 제품 1의 원래 수량은 34개, 신규 구매 또는 새로 판매된 제품 2의 3개, 제품 1의 4개 등을 시뮬레이션하여 계산합니다. 구매량 및 판매량 및 재고, 소량 구매, 판매 및 재고 시스템은 이 방법을 사용할 수 있습니다)
그렇다면 두 개의 문자열 데이터 세트를 동일한 데이터와 비교하고 병합하는 방법은 무엇입니까?
먼저 두 개의 문자열 데이터 세트를 연결하고 결합합니다.
a3=a1&a2
그러면 a3=sp2=20;sp1=34;sp3=2;sp2=3;sp1=4;
둘째, a3에 동일한 데이터를 추가합니다.
여기서 주요 솔루션은 동일한 데이터를 찾는 방법입니다.
우선, 이제 a3은 sp2, sp1, sp3, sp2, sp1로 구성되어 있기 때문에 동일한 sp2와 sp1을 따로 찾아 값을 더해야 합니다.
분할 기능으로 분할하여 각 데이터 조각과 구분 기호 값을 가져옵니다.
즉, s_array = Split(a3,;) for i = 0 to ubound(s_array) 루프를 통해 개별 데이터와 값을 얻을 수 있습니다.
각 항목의 형식은 sp2=20과 유사하며, 동일한 그룹의 데이터와 비교하려면 Sp2를 추출해야 하므로 추출을 위해서는 독립적인 함수가 필요합니다.
함수 getSPName(sp)
getSPName = 분할(sp,=)(0)
기능 종료
함수 getSPNum(sp)
getSPNum = 분할(sp,=)(1)
함수 종료
= 앞의 데이터 이름과 = 뒤의 데이터 값을 각각 가져옵니다.
둘째, 데이터의 각 조각을 분해하는 방법, 즉 동일한 데이터 이름을 찾는 방법이다.
먼저 a3 배열의 첫 번째 요소를 추출하고 첫 번째 요소를 나누기 전의 데이터와 비교하여 동일하면 추가하는 과정을 가정합니다.
s_array = 분할(a3,;)
i = 0에서 ubound(s_array)까지
j=i+1에서 ubound(s_array)까지
getSPName(s_array(i)) = getSPName(s_array(j))인 경우
숫자 = 숫자 + Cint(getSPNum(s_array(j)))
종료하면
다음
다음
최종 값을 얻었으며 언제든지 새로운 동적 배열에 값을 할당하여 최종 결합 데이터 배열을 형성할 수 있습니다.
redim 보존 결과(p)
result(p) = getSPName(s_array(i)) & = & 숫자
지금 바로
s_array = 분할(a3,;)
i = 0에서 ubound(s_array)까지
j=i+1에서 ubound(s_array)까지
getSPName(s_array(i)) = getSPName(s_array(j))인 경우
숫자 = 숫자 + Cint(getSPNum(s_array(j)))
종료하면
다음
redim 보존 결과(p)
result(p) = getSPName(s_array(i)) & = & 숫자
p=p+1
다음
이는 다음과 같은 상황에 직면하게 됩니다: a3 배열의 후속 요소가 항상 이전과 비교된 동일한 요소로 작동될 때 이 요소는 result(p) 내의 i = 0에서 ubound(s_array)에 포함될 수 없습니다. = getSPName(s_array(i)) & = & 동적 배열을 숫자로 표시합니다.
이미 비교한 요소를 더 이상 비교하지 않는 문제를 해결하는 방법
예를 들어 a3 배열(a3=sp2=20;sp1=34;sp3=2;sp2=3;sp1=4;)에서 sp2=20을 빼낸 후 비교한 요소를 표시해야 합니다. 연산은 A sp2=3이 되며 이때 sp2=3의 배열 요소 번호는 비교 연산 후에 표시되며 이 요소는 다음 루프 비교에서 계산되지 않습니다.
s_array = 분할(a3,;)
i = 0에서 ubound(s_array)까지
j=i+1에서 ubound(s_array)까지
getSPName(s_array(i)) = getSPName(s_array(j))인 경우
숫자 = 숫자 + Cint(getSPNum(s_array(j)))
종료하면
redim 보존 ID(q)
ID(q) = j
q = q + 1
다음
redim 보존 결과(p)
result(p) = getSPName(s_array(i)) & = & 숫자
p=p+1
다음
ID(q)=j의 정의는 현재 동일한 요소를 표시하고 이를 동적 배열 id(q)에 할당하는 것입니다. q는 기본적으로 0으로 정의되고 q=q+1이 다시 반복됩니다.
그런 다음 이 표시를 사용하여 선택적으로 비교하고 누적하도록 선택할 수 있습니다.
기능 정의
functionIsInID(j)
딤스
IsInID = 거짓
ID의 각 x에 대해
x = j이면
IsInID = 참
종료 기능
다음과 같은 경우 종료
다음
함수 종료
주요 기능은
함수 mainhb
s_array = 분할(들,;)
i = 0에서 ubound(s_array)까지
IsInID(i)가 아니면
숫자 = getSPNum(s_array(i))
j=i+1에서 ubound(s_array)까지
getSPName(s_array(i)) = getSPName(s_array(j))인 경우
숫자 = 숫자 + Cint(getSPNum(s_array(j)))
redim 보존 ID(q)
ID(q) = j
q = q + 1
종료하면
다음
redim 보존 결과(p)
result(p) = getSPName(s_array(i)) & = & 숫자
p = p + 1
종료하면
다음
결과의 각 x에 대해
메인hb=메인hb&x&;
다음
함수 종료
전반적인 기능은
<%
희미한 결과()
희미한 ID()
희미한 p, q, 숫자
p=0
q= 0
숫자 = 0
redim 보존 ID(q)
ID(q) =
s = sp4=33;sp2=20;sp1=34;sp3=2;sp2=3;sp4=4;
s = 왼쪽(s,len(s)-1)
response.write mainhb(들)
함수 mainhb
s_array = 분할(들,;)
i = 0에서 ubound(s_array)까지
IsInID(i)가 아니면
숫자 = getSPNum(s_array(i))
j=i+1에서 ubound(s_array)까지
getSPName(s_array(i)) = getSPName(s_array(j))인 경우
숫자 = 숫자 + Cint(getSPNum(s_array(j)))
redim 보존 ID(q)
ID(q) = j
q = q + 1
종료하면
다음
redim 보존 결과(p)
result(p) = getSPName(s_array(i)) & = & 숫자
p = p + 1
종료하면
'숫자 = 0
다음
결과의 각 x에 대해
메인hb=메인hb&x&;
다음
함수 종료
함수 getSPName(sp)
getSPName = 분할(sp,=)(0)
기능 종료
함수 getSPNum(sp)
getSPNum = 분할(sp,=)(1)
함수 종료
functionIsInID(j)
딤스
IsInID = 거짓
ID의 각 x에 대해
x = j이면
IsInID = 참
종료 기능
다음과 같은 경우 종료
다음
함수 종료
%>