Autor Thema: Array vergleichen  (Gelesen 1881 mal)

Offline skywook

  • Senior Mitglied
  • ****
  • Beiträge: 445
  • Ich liebe dieses Forum!
Array vergleichen
« am: 01.10.14 - 08:45:50 »
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
.....

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Array vergleichen
« Antwort #1 am: 01.10.14 - 08:50:49 »
Moin
AFAIK  bleibt da nichts anderes als zu loopen..
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Matze84

  • Gast

Offline Valron

  • Frischling
  • *
  • Beiträge: 4
  • Geschlecht: Männlich
Re: Array vergleichen
« Antwort #3 am: 01.10.14 - 11:38:07 »
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

Gruß,
Rich
« Letzte Änderung: 01.10.14 - 11:41:12 von Valron »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz