Array() duplizieren

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Array() duplizieren

Re: Array() duplizieren

von clag » Sa, 11.07.2015 17:55

Hallo komma4,

besten Dank für die schnelle und präzise Antwort,
und gleich noch eine Lösung mitgeliefert. "thumb up" :)

Re: Array() duplizieren

von komma4 » Sa, 11.07.2015 17:30

Steht bei Andrew (meine Ausgabe: 3.4.2. The unexpected behavior of arrays)
Andrew Pitonyak: OpenOffice.org Macros Explained, Third Edition hat geschrieben:Assigning one array variable to another makes a reference to the first array rather than copying the data. All changes made to either are automatically seen by the other. It doesn’t mater which one is changed; they are both affected.
Möchtest Du eine Kopie erstellen, dann übertrage die einzelnen Elemente des Arrays in das Ziel-Array

Code: Alles auswählen

REDIM bArray(UBOUND(aArray)) 

FOR i = LBOUND(aArray) TO UBOUND(aArray)
   bArray(i) = aArray(i)
NEXT

Array() duplizieren

von clag » Sa, 11.07.2015 16:17

Hallo Kenner und Könner,

bei dem Versuch ein Array() zu duplizieren, bin ich über etwas gestolpert, was ich nicht recht verstehe,
folgendes habe ich getan:

Code: Alles auswählen

sub test( mListe() ) 
	xListe() = mListe()
	msgbox join(xlist()," - ") & chr(10) & join(mList()," - ")
	... 
	xListe() manipulieren bzw sortieren 
	...
	msgbox join(xList()," - ") & chr(10) & join(mList()," - ")
end sub
die erste Messagebox zeigt mir zwei identische Zeichenfolgen an, das scheint auch erst einmal richtig zu sein.
die zweite Messagebox zeigt mir aber auch zwei identische, diesmal zwei manipulierte Zeichenfolgen an?

Daran scheitert ein vorher nacherher Vergleich natürlich massive!
Wieso wird die unberührte "mListe()" ebenfalls manipuliert dargestellt?

Code: Alles auswählen

 xListe() = mListe()
Erzeugt dieses nur einen zweiten Namen für das selbe Array?

Wenn ja, wie dupliziert man ein Array schnell und richtig?

Nach oben