Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-10-2005, 21:23   #1 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
Abfrage von mehrdimensionalem Array scheitert

Hallo zusammen,
folgendes Problem, bei dem ich nicht mehr weiter weiß:

Ich hab ein mehrdimensionales Array auf _root in der Variable "daten" angelegt. Innerhalb jedes einzelnen Arrays werden verschiedene Daten (Zahlen, Datum, Uhrzeit, String, etc.) jeweils in einem Element gespeichert und ein Element jedes Arrays beinhaltet eben wieder ein weiteres Array (ich denke, es wird klarer, wenn man sich unten, den Output anschaut).
Dieses mehrdimensionale Array möchte ich nun folgendermaßen abfragen:

ActionScript:
  1. //das 27ste Element des Arrays "daten" auslesen
  2. array01 = _root.daten[26];
  3.     trace("_root.daten[26] : "+_root.daten[26]);
  4. //das 4te Element des Arrays "array01" auslesen, welches ja das 27ste Element des Arrays "daten" ist
  5. array02 = array01[3];
  6.     trace("array01[3] : "+array01[3]);
  7. //das 1te Element des Arrays "array02" auslesen, welches ja das 4te....
  8. array03 = array02[0];
  9.     trace("array02[0] : "+array02[0]);
  10. //das 5te Element des Arrays "array03" auslesen, welches ja das 1te...
  11. array04 = array03[4];
  12.     trace("array03[4] : "+array03[4]);

Die "traces" liefern mir als output dann folgendes:

ActionScript:
  1. _root.daten[26] : 19/10/2005,21:39:33,21:40:20,sammel,A,5,6,Ententeich,21:39:50,21:40:04,0,4,4,1357,2,4,461,2,4,337,4,4,348,1,4,339,4,4,397,test,A,0.8,2,Ententeich,21:40:12,21:40:19,0,5,4,1054,4,4,517
  2. array01[3] : sammel,A,5,6,Ententeich,21:39:50,21:40:04,0,4,4,1357,2,4,461,2,4,337,4,4,348,1,4,339,4,4,397,test,A,0.8,2,Ententeich,21:40:12,21:40:19,0,5,4,1054,4,4,517
  3. array02[0] : sammel,A,5,6,Ententeich,21:39:50,21:40:04,0,4,4,1357,2,4,461,2,4,337,4,4,348,1,4,339,4,4,397
  4. array03[4] :

Dem aufmerksamen Leser wird aufgefallen sein, dass die Ausgabe überall funktioniert, bis auf das array03[4]. Eigentlich sollte man doch hier erwarten, dass das fünfte Element von array03, also "Ententeich" ausgegeben wird, oder?

Die Schachtelung des mehrdimensionalen Arrays will ich am Beispiel der Ausgabe für _root.daten nochmal verdeutlichen (die roten rechteckigen Klammern stehn in der Art und Weise nicht im Quelltext, sie dienen hier nur zur Verdeutlichung der Schachtelung des mehrdimensionalen Arrays) :

ActionScript:
  1. _root.daten[26] : [B][COLOR=Red][[/COLOR][/B]19/10/2005,21:39:33,21:40:20,[B][COLOR=Red][[/COLOR][/B][B][COLOR=Red][[/COLOR][/B]sammel,A,5,6,Ententeich,21:39:50,21:40:04,0,4,4,1357,2,4,461,2,4,337,4,4,348,1,4,339,4,4,397[B][COLOR=Red]][/COLOR][/B],[B][COLOR=Red][[/COLOR][/B]test,A,0.8,2,Ententeich,21:40:12,21:40:19,0,5,4,1054,4,4,517[B][COLOR=Red]][/COLOR][/B][B][COLOR=Red]][/COLOR][/B][B][COLOR=Red]][/COLOR][/B]

Wo könnte hier die Fehlerquelle liegen? Warum gibt er mir hier nicht das 5te Element des letzten Arrays aus?
Bin für jede Anregung dankbar.

Viele Grüßles
LeBensch

PS: Wen's interessiert: das ganze ist Bestandteil einer Offline-Kinderlernsoftware zur Förderung der Simultanerfassung von Anzahlen, die komplett mit Flash umgesetzt wird. Eingaben des Kindes werden protokolliert und in geschachtelten Arrays in einem SharedObject abgespeichert und sollen daraus natürlich auch wieder abgerufen werden können. Nur an dem Abrufen scheints jetzt zu haken
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!

Geändert von LeBensch (20-10-2005 um 09:07 Uhr)
LeBensch ist offline   Mit Zitat antworten
Alt 19-10-2005, 22:27   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
der computer macht keine fehler.
nur der mensch ist dazu intelligent genug.
du bist dir sicher, dass das komma da hin gehört?
397,][test
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 20-10-2005, 09:06   #3 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
Ne, das gehört da natürlich nicht hin, das war ein Schreibfehler. Aber das Ding mit den roten rechteckigen Klammern war ja nur zur ungefähren Verdeutlichung des Aufbaus des mehrdimensionalen Arrays und steht in der Art und Weise ja nirgends im Quellcode.
An dem liegts sicherlich nicht.
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch ist offline   Mit Zitat antworten
Alt 20-10-2005, 09:11   #4 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
Das Verrückte ist eben: ich kann auf jeder Stufe die einzelnen Elemente jedes Arrays abfragen, nur beim allerletzten geschachtelten Array funktioniert das nicht mehr
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch ist offline   Mit Zitat antworten
Alt 20-10-2005, 11:05   #5 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
das kann dann wohl nur an deinem mehrdim. array liegen.
so mal vereinfacht.

ActionScript:
  1. daten=new Array()
  2. daten= [["19/10/2005","21:39:33","21:40:20"],[["sammel","A",5,6,"Ententeich","21:39:50","21:40:04",0,4,4,13,57,2,4,461,2,4,337,4,4,348,1,4,339,4,4,397],["test","A",0,8,2,"Ententeich","21:40:12","21:40:19",0,5,4,10,54,4,4,517]]]
  3.  
  4. array1 = daten;
  5. trace("daten mehrdim.array :     "+array1);
  6.  
  7. array2 = array1[1];
  8. trace("mehrdim.array :       "+array2)
  9.  
  10. array3 = array2[0];
  11. trace("einfaches array:      "+array3)
  12.  
  13. vari = array3[4];
  14. trace("endvariable :         "+vari)
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 20-10-2005, 11:44   #6 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
Ich versteh trotzdem nicht, warum es bei jedem geschachtelten Array funktioniert, nur nicht bei dem letzten?
z.B. sind ja die ersten 3 Einträge meines array01 (Datum, Zeit, Zeit) normale Elemente des Arrays und das vierte Element ist wieder ein Array.

Also im Klartext:
ActionScript:
  1. array01[0] = "19/10/2005";
  2. array01[1] = "21:39:33";
  3. array01[2] = "21:40:20";
  4. array01[3] = [["sammel","A",5,6,"Ententeich","21:39:50","21:40:04",0,4,4,13,57,2,4,461,2,4,337,4,4,348,1,4,339,4,4,3  97],["test","A",0,8,2,"Ententeich","21:40:12","21:40:19",0,5,4,10,54,4,4,517]]

Ruf ich nun die einzelnen Elemente mit "trace" ab, wird mir auch genau das wieder angezeigt:
ActionScript:
  1. array01[0] : 19/10/2005
  2. array01[1] : 21:39:33
  3. array01[2] : 21:40:20
  4. array01[3] : sammel,A,5,6,Ententeich,21:39:50,21:40:04,0,4,4,13,57,2,4,461,2,4,337,4,4,348,1,4,339,4,4,3  97,test,A,0,8,2,Ententeich,21:40:12,21:40:19,0,5,4,10,54,4,4,517
(die komischen Leerzeichen an ein paar Stellen fügt übrigens das Forum hinzu, die sind net von mir)

Beim nächsten Unterarray (array02), das ja wiederum aus einzelnen "normalen" Elementwerten und einem Unterarray besteht, funktioniert es genauso. Nur beim allerletzten Unterarray, welches dann nur noch aus einzelnen Elementwerten und keinem weiteren Unterarray mehr besteht, da funktioniert es nicht mehr
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch ist offline   Mit Zitat antworten
Alt 20-10-2005, 11:59   #7 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Habe dein Beispiel aus post1 mal übernommen und das funktioniert.
PHP-Code:
_root.daten = ["19/10/2005""21:39:33""21:40:20", [ [ "sammel""A"56"Ententeich""21:39:50""21:40:04"04413572446124337443481433944397 ], [ "test""A"0.82"Ententeich""21:40:12""21:40:19"054105444517 ]]];

var 
array01 _root.daten;
trace"_root.daten[26] : " _root.daten );

var 
array02 array01[3];
trace"array01[3] : " array01[3] );

var 
array03 array02[0];
trace"array02[0] : " array02[0] );

var 
array04 array03[4];
trace"array03[4] : " array03[4] ); 
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 20-10-2005, 12:11   #8 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
Krassomia!!
Warum geht das bei dir, aber bei mir nicht?
Hm...ok...aber das hilft mir insofern auch, als dass ich nun weiß, dass das mehrdimensionale Array ja wohl doch funktionieren muss, so wie ich das angelegt habe, und dass der Fehler irgendwo anders steckt...hm...
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch ist offline   Mit Zitat antworten
Alt 20-10-2005, 12:15   #9 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Mach doch mal ne neue fla auf, kopier's ins erste Frame und guck dir die Ausgabe mal an, muss doch bei dir gehen.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 03:39 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele