Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: tabama am 28.10.05 - 12:33:00
-
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
-
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
-
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 ))
-
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.
-
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.