Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-05-2005, 20:05   #1 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
[Stuff] String zerlegt ins Array packen (textToArray)

Habe hier nen proto der einen Text in ein Array schreibt.
Erster Parameter, welcher Text und 2ter Parameter, an welcher Stelle der Text geteilt werden soll.
PHP-Code:
Array.prototype.textToArray = function( strchar){
    var 
str.splitchar ).length;
    while( 
a-- ) this.pushstr.splitchar )[a] );
    
this.reverse();
    return 
this;
}


// Test:
var meinString "Also ich hab grad eine Idee."
var = new Array();
traceb.textToArraymeinString' ' ) ); 
Und ein bisschen abgewandelt kann man das auch missbrauchen um die Anzahl der Wörter zu zählen (zumindest wenn es ein einfacher Text ist).
PHP-Code:
var meinString "Also ich hab grad eine Idee, für meinen neuen prototypen."
var = new Array();
traceb.textToArraymeinString' ' ).length ); 
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 11-05-2005, 20:21   #2 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
hmm. sehe den sinn darin nicht so ganz..

String.split( char ); gibt doch schon nen Array zurück!? wofür nen Prototype?

und außerdem wäre es viel weniger ressourcenlastig, wenn du beim pushen nicht den array neu mittels split generierst.

ActionScript:
  1. Array.prototype.textToArray = function( str, char)
  2. {
  3. var aPush:Array = str.split( char );
  4. var i:Number = aPush.length;
  5. aPush.reverse();
  6. while( i-- ) this.push( aPush[i] );
  7. }
  8.  
  9. // oder einfach über:
  10. var meinString:String = 'Mein String';
  11. var meinArray:Array = new Array();
  12. meinArray = meinArray.concat( meinString.split( ' ' ) );
  13.  
  14. // oder wenn das array vorher leer war:
  15. var myArray:Array = meinString.split( ' ' );

oder seh ich irgendwas falsch?

// edit:
dein Proto ( bzw. der von mir optimierte ) braucht beim selben String etwa 3 mal so lang, wie concat und 6mal so lang wie einfach nur mit split (also neuer array)

// edit:

einfach mal selber testen:

ActionScript:
  1. // redners proto
  2. Array.prototype.textToArray = function( str, char){
  3.     var a = str.split( char ).length;
  4.     while( a-- ) this.push( str.split( char )[a] );
  5.     this.reverse();
  6.     return this;
  7. }
  8. // redners proto von mir verbessert
  9. Array.prototype.textToArr = function( str, char)
  10. {
  11.     var aPush:Array = str.split( char );
  12.     var i:Number = aPush.length;
  13.     aPush.reverse();
  14.     while( i-- ) this.push( aPush[i] );
  15. }
  16.  
  17. var str:String = 'Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. Das hier ist ein Beispiel String. ';
  18.  
  19. // redners proto
  20. var nStart1:Number = getTimer();
  21. var arr1:Array = new Array();
  22. arr1.textToArray( str, ' ' );
  23. trace( 'time: ' + ( getTimer() - nStart1 ) );
  24.  
  25. // redners proto optimiert von pokepika
  26. var nStart2:Number = getTimer();
  27. var arr2:Array = new Array();
  28. arr2.textToArr( str, ' ' );
  29. trace( 'time: ' + ( getTimer() - nStart2 ) );
  30.  
  31. // concat Methode
  32. var nStart3:Number = getTimer();
  33. var arr3:Array = new Array();
  34. arr3 = arr3.concat( str.split( ' ' ) );
  35. trace( 'time: ' + ( getTimer() - nStart3 ) );
  36.  
  37. // neuer Array
  38. var nStart4:Number = getTimer();
  39. var arr4Array = str.split( ' ' );
  40. trace( 'time: ' + ( getTimer() - nStart4 ) );

Ausgabe bei mir:

Code:
time: 1389
time: 10
time: 5
time: 4
Überzeugendes Argument oder?

Geändert von pokepika (11-05-2005 um 20:41 Uhr)
pokepika ist offline   Mit Zitat antworten
Alt 11-05-2005, 21:47   #3 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Das ist ja toll .
Mensch da hab ichs wieder zu umständlich gemacht, umständlicher gehts ja schon echt nicht mehr!

Tolle Lösung!
__________________
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 18:40 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele