Autor Thema: Textlisten vergleichen  (Gelesen 1579 mal)

Offline tabama

  • Aktives Mitglied
  • ***
  • Beiträge: 233
  • Geschlecht: Männlich
  • hier werden Sie geholfen
Textlisten vergleichen
« 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

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: Textlisten vergleichen
« Antwort #1 am: 28.10.05 - 12:46:22 »
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
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: Textlisten vergleichen
« Antwort #2 am: 28.10.05 - 12:49:23 »
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 ))
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline tabama

  • Aktives Mitglied
  • ***
  • Beiträge: 233
  • Geschlecht: Männlich
  • hier werden Sie geholfen
Re: Textlisten vergleichen
« Antwort #3 am: 28.10.05 - 14:15:48 »
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.

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: Textlisten vergleichen
« Antwort #4 am: 28.10.05 - 14:19:17 »
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.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz