Domino 9 und frühere Versionen > Entwicklung
Textlisten vergleichen
(1/1)
tabama:
Hallo,
probier jetzt schon Stunden an einem Problem rum und komme nicht weiter.
Ich habe zwei Textlisten und möchte eine Dritte, welche Werte der Liste 1 enthällt, die aber nicht in Liste 2 sind
Beispiel:
Liste 1 = "Montag":"Dienstag":"Mittwoch":"Donnerstag"
Liste 2 = "Dienstag":"Mittwoch"
Ergebnis: "Montag":"Donnerstag"
Am liebsten wäre mir das Ganze als Script, nicht als @
Geht das evtl. mit "permuted"? Finde dazu aber keine (für mich verständliche) Erläuterung
Gandhi:
Function schnittmenge(a as variant, b as variant) as variant
dim c as variant
c(0)=""
dim i as integer
dim p as integer
dim contained as variant
for i=0 to UBound(a)
contained=false
for p=0 to UBound(b)
if b(p)=a(i) then
contained=true
exit for
end if
next 'p
if not contained then
c=arrayappend(c, cvar(a(i)))
end if
next 'i
schnittmenge=fulltrim(c) 'hiermit wird der Leereintrag entfernt
end function
Gandhi:
Oder noch viel einfacher
dim c (Ubound(b)) as string
for i=0 to Ubound(c)
c(i)=""
next
schnittmenge=fulltrim(ArrayReplace( a, b, replaceArray ))
tabama:
Hallo,
weiß zwar noch nicht so ganz wie, aber es funktioniert (2.Variante)
Hatte zunächst Problem mit dem Ubound bei dim c. Habe das dann ganz einfach durch eine Zahl ersetzt. Danach habe ich mir überlegt für was c überhaupt gebraucht wird und keine Erklärung gefunden. Daraufhin habe ich es weggelassen und es geht auch
Also:
schnittmenge = FullTrim(ArrayReplace(a,b,ReplaceArray)) genügt.
Gandhi:
Mit Option declare müsstest Du es erst dimensionieren - daher die Zeilen.
Dass ArrayReplace so schmerzfrei ist und auch einen leeren Array nimmt - ist schön - damit hätte ich aber nicht gerechnet.
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln