Zurück   Flashforum > Flash > Stuff

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-05-2005, 16:04   #1 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.367
Post [stuff] string bzw. text --> bestimmte zeichen entfernen prototype

hola,
hab grad mal nen bissal gescripted. gibts mit sicherheit schon haufenweise, aber ich wollte das mal selber basteln. mit dem teil könnt ihr aus einem text bestimmte zeichen entfernen... aber seht selbst.

as einfach ins erste frame reinkopieren...

PHP-Code:
//-----------------------------------------------
//der test text

var deintext "*/||**********************/Lorem* ipsum /dolor //sit amet, </br>consectetuer |+ß+|+ß+| adipiscing elit. Suspendisse sem augue, aliquet pharetra, porttitor eget, **** sodales vitae, dolor. Maecenas interdum. Quisque in diam ut purus scelerisque placerat. Maecenas quam pede, semper non, pretium in, rhoncus vehicula, lectus. Donec eu neque. Quisque pellentesque lacus sit amet tellus. Fusce dapibus nulla in quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam convallis. Curabitur at erat."

//-----------------------------------------------
//der prototype

String.prototype.cleanstring = function(del){
    var 
arr this.split("");
    var 
0;
    var 
arr.length
    
var 0;
    var 
del.length;
    while(
a<b){
        
0;
        while(
i<j){
            if(
arr[a] == del[i]){
                
arr.splice(a--, 1);
            }
            
i++;
        }
        
a++;
    }
    return 
arr.join("");
}

//-----------------------------------------------
//aufgerufen kann der z.B. auf folgende weise
//["|","*","/","ß","+","<",">"] sind in diesem fall die zeichen die gelöscht werden sollen 

//aufruf um textfelder zu befüllen
test1.text deintext;
test2.text deintext.cleanstring(["|","*","/","ß","+","<",">"]);

//zum tracen und anzeigen obs funktioniert
trace(deintext);
trace(deintext.cleanstring(["|","*","/","ß","+","<",">"]));

//----------------------------------------------- 
was alles gelöscht werden soll wird einfach mit an den prototype übergeben. sieht man oben im as ja ziemlich deutlich.

wer es gebrauchen kann, dem wünsch ich viel spaß damit

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
salazar ist offline   Mit Zitat antworten
Alt 04-05-2005, 16:28   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
oder so:
ActionScript:
  1. String.prototype.delchars = function(dels) {
  2.     var i, c, txt = "";
  3.     for (i=0; i<this.length; i++) {
  4.         if (dels.indexOf(c=this.charAt(i)) == -1) {
  5.             txt += c;
  6.         }
  7.     }
  8.     return txt;
  9. };
  10. // test
  11. var deintext = "*/||**********************/Lorem* ipsum /dolor //sit amet, </br>consectetuer |+ß+|+ß+| adipiscing elit. Suspendisse sem augue, aliquet pharetra, porttitor eget, **** sodales vitae, dolor. Maecenas interdum. Quisque in diam ut purus scelerisque placerat. Maecenas quam pede, semper non, pretium in, rhoncus vehicula, lectus. Donec eu neque. Quisque pellentesque lacus sit amet tellus. Fusce dapibus nulla in quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam convallis. Curabitur at erat.";
  12. trace(deintext);
  13. trace(deintext.delchars("|*/ß+<>"));
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 04-05-2005, 16:38   #3 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.367
Thumbs up

find ich ne feine sache mit dem indexOf! schöne variante
cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
salazar ist offline   Mit Zitat antworten
Alt 04-05-2005, 17:20   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
mich hat mehr das da gestört:
arr.splice(a--, 1);
ist sehr zeitaufwendig.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 05-05-2005, 18:36   #5 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.367
Lightbulb



@hgseib: du hast absolut recht! das hat mich auch angenervt. zudem hab ich den string ja immer noch in ein array und wieder zurück gewandelt, was ja angesichts deiner herangehensweise auch etwas umständlich ist. also keine frage. deine lösung ist schon wesentlich besser nur hat mich die for schleife gestört. habe daher mal nen neuen prototype gescripted der auf deiner idee basiert aber mit einer while schleife arbeitet...

PHP-Code:
//-----------------------------------------------
//der test text

var deintext "*/||**********************/Lorem* $___%%%____$ipsum /dolor //sit amet, </br>consectetuer |+ß+|+ß+|adipiscing elit. Suspendisse sem augue, aliquet pharetra, porttitor eget, **** sodales vitae, dolor. Maecenas interdum. Quisque in diam ut purus scelerisque placerat. Maecenas quam pede, semper non, pretium in, rhoncus vehicula, lectus. Donec eu neque. Quisque pellentesque lacus sit amet tellus. Fusce dapibus nulla in quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam convallis. Curabitur at erat."

//-----------------------------------------------
//der prototype

String.prototype.cleanstring = function(del){
    var 
= -1;
    var 
this.length;
    var 
ctxt "";
    while(
a++<b){
        if(
del.indexOf(this.charAt(a)) == -1txt += c;
    }
    return 
txt;
}

//-----------------------------------------------
//aufgerufen kann der z.B. auf folgende weise
//("|*/ß+<>") sind in diesem fall die zeichen die gelöscht werden sollen

//aufruf um textfelder zu befüllen
test1.text deintext;
test2.text deintext.cleanstring("|*/ß+<>$_%");

//zum tracen und anzeigen obs funktioniert
trace(deintext);
trace(deintext.cleanstring("|*/ß+<>$_%"));

//----------------------------------------------- 
cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
salazar ist offline   Mit Zitat antworten
Alt 05-05-2005, 19:04   #6 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.367
Talking

mal nen kleiner speed test
man sieht sehr schön wie lahm mein erster prototype ist. deiner ist da echt fix. meiner ist genauso fix wenn nicht nen tick schneller wenn die textlänge steigt...

PHP-Code:
//-----------------------------------------------
//der test text

var deintext "*/||**********************/Lorem* $___%%%____$ipsum /dolor //sit amet, </br>consectetuer |+ß+|+ß+|adipiscing elit. Suspendisse sem augue, aliquet pharetra, porttitor eget, **** sodales vitae, dolor. Maecenas interdum. Quisque in diam ut purus scelerisque placerat. Maecenas quam pede, semper non, pretium in, rhoncus vehicula, lectus. Donec eu neque. Quisque pellentesque lacus sit amet tellus. Fusce dapibus nulla in quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam convallis. Curabitur at erat."

//-----------------------------------------------
//der neue prototype

String.prototype.clstring = function(del){
    var 
= -1;
    var 
this.length;
    var 
ctxt "";
    while(
a++<b){
        if(
del.indexOf(this.charAt(a)) == -1txt += c;
    }
    return 
txt;
}

//-----------------------------------------------
//hgseib prototype

String.prototype.delchars = function(dels) {
        var 
ictxt "";
        for (
i=0i<this.lengthi++) {
                if (
dels.indexOf(c=this.charAt(i)) == -1) {
                        
txt += c;
                }
        }
        return 
txt;
};

//-----------------------------------------------
//mein alter prototype

String.prototype.oldclstring = function(del){
    var 
arr this.split("");
    var 
0;
    var 
arr.length
    
var 0;
    var 
del.length;
    while(
a<b){
        
0;
        while(
i<j){
            if(
arr[a] == del[i]){
                
arr.splice(a--, 1);
            }
            
i++;
        }
        
a++;
    }
    return 
arr.join("");
}

//-----------------------------------------------
//Speed Tests

getTimer(); 
trace(deintext.clstring("*|/ß+<>$_%"));
trace(getTimer()-t);

getTimer();
trace(deintext.delchars("*|/ß+<>$_%"));
trace(getTimer()-t);

getTimer();
trace(deintext.oldclstring(["*","|","/","ß","+","<",">","$","_","%"]));
trace(getTimer()-t);

//-----------------------------------------------

//aufgerufen kann der z.B. auf folgende weise
//("*|/ß+<>$_%") sind in diesem fall die zeichen die gelöscht werden sollen

//aufruf um textfelder zu befüllen
test1.text deintext;
test2.text deintext.cleanstring("*|/ß+<>$_%");

//zum tracen und anzeigen obs funktioniert
trace("\n\n\n\n\n"+deintext1);
trace(deintext.cleanstring("*|/ß+<>$_%"));

//----------------------------------------------- 
cya, sal

ps

gebt mal bitte speed feedback!
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
salazar ist offline   Mit Zitat antworten
Alt 06-05-2005, 11:18   #7 (permalink)
Mittelalter User
 
Registriert seit: Jun 2003
Beiträge: 316
Tach,
Zitat:
gebt mal bitte speed feedback!
Also ich hab:

8
8
123

Ned schlecht. Respekt!

System: P4 3,06GHz | 1GB Ram


Grüße
Realtimefreak
Realtimefreak ist offline   Mit Zitat antworten
Alt 06-05-2005, 11:26   #8 (permalink)
robo kalkühl
Gast
 
Beiträge: n/a
13
14
148

amd 1800+

grüße,
r.
  Mit Zitat antworten
Alt 06-05-2005, 11:40   #9 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.367
bei der mühle hier im büro ergibt sich folgendes:
47
49
349

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
salazar ist offline   Mit Zitat antworten
Alt 06-05-2005, 12:00   #10 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
Noch was lustiges... dieser imense Unterschied kommt vom veröffentlichen in MX oder MX 2004!


MX:
53
54
429

MX 2004, F7, AS2:
9
8
98

MX 2004, F6, AS1:
11
12
114
__________________
Alles ist wie immer. Nur schlimmer.
querkopf ist offline   Mit Zitat antworten
Alt 09-05-2005, 08:12   #11 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Hab auch noch einen.
Und der ist noch etwas schneller.
PHP-Code:
String.prototype.cleanString = function(del){
    var 
del.length;
    while( 
a-- ){
        
this this.splitdel.charAt) ).join(''); 
    }
    return 
this

Und hier der speedTest:
PHP-Code:
// der test text 
var deintext "*/||**********************/Lorem* $___%%%____$ipsum /dolor //sit amet, </br>consectetuer |+ß+|+ß+|adipiscing elit. Suspendisse sem augue, aliquet pharetra, porttitor eget, **** sodales vitae, dolor. Maecenas interdum. Quisque in diam ut purus scelerisque placerat. Maecenas quam pede, semper non, pretium in, rhoncus vehicula, lectus. Donec eu neque. Quisque pellentesque lacus sit amet tellus. Fusce dapibus nulla in quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam convallis. Curabitur at erat." 

//----------------------------------------------- 
// salazar's prototype 

String.prototype.clstring = function(del){ 
    var 
= -1
    var 
this.length
    var 
ctxt ""
    while(
a++<b){ 
        if(
del.indexOf(this.charAt(a)) == -1txt += c
    } 
   return 
txt

//----------------------------------------------- 
// hgseib's prototype 

String.prototype.delchars = function(dels) { 
        var 
ictxt ""
        for (
i=0i<this.lengthi++) { 
                if (
dels.indexOf(c=this.charAt(i)) == -1) { 
                        
txt += c
                } 
        } 
        return 
txt
}; 
//----------------------------------------------- 
// my prototype 
String.prototype.cleanString = function( del ){
    var 
del.length;
    while( 
a-- ){
        
this this.splitdel.charAt) ).join(''); 
    }
    return 
this



//----------------------------------------------- 
// Speed Tests 

getTimer(); 
tracedeintext.clstring"*|/ß+<>$_%" ) ); 
trace"\nsalazar's " + ( getTimer() - ) + "\n\n" ); 

getTimer(); 
tracedeintext.delchars"*|/ß+<>$_%" ) ); 
trace"\nhdseib's " + ( getTimer() - ) + "\n\n" ); 

getTimer(); 
tracedeintext.cleanString"*|/ß+<>$_%" ) ); 
trace"\nrendner[i]'s " + ( getTimer() - ) ); 
__________________
ERROR: Signature is too large

Geändert von rendner[i] (09-05-2005 um 08:21 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 09-05-2005, 08:24   #12 (permalink)
Mittelalter User
 
Registriert seit: Jun 2003
Beiträge: 316
Moinmoin,
autsch, sach ich da nur. Die neuen Testzahlen:

salazar's 8
hdseib's 9
rendner[i]'s 1

Hut ab!


Grüße
Realtimefreak
Realtimefreak ist offline   Mit Zitat antworten
Alt 09-05-2005, 09:06   #13 (permalink)
experience++;
 
Benutzerbild von salazar
 
Registriert seit: Jul 2002
Ort: Düsseldorf
Beiträge: 11.367
Thumbs up

hehe. geil

salazar's 47
hdseib's 49
rendner[i]'s 11

das ist echt fix jetzt...

cya, sal
__________________
Bitte keine Flashfragen an mich schicken. Dafür ist ja das Forum da! Das betrifft auch Profilnachrichten.
salazar ist offline   Mit Zitat antworten
Alt 09-05-2005, 14:12   #14 (permalink)
poke
 
Registriert seit: Dec 2002
Ort: Iserlohn [NRW]
Beiträge: 2.304
geile sache redner! Sogar auf meinem alten PC super schnell


Zeit
salazar 30
hgseib 31
salazar (alt) 315
redner 3


Pentium 3, 666 Mhz, 512MB RAM
pokepika ist offline   Mit Zitat antworten
Alt 09-05-2005, 15:00   #15 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
das heißt rendner!!!!! *grrrr*
__________________
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