shubenka
Messages postés759Date d'inscriptionmercredi 11 décembre 2002StatutMembreDernière intervention12 novembre 2008 18 nov. 2006 à 14:34
En effet top30 c'est un peu tromper mais en réfléchissant un peu on arrive
à qq chose qui marche
function allIndexOf( source :String, search :String ):Array{
var index :Array= new Array() ;
var splited :Array= source.split(search) ;
var segMax :Number= splited.length-1 ;
var position :Number= 0 ;
var i :Number= -1 ;
while(++i < segMax ) {
position+= splited[i].length ;
index.push(position) ;
position+= search.length ;
}
return index ;
}
amezghal
Messages postés385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 17 nov. 2006 à 23:20
gé testé ta methode mais ca ne marche po :(
elle retourne "undefined";
en plus "source" est une mot clé dans flash;
mais merci comme meme, car l'utulisation de la méthode split simplifie les choses;
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 17 nov. 2006 à 02:02
function allIndexOf( source :String, search :String ):Array{
var indexes :Array= new Array() ;
var splited :Array= source.split(search) ;
var segMax :Number= splited.length ;
var position :Number= 0 ;
var i :Number= -1 ;
while(++i < segMax ) {
position+= splited[i].length ; // CORRIGE
index.push(position) ;
}
return indexes ;
}
// Pardon, mais il est tard...
amezghal
Messages postés385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 12 nov. 2006 à 17:30
ouai c ça,desolé
shubenka
Messages postés759Date d'inscriptionmercredi 11 décembre 2002StatutMembreDernière intervention12 novembre 2008 12 nov. 2006 à 16:49
i+=l;
fait gaffe à ca, ton L on le confond avec un 1.
amezghal
Messages postés385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 12 nov. 2006 à 16:39
merci pour l'info, mais si tu vois bien le code tu verra qu'il ne va pas produire le tableau genre[0,1,2], dans le cas "cccc" car j'incrimente le "i" par la longeur du chaine qu'on cherche
******************
i+=l;
sachant que l est la longueur du chaine,
**
mais merci comme meme
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 12 nov. 2006 à 16:01
ouais .. encore un qui ne connais pas "indexOf" ... tu as tout de même réinventé cette fonction et tu te tappes tout les caractères un par un ...
Dans ton cas, il risque d'y avoir des erreurs dans le cas d'un texte genre "cccc" avec la recherche de la chaîne "cc" ... tu obtiendras un tableau genre [0,1,2], or dans n'importe quel traitement de texte, il ne t'aurais sortis que [0,2] pour éviter les doublons ...
Moi je te conseille fortement de revoir ta fonction en y incluant "indexOf" car tu te prend la tête pour rien !
Peg'
amezghal
Messages postés385Date d'inscriptionlundi 27 février 2006StatutMembreDernière intervention21 août 20155 12 nov. 2006 à 14:53
non lastIndexOf ne fait le meme travail;
car lastIndexOf retourne le drenier index du string qu'on cherche, par contre la mienne retourne un tableau contenant toutes les occurences du string cherché.
merci;
shubenka
Messages postés759Date d'inscriptionmercredi 11 décembre 2002StatutMembreDernière intervention12 novembre 2008 12 nov. 2006 à 12:57
sauf erreur de ma part mais lastIndexOf fait la même
public lastIndexOf(value:String, [startIndex:Number]) : Number
18 nov. 2006 à 14:34
à qq chose qui marche
function allIndexOf( source :String, search :String ):Array{
var index :Array= new Array() ;
var splited :Array= source.split(search) ;
var segMax :Number= splited.length-1 ;
var position :Number= 0 ;
var i :Number= -1 ;
while(++i < segMax ) {
position+= splited[i].length ;
index.push(position) ;
position+= search.length ;
}
return index ;
}
17 nov. 2006 à 23:20
elle retourne "undefined";
en plus "source" est une mot clé dans flash;
mais merci comme meme, car l'utulisation de la méthode split simplifie les choses;
17 nov. 2006 à 02:02
var indexes :Array= new Array() ;
var splited :Array= source.split(search) ;
var segMax :Number= splited.length ;
var position :Number= 0 ;
var i :Number= -1 ;
while(++i < segMax ) {
position+= splited[i].length ; // CORRIGE
index.push(position) ;
}
return indexes ;
}
// Pardon, mais il est tard...
12 nov. 2006 à 17:30
12 nov. 2006 à 16:49
fait gaffe à ca, ton L on le confond avec un 1.
12 nov. 2006 à 16:39
******************
i+=l;
sachant que l est la longueur du chaine,
**
mais merci comme meme
12 nov. 2006 à 16:01
Dans ton cas, il risque d'y avoir des erreurs dans le cas d'un texte genre "cccc" avec la recherche de la chaîne "cc" ... tu obtiendras un tableau genre [0,1,2], or dans n'importe quel traitement de texte, il ne t'aurais sortis que [0,2] pour éviter les doublons ...
Moi je te conseille fortement de revoir ta fonction en y incluant "indexOf" car tu te prend la tête pour rien !
Peg'
12 nov. 2006 à 14:53
car lastIndexOf retourne le drenier index du string qu'on cherche, par contre la mienne retourne un tableau contenant toutes les occurences du string cherché.
merci;
12 nov. 2006 à 12:57
public lastIndexOf(value:String, [startIndex:Number]) : Number
http://wiki.media-box.net/documentation/flash/string/lastindexof