Redim bei eigenem Variablentyp

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Dreh-Gel
**
Beiträge: 28
Registriert: Sa, 25.10.2014 16:58

Redim bei eigenem Variablentyp

Beitrag 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?
Win7, AOO 4.1.1
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Redim bei eigenem Variablentyp

Beitrag 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
Dreh-Gel
**
Beiträge: 28
Registriert: Sa, 25.10.2014 16:58

Re: Redim bei eigenem Variablentyp

Beitrag von Dreh-Gel »

Vielen Dank. Die Lösung mit preserve war einfacher als gedacht.
Win7, AOO 4.1.1
Antworten