Zwei Arrays in einen rein ???

devStorm

Erfahrenes Mitglied
moin

und ich nochmal.

ist es möglich zwei array die mit informationen gefühlt sind in einen array rein zu kopieren ? wenn ja wie geht es ? kann einer ein quellcode schnipsel hier posten ?

danke

andrej
 
Erstmal könntest Du mit ReDim das erste Array vergrössern und dann mit einer Schleife den Inhalt von dem zweiten Array hinten dran kopieren.
Allerdings bin ich nicht absolut sicher, ob das Array seine Inhalte behält, wenn Du das neu dimensionierst.

Ansonsten solltest Du Dir einfach mal ein Collection- oder Dictionary-Objekt in der Hilfe ansehen. Das ist sowas ähnliches wie ein Array, nur dass man damit etwas flexibler arbeiten kann als mit normalen Arrays.
 
Allerdings bin ich nicht absolut sicher, ob das Array seine Inhalte behält, wenn Du das neu dimensionierst.

Wenn du dich für diese Variante entscheidest, musst du das Array wie folg neu dimensionieren:
Code:
ReDim Preserve Array (1 to 100)

Durch das Preserve wird das Feld nicht gelöscht was bei einem einfachen ReDim der Fall wäre!
 
ReDim funzt aber glaub ich nur, wenn du dein Array auch dynamisch deklariert hast, also nicht:
Dim array(1 to 10) as Integer
sondern:
Dim array() as Integer

mfg Grimreaper
 
moin, jo das array ist dinamisch eingerichtet worden.

folgendes problem. ich habe die ersten vier zeilen aus einer txt datei ausgelesen und die werte in einem Array() abgespeichert.

nun möchte ich eine funktion schreiben, in der die werte gecastet werden.

ich habe das bisher so gemacht, aber das klapp leider nicht. wer hätte einen tipp ?

Code:
'Funktionsaufruf
RefCasten = Casten(1, CVar(RefDatArray))

Code:
'Die Funktion selbst
Public Function Casten(Start As Long, DatArray As Variant) As Double()

Dim Wert As String
Dim i As Long
Dim Out() As Double
ReDim Out(UBound(DatArray) + i + 1)

For i = Start To UBound(DatArray) - Start + 2
  Wert = Replace(DatArray(i - Start), ".", ",")
  Wert = Trim(Wert)
  Out(i + Start) = CDbl(Wert)
Next i

Casten = Out

End Function

Die Gecasteten Werte sollten weiterhin in ein Array abgelegt werden, zur weiteren Bearbeitung.

Danke für die Antworten.

Andrej
 
Zuletzt bearbeitet:
Vielleicht wärs einfacher die daten mit copymemory zu kopieren anstatt sie alle einzeln zu verdoppeln


Code:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
 
Mensch schau doch mal das Datum an. Das ist schon seit über ein Jahr her. Sicher kann man das machen, aber es geht auch anders, wesentlich effiktivier.

Aber danke für die Antwort.
 
Zurück