Autor
|
Thema: Zeiger auf Tabelle (1754 mal gelesen)
|
kleinUNDhilflos Mitglied
Beiträge: 71 Registriert: 31.07.2007
|
erstellt am: 06. Dez. 2007 11:53 <-- editieren / zitieren --> Unities abgeben:
Hallo, so wie ich das verstanden hab ist
Code: is tmpTable:table; do ...
so eine Variable vom Typ table nur ein Zeiger der standardmäßig auf VOID zeigt.Das wenn ich da drin was speichern will erst Code: tmpTable.create;
machen muss erscheint dann ja auch alles sinnig.Nun möchte ich aber die Variable als Zeiger benutzen: ich hab eine Subtabelle und weise die nun meinem Zeiger zu:
Code: tmpTable := Tabelle["0815",2][2,5]["test",4][1,1];
nun spuckt mir der Debugger ein Fehler aus: "Unbekannter Name setze" wenn ich
Code: tmpTable.setzeName("HalloWelt");
eingebe... ich glaube irgendwas ganz grundsätzliches hab ich da noch nicht verstanden.... weil
Code: Tabelle["0815",2][2,5]["test",4][1,1].setzeName("HalloWelt");
ja funktioniert...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 06. Dez. 2007 12:51 <-- editieren / zitieren --> Unities abgeben: Nur für kleinUNDhilflos
So wie ich das verstanden habe erzeugst du eine temporäre Tabelle (eine Tabelle die nach einem reset gelöscht wird) und keinen Zeiger. Dein Befehl tmpTable := Tabelle["0815",2][2,5]["test",4][1,1]; kopiert nur den Inhalt von Tabelle["0815",2][2,5]["test",4][1,1] in die temporäre Tabelle tmpTable. Versuch mal is tmpTabele:Object; do end; und lass tmptable.create; weg Wenn ich falsch liege, Asche über mein Haupt MFG Patrick
[Diese Nachricht wurde von pom am 06. Dez. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kleinUNDhilflos Mitglied
Beiträge: 71 Registriert: 31.07.2007
|
erstellt am: 06. Dez. 2007 15:03 <-- editieren / zitieren --> Unities abgeben:
hm... ich hatte das schon mal mit Code: tmpTable:Object;
versucht.... da hatte ich nen fehler... habs jetzt nochmal versuch..... klappt wunderbar...*kopfkratz*....DANKE [Diese Nachricht wurde von kleinUNDhilflos am 06. Dez. 2007 editiert.] [Diese Nachricht wurde von kleinUNDhilflos am 06. Dez. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kleinUNDhilflos Mitglied
Beiträge: 71 Registriert: 31.07.2007
|
erstellt am: 06. Dez. 2007 15:14 <-- editieren / zitieren --> Unities abgeben:
|
pom Mitglied Dipl.-Ing. (FH)
Beiträge: 182 Registriert: 25.08.2006
|
erstellt am: 10. Dez. 2007 09:45 <-- editieren / zitieren --> Unities abgeben: Nur für kleinUNDhilflos
Du bist aber sicher das du auch eine Subtabelle und keine Zelle im String Format ansprichst oder? ICh hatte da auch nen bissel mit rum getest und ich bekomme die selbe Fehlermeldung wenn ich eine Zelle anspreche. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dst Mitglied
Beiträge: 23 Registriert: 11.12.2007 PlantSimulation 8.1 PlantSimulation 9.0 PlantSimulation 10.0
|
erstellt am: 11. Dez. 2007 11:58 <-- editieren / zitieren --> Unities abgeben: Nur für kleinUNDhilflos
So ganz verstehe ich Dein Problem nicht. Einer Objektvariablen kannst Du durchaus Subtabellen zuweisen und für Zugriffe auf die Tabelleninhalte verwenden. Vermutlich hat pom Recht, dass Du versehentlich eine Zelle im Stringformat in der Subtabelle zuweisen wolltest. dst
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kleinUNDhilflos Mitglied
Beiträge: 71 Registriert: 31.07.2007
|
erstellt am: 11. Dez. 2007 12:37 <-- editieren / zitieren --> Unities abgeben:
|
dst Mitglied
Beiträge: 23 Registriert: 11.12.2007 PlantSimulation 8.1 PlantSimulation 9.0 PlantSimulation 10.0
|
erstellt am: 11. Dez. 2007 13:57 <-- editieren / zitieren --> Unities abgeben: Nur für kleinUNDhilflos
|
kleinUNDhilflos Mitglied
Beiträge: 71 Registriert: 31.07.2007
|
erstellt am: 11. Dez. 2007 14:11 <-- editieren / zitieren --> Unities abgeben:
|
dst Mitglied
Beiträge: 23 Registriert: 11.12.2007 PlantSimulation 8.1 PlantSimulation 9.0 PlantSimulation 10.0
|
erstellt am: 11. Dez. 2007 14:51 <-- editieren / zitieren --> Unities abgeben: Nur für kleinUNDhilflos
hm, dann versuche mal folgendes: bei der Zuweisung der Tabelle zur Variable (Typ table), gehe von der Verschachtelungstiefe der Subtabellen 1 "Hierarchiestufe" höher, z.B. so is local tZeiger : table; do tZeiger := Tabelle1[1,1]; -- anstatt Tabelle1[1,1][1,1] bei Sub-Subtabelle Tabelle1[1,1][1,1].setzeName( "Name" ); -- direkter Zugriff tZeiger[1,1].setzeName( "Name" ); -- Zugriff über Variable end;
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |