Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-09-2006, 18:43   #1 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
array splitten geht nicht...

hallo zusammen,

ich möchte einen string splitten und in ein array wandeln, damit ich auf die einzelnen einträge zugreifen kann... irgendwie klappte das aber nicht...

ich verwende folgendes scriptchen:
Code:
    var cat_str:String = catD_array[0];
    var cat_array:Array = cat_str.split(",");
    
    for (var h = 0; h<cat_array.length; h++) {
        trace(cat_array[h]);
    }
"catD_array" ergibt beim trace diese Zahlenfolge: 1,0,0,1,0,1,1,0

da möchte ich nun einzeln drauf zugreifen können (sind quasi verschiedene "an" und "aus" zustände) und dann müsste ich das noch addieren (also das in diesem beispiel "4" rauskomme), aber das ist eine andere geschichte...

habe ich nun an dem prinzip string -> split -> array was falsch verstanden, oder is da irgendein anderer fehler drin?

vielen dank schon mal,

gruß
tom
modul47 ist offline   Mit Zitat antworten
Alt 11-09-2006, 18:53   #2 (permalink)
licence to chill
 
Benutzerbild von nic-man
 
Registriert seit: Sep 2005
Ort: B*A*S*E*L
Beiträge: 290
was ist den genau das Problem dabei?
wie sieht der Ursprungs-String aus und was sollte er anstatt "1,0,0,1,0,1,1,0" ausgeben?

ansonsten ist der Code mit dem split(",") schon richtig...
nic-man ist offline   Mit Zitat antworten
Alt 11-09-2006, 19:00   #3 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Wenn "catD_array" ein eindimensionales Array mit Zahlen ist dann hat "cat_str" auch nur als Inhalt eine Zahl.
Und wenn du einen String der nur aus einem Zeichen besteht in ein Array umwandelst hat dieses nunmal nur ein Element.


Irgendwie verstehe ich auch nicht das Problem so ganz...
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 11-09-2006, 19:17   #4 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
hm, danke erstmal...

vielleicht braucht das ganze auch einen anderen lösungsweg.

ich erklär mal den ablauf:

ich lese aus einem xml einen knoten aus der so aussieht:
<cats>1,0,0,0,1,1,1,1</cats>

den möchte ich nun eigentlich nur zusammenzählen, also das ich als ergebnis "5" bekomme und ich möchte jede einzelne stelle, z.b. den dritten wert ("0") auslesen, damit ich den an einen funktion übergeben kann, die dann 0 oder 1 wie true oder false behandelt...
klingt eigentlich ganz einfach, dacht ich mir am anfang, aber irgendwie find ich keine gute lösung...
mein ansatz war, aus dieser zahlenkette ein array zu machen damit ich einfach über z.b. [2] auf den 3. wert zugreifen kann...


danke,
tom
modul47 ist offline   Mit Zitat antworten
Alt 11-09-2006, 19:37   #5 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Könnte man so angehen...
PHP-Code:
var xmlDocXML = new XML();
xmlDoc.ignoreWhite true
xmlDoc.load"cats.xml" ); 

xmlDoc.onLoad = function( successBoolean ) : Void

    if( 
success )
    {
        
tracethis.firstChild.childNodes[0] );
        
        var 
catsStrString Stringthis.firstChild.childNodes[0] );
        var 
catsArr: Array = catsStr.split"," );
        
        
traceBoolArraycatsArr );
    }
}

function 
traceBoolArrayboolArray: Array ): Void
{
    for( var 
iNumber 0boolArray.lengthi++ )
    {
        
traceBooleanNumber(boolArray]) ) );
    }

Die XML Datei besteht in dem Beispiel nur aus der Zeile:
PHP-Code:
<cats>1,0,0,0,1,1,1,1</cats
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 11-09-2006, 20:02   #6 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
perfekt!

hier ist die finale lösung mit addition der werte:

Code:
var xmlDoc: XML = new XML();
xmlDoc.ignoreWhite = true; 
xmlDoc.load("cats.xml"); 

xmlDoc.onLoad = function( success: Boolean ) : Void
{ 
    if( success )
    {
        var catsStr: String = String( this.childNodes[0].childNodes[0].childNodes[0].childNodes );
        var catsArr: Array = catsStr.split( "," );
        traceBoolArray(catsArr);
    }
}

function traceBoolArray( boolArray: Array ): Void
{
    for( var i: Number = 0; i < boolArray.length; i++ )
    {
        trace("bol: "+ Boolean( Number(boolArray[ i ]) ) );
    }
    tempAr = boolArray;
    erg = 0;
    for (i=0; i<tempAr.length; i++)
	erg += Number(tempAr[i]);
	trace ("erg: "+erg);
}
danke, tom
modul47 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 12:04 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele