Seite 1 von 1

Redim bei eigenem Variablentyp

Verfasst: Sa, 25.10.2014 23:01
von Dreh-Gel
Moinsen, nochne Noob-Frage:

Ich hab ein Array definiert und anschließend mit Redim die Grenzen geändert. Hat sich so verhalten, wie in der Anleitung. Das Array war gelöscht und hatte mehr Elemente.

Dann hab ich mir einen Typ definiert und davon ebenfalls ein Array. Das ließ sich aber nicht re-dimen.


Type tName
sN1 as String
sN2 as String
End Type

Sub Main

Dim sTN(2) as tName
Dim sN(2) as String

sN(1) = "1"
Redim sN(4)
sN(4) = "3"
sTN(1).sN1="4"
Redim sTN(4)
sTN(1).sN2 = "4"
sTN(4).sN1 = "3"

End Sub

Nach der Zeile Redim sTN(4) hat das Array immer noch nur drei Elemente (sieht man im Beobachter im IDE) und sTN(4).sN1 führt zu einem Fehler.

Ist das ein Bug, hab ich was falsch gemacht?

Re: Redim bei eigenem Variablentyp

Verfasst: Sa, 25.10.2014 23:59
von F3K Total
Hi,
du hast Recht, REDIM zerschießt die Variable.
Dies geht, aber der Inhalt bleibt bestehen

Code: Alles auswählen

Type tName
    sN1 as String
    sN2 as String
End Type

Sub Main
    Dim sTN(0) as tName
    sTN(0).sN1="12"
    sTN(0).sN2="22"
    Redim preserve sTN(1)
    sTN(1).sN1 = "3"
    sTN(1).sN2 = "4"
    for i = 0 to 1
        print sTN(i).sN1 & " " & sTN(i).sN2
    next i
End Sub
Gruß R

Re: Redim bei eigenem Variablentyp

Verfasst: So, 26.10.2014 00:36
von Dreh-Gel
Vielen Dank. Die Lösung mit preserve war einfacher als gedacht.