Verständnisfrage zu eigenen Objekte mit Unter-Objekten

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: Verständnisfrage zu eigenen Objekte mit Unter-Objekten

Re: Verständnisfrage zu eigenen Objekte mit Unter-Objekten

von saturus » Mo, 14.01.2013 14:12

Hallo und danke für die Hilfe,

ganz hat der Code nicht mein Problem erfasst, aber er hat mir sehr geholfen!

Code: Alles auswählen

REM  *****  BASIC  *****
Option Explicit

Type AdressenObject
	sAdresseArt as string
	sStrasse as string
	sHausnummer as string
	sPLZ as string
	sOrt as string
End Type

Type KontaktObject
	sVorname as string
	sNachname as string
	oAdressen as AdressenObject
End Type


sub Test_Object

    dim oKontakt() as KontaktObject
    dim newAdresse() as AdressenObject
        
	redim preserve oKontakt(0)
        
    oKontakt(0).sVorname = "Willy"
    oKontakt(0).sNachname = "Schmidt"

	redim preserve newAdresse(0)

    newAdresse(0).sAdresseArt = "privat"
    newAdresse(0).sStrasse = "Feldweg"
    newAdresse(0).sHausnummer = "12"
    newAdresse(0).sPLZ = "12345"
    newAdresse(0).sOrt = "Musterstadt"
	
	redim preserve newAdresse(1)

    newAdresse(1).sAdresseArt = "dienstlich"
	newAdresse(1).sStrasse = "Waldweg"
    newAdresse(1).sHausnummer = "11a"
    newAdresse(1).sPLZ = "99999"
    newAdresse(1).sOrt = "Sonstwo"

    oKontakt(0).oAdressen = newAdresse()

    msgbox oKontakt(0).sVorname & " " & oKontakt(0).sNachname & chr(13) &_
    	   oKontakt(0).oAdressen(0).sAdresseArt & ": " & oKontakt(0).oAdressen(0).sOrt & chr(13) &_
     	   oKontakt(0).oAdressen(1).sAdresseArt & ": " & oKontakt(0).oAdressen(1).sOrt & chr(13)
     	
	Rem Nächster Kontakt

	redim preserve oKontakt(1)
	
    oKontakt(1).sVorname = "Max"
    oKontakt(1).sNachname = "Mustermann"
  		
	Rem TempAdressenObjekt wieder auf NULL
	redim newAdresse() as AdressenObject
  		
	redim preserve newAdresse(0)

    newAdresse(0).sAdresseArt = "privat1"
    newAdresse(0).sStrasse = "Feldweg"
    newAdresse(0).sHausnummer = "12"
    newAdresse(0).sPLZ = "12345"
    newAdresse(0).sOrt = "Musterstadt1"
	
	redim preserve newAdresse(1)

    newAdresse(1).sAdresseArt = "privat2"
	newAdresse(1).sStrasse = "Waldweg"
    newAdresse(1).sHausnummer = "11a"
    newAdresse(1).sPLZ = "99999"
    newAdresse(1).sOrt = "Sonstwo1"
        
    oKontakt(1).oAdressen = newAdresse()
        
    msgbox oKontakt(1).sVorname & " " & oKontakt(1).sNachname & chr(13) &_
    	   oKontakt(1).oAdressen(0).sAdresseArt & ": " &  oKontakt(1).oAdressen(0).sOrt & chr(13) &_
     	   oKontakt(1).oAdressen(1).sAdresseArt & ": " & oKontakt(1).oAdressen(1).sOrt & chr(13)
end sub

Code: Alles auswählen

redim preserve  oKontakt(1).oAdressen(1)
Dieser Befehl ging leider nicht, aber durch die Verwendung des "TempObjektes" kann man auch ein Unterobjekt (neu-)dimmensionieren.

Re: Verständnisfrage zu eigenen Objekte mit Unter-Objekten

von F3K Total » Fr, 11.01.2013 18:54

Hi,
ich habe mal ein bisschen probiert, mit Xray oder Mri, bzw. dem Beobachter kann ich die Typen nicht sehen, die Msgbox geht, und das Redim Preserve wohl auch.

Code: Alles auswählen

Type AdressenObject
sStrasse as string
sHausnummer as string
sPLZ as string
sOrt as string
End Type

Type KontaktObject
sVorname as string
sNachname as string
oAdressen as AdressenObject
End Type


sub Test_Object

        dim newAdresse1 as AdressenObject
        newAdresse1.sStrasse = "Feldweg"
        newAdresse1.sHausnummer = "12"
        newAdresse1.sPLZ = "12345"
        newAdresse1.sOrt = "Guckst du hier wo"

        dim newAdresse2 as AdressenObject
        newAdresse2.sStrasse = "Waldweg"
        newAdresse2.sHausnummer = "11a"
        newAdresse2.sPLZ = "9999999"
        newAdresse2.sOrt = "Sonstwo"

        dim oKontakt(0) as KontaktObject
        oKontakt(0).sVorname = "Willy"
        oKontakt(0).sNachname = "Schmidt"
        oKontakt(0).oAdressen = newAdresse1

        redim preserve oKontakt(1)
        oKontakt(1).sVorname = "Erika"
        oKontakt(1).sNachname = "Schmidt"
        oKontakt(1).oAdressen = newAdresse1

        redim preserve oKontakt(2)
        oKontakt(2).sVorname = "Klaus"
        oKontakt(2).sNachname = "Meyer"
        oKontakt(2).oAdressen = newAdresse2

        redim preserve oKontakt(3)
        oKontakt(3).sVorname = "Gabriele"
        oKontakt(3).sNachname = "Meyer"
        oKontakt(3).oAdressen = newAdresse2

        redim preserve oKontakt(4)
        oKontakt(4).sVorname = "Fritzchen"
        oKontakt(4).sNachname = "Meyer"
        oKontakt(4).oAdressen = newAdresse2        
        
        currentcontact = oKontakt(3)
        currentcontact1 = oKontakt(1)
        currentadresse = currentcontact.oAdressen
        currentadresse1 = currentcontact1.oAdressen
        
        msgbox "1.) "+currentcontact.sVorname+" "+currentcontact.sNachname+" wohnt in "+currentadresse.sPLZ+_
               " "+currentadresse.sOrt+", "+currentadresse.sStrasse+" "+currentadresse.sHausnummer+chr(13)+_
               "2.) "+currentcontact1.sVorname+" "+currentcontact1.sNachname+" wohnt in "+currentadresse1.sPLZ+_
               " "+currentadresse1.sOrt+", "+currentadresse1.sStrasse+" "+currentadresse1.sHausnummer    
end sub
Gruß R

Re: Verständnisfrage zu eigenen Objekte mit Unter-Objekten

von saturus » Fr, 11.01.2013 09:06

Dankeschön für die schnelle Rückmeldung. Redim Preserve klappt leider nur in erster Ebene. In der zweiten Ebene kommt leider ein Fehler.

Ich vermute mal, dass ich eher eine Verständnisproblem mit eigenen Strucs habe, denn ich würde auf dieser Basis gerne noch komplexer Konstrucktionen anlegen und dann nur von einen Subroutine zur nächste weiterreichen.

Kann mir hier jemand helfen.
  • - Wie lege ich genau eigene Strucs, auch mit Ebenen, an?
    - Wie kann ich diese auch als Array benutzen?
    - Wie kann ich Elemente
Vielen Dank schon einmal im Voraus!

Re: Verständnisfrage zu eigenen Objekte mit Unter-Objekten

von juetho » Do, 10.01.2013 15:28

saturus hat geschrieben:Gibt es eine Möglichkeit, dass Object-Array einfach durch hinzufügen zu vergrößern?
Die Hilfe bietet die ReDim-Funktion mit dem Parameter Preserve an. Inwieweit das für das Unterobjekt möglich ist, musst du ausprobieren.

Gruß Jürgen

Verständnisfrage zu eigenen Objekte mit Unter-Objekten

von saturus » Do, 10.01.2013 13:51

Hallo,

ich habe das Problem, dass ich eine Textdatei mit n Namen auslesen möchte. Zu jedem Namen gibt es m Adressen. Ich hatte mir vorgestellt, dass Ergibnis in einen eigenen Objekt zu speichern.

Code: Alles auswählen

Type AdressenObject
sStrasse as string
sHausnummer as string
sPLZ as string
sOrt as string
End Type

Type KontaktObject
sVorname as string
sNachname as string
oAdressen() as AdressenObject
End Type

sub main
        dim oKontakt as Object
	oKontakt () = CreateObject("KontaktObject")
end sub
Soweit läuft es auch. Jetzt kann ich aber nicht vorher sagen, wie viele Kontakte es gibt und wie viele Adressen der jeweilige Kontakt hat. Gibt es eine Möglichkeit, dass Object-Array einfach durch hinzufügen zu vergrößern? Geht das auch für das Unterobjekt? Oder bin ich ganz auf dem falschen Weg?

Vielen Dank für die Unterstützung!

Nach oben