Domino 9 und frühere Versionen > ND8: Entwicklung

Array vergleichen

(1/1)

skywook:
Hallo,

ich möchte zwei Arrays vom gleichen Typ vergleichen.

Muss ich das über eine Forall-Schleife tun oder reicht einfach:

if arrayA <> arrayB then
arrayflag = true
.....

umi:
Moin
AFAIK  bleibt da nichts anderes als zu loopen..

Matze84:
Moin!

bin beim googlen auf Anhieb auf 2 Möglichkeiten gestoßen

http://www-10.lotus.com/ldd/46dom.nsf/869c7412fe5d56b7852569fa007826e3/7a2521a07c11cc3585256587003d1694?OpenDocument

http://www.eknori.de/2007-12-26/compare-two-arrays/


Gruß

Matze

Valron:
Hallo skywook,

wann ist der Array bei dir gleich?

Ist...

array(0) = "Hallo"
array(1) = "Welt"

das selbe wie...

array(0) = "Welt"
array(1) = "Hallo"

... oder sollte es in diesem Fall bereits als ungleich erkannt werden?
(In dem Fall die Sortierung im folgenden Beispiel weglassen)


Denn du könntest auch deine Array sortieren. (Dazu benutze ich QuickSort:
http://www-10.lotus.com/ldd/nd6forum.nsf/d6091795dfaa5b1185256a7a0048a2d0/9b89f11cf339501585257c9100477180?OpenDocument )

Nachdem deine Arrays sortiert sind, kannst du mit Hilfe von Implode die
gelieferten Strings miteinander vergleichen.


Hier ein Beispiel:

--- Code: ---Private Function bArraysAreEqual(asArray1 As Variant, asArray2 As Variant, iCompMethod As Integer) As Boolean

Dim sArrayString1 As String
Dim sArrayString2 As String

If IsArray(asArray1) And IsArray(asArray2) Then
'//Array sortieren
Call QuickSort(LBound(asArray1), UBound(asArray1), asArray1)
Call QuickSort(LBound(asArray2), UBound(asArray2), asArray2)

'//Erzeugen eines Strings welcher verglichen werden kann.
sArrayString1 = Implode(asArray1)
sArrayString2 = Implode(asArray2)

'//Vergleichen der Strings
If StrCompare(sArrayString1, sArrayString2, iCompMethod) = 0 Then
bArraysAreEqual = True
End If
End If

End Function
--- Ende Code ---

Gruß,
Rich

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln