Forums Développement Multimédia

Aller au contenu

le str_replace dans flash

CODE Actionscript

15 réponses à ce sujet

#1 boichu

    Administrator

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 5009 messages

Posté 21 January 2003 - 05:04 AM

a moi, il manquait, voici un prototype pour cobler ce vide.
je viens de me dire qu'il existait deja, tant pis! lol...
entous cas celui que j'ai fait fonctionne tres bien :

CODE
String.prototype.str_replace = function(recherche, remplace) {

//on recupere la taille du mot recherché et du mot qu'on met

taille = recherche.length;

taillerempl = remplace.length;

//on transforme le texte en tableau

letab = this.split("");

this = "";

//pour chaque cellule, on regarde si le mot s'y trouve

for (i=0; i<letab.length; i++) {

 imottemp = "";

 for (j=0; j<taille; j++) {

  imottemp += letab[i+j];

 }

 //si le mot est la, on le remplace

 if (imottemp == recherche) {

  lerempl = remplace.split("");

  if (taille<taillerempl) {

   for (j=0; j<taille; j++) {

    //si on est a remplacer le dernier caractere du mot recherché alors

    if (j == taille-1) {

     for (r=j+1; r<taillerempl; r++) {

      lerempl[j] += lerempl[r];

     }

    }

    letab[i+j] = lerempl[j];

   }

  }

  else if(taille>taillerempl) {

   for (j=0; j<taille; j++) {

    if (j<taillerempl) {

     letab[i+j] = lerempl[j];

    }

    //on efface les cellules inutiles

    else {

     delete letab[i+j];

    }

   }

  }

 }

 this += letab[i];

}

return this;

};

letexte = "et voila :), bien le bonjour! ";

trace(letexte);

letexte = letexte.str_replace(":)", "(smiley souriant)");

trace(letexte);



#2 supertomate

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 4147 messages

Posté 21 January 2003 - 11:34 AM

Je viens à la suite pour mettre le proto de Senocular, juste pour le choix wink.gif
CODE
String.prototype.replace = function(str, rep, chr) {

var t = (chr<0) ? this.substr(chr) : this.substr(0, chr);

var s = str.length;

var r = rep.length;

var p = t.indexOf(str);

while (p != -1) {

 t = t.substr(0, p)+rep+t.substr(p+s);

 p = t.indexOf(str, p+r);

}

return (chr) ? (chr<0) ? this.substr(0, this.length+chr)+t : t+this.substr(chr) : t;

};

/******************** EXAMPLE ********************/

myString = "aa  bonjour  a";

trace(myString.replace("bonjour", "au revoir"));

// bbbbb

trace(myString.replace("a", "b", 2));

// bbaaa

trace(myString.replace("a", "b", -2));

// aaabb


#3 Pierre

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 12757 messages

Posté 21 January 2003 - 11:46 AM

lol c marrant quand meme... on voit vraiment deux manière de programmer...

Je trouve ça super interessant ça.. yen a un qui fait du php et on voit tout de suite la forme générale du code.

Vous trouvez pas?

#4 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 21 January 2003 - 11:49 AM

salut!
une autre façon de coder (version MX) >>> tut de Mama
ici>>http://www.flashxpress.net/r_flash/f_proto...ring/replace.as

#5 boichu

    Administrator

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 5009 messages

Posté 21 January 2003 - 11:51 AM

oui, c vrai que ta solution est plus interessante. j'aurais du y penser à indexOf et substr!! :wink:

#6 Pierre

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 12757 messages

Posté 21 January 2003 - 11:53 AM

Boichu tu nous fais une ptite source documentée avec tout ça?

#7 jeanphilippe

    Grosso modo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 30486 messages

Posté 21 January 2003 - 11:53 AM

vous avez remarquez l'utilisation de ASSetPropFlags ! :wink:

#8 boichu

    Administrator

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 5009 messages

Posté 21 January 2003 - 12:00 PM

ha ouais! le code de mama offre encore plus de possibilités!
et puis au moins, il ne genere pas d'erreur s'il manque les parametres!

#9 boichu

    Administrator

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 5009 messages

Posté 21 January 2003 - 12:03 PM

oui, j'ai remarqué le ASSetPropFlags.
c du non-documentés ca! je crois que c un systeme d'autorisation, un peu comme le CHMOD mais je n'ai pas encore bien compris le principe.
justement, ce code va peut etre m'aider!wink.gif

#10 dehix

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 2165 messages

Posté 21 January 2003 - 13:50 PM

asSetPropFlags ca permet de mettre des propriétés et des methodes d objet en private par exemple si tu connais java. Ca permet de faire de la programmation propre ou les propriétés ne sont accessible que par l'interface de l objet.

#11 boichu

    Administrator

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 5009 messages

Posté 21 January 2003 - 13:57 PM

ok, merci, je me souviens d'avoir vu ca en java. ca me parle mieux maintenant!wink.gif

#12 Pierre

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 12757 messages

Posté 24 January 2003 - 10:27 AM

En voila un de ma compo smile.gif

CODE
String.prototype.remplace = function(string, remp) {

var newarray = this.split(string);

return newarray.join(remp);

};

test = "Mon chien est rouge".remplace("rouge", "bleu");

trace(test);


#13 boichu

    Administrator

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 5009 messages

Posté 24 January 2003 - 10:40 AM

Alors la!, on est vraiment pitoyable a se compliquer la vie!

#14 SamsamTS

  • Members
  • PipPipPipPipPipPipPipPip
  • 2616 messages

Posté 24 January 2003 - 12:09 PM

On pourrait utiliser ce script pour le chat, pour pouvoir afficher les plus par exemple :
CODE
//comment afficher les "+" dans le chat

String.prototype.remplace = function(string, remp) {

var newarray = this.split(string);

return newarray.join(remp);

};

//une chaine contenant des plus

test = "fkljgdlgfjk+fdg+fdg+gdf++";

//avant des les envoyer

test = test.remplace("+", ":x:");

trace(test);

//avant de les afficher

test = test.remplace(":x:", "+");

trace(test);

Bye biggrin.gif

#15 boichu

    Administrator

  • Administrateur
  • PipPipPipPipPipPipPipPip
  • 5009 messages

Posté 24 January 2003 - 12:51 PM

non, pour le chat y'a une autre solution beaucoup plus propre. j'arrete pas de le dire, ce sera fait...

par contre, ca peut etre etre utilisé pour les smileys! biggrin.gif

#16 SamsamTS

  • Members
  • PipPipPipPipPipPipPipPip
  • 2616 messages

Posté 24 January 2003 - 12:59 PM

Bah si tu as une autre solution pas de problème, je disait ca au cas ou biggrin.gif



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP