53 lines
1.2 KiB
Plaintext
53 lines
1.2 KiB
Plaintext
function consolidate$(s$)
|
|
dim sets$(100)
|
|
n = 0
|
|
for i = 1 to len(s$)
|
|
if mid$(s$, i, 1) = "," then
|
|
n = n + 1
|
|
else
|
|
sets$(n) = sets$(n) + mid$(s$, i, 1)
|
|
end if
|
|
next i
|
|
|
|
for i = 0 to n
|
|
p = i
|
|
ts$ = ""
|
|
for j = i to 0 step -1
|
|
if ts$ = "" then p = j
|
|
ts$ = ""
|
|
for k = 1 to len(sets$(p))
|
|
if j > 0 then
|
|
if instr(sets$(j-1), mid$(sets$(p), k, 1)) = 0 then
|
|
ts$ = ts$ + mid$(sets$(p), k, 1)
|
|
end if
|
|
end if
|
|
next k
|
|
if len(ts$) < len(sets$(p)) then
|
|
if j > 0 then
|
|
sets$(j-1) = sets$(j-1) + ts$
|
|
sets$(p) = "-"
|
|
ts$ = ""
|
|
end if
|
|
else
|
|
p = i
|
|
end if
|
|
next j
|
|
next i
|
|
|
|
temp$ = sets$(0)
|
|
for i = 1 to n
|
|
temp$ = temp$ + "," + sets$(i)
|
|
next i
|
|
|
|
consolidate$ = s$ + " = " + temp$
|
|
end function
|
|
|
|
dim test$(3)
|
|
test$(0) = "AB"
|
|
test$(1) = "AB,CD"
|
|
test$(2) = "AB,CD,DB"
|
|
test$(3) = "HIK,AB,CD,DB,FGH"
|
|
for t = 0 to 3
|
|
print consolidate$(test$(t))
|
|
next t
|