Comunidad de diseño web y desarrollo en internet online

problema split("#") con simbolo %

Citar            
MensajeEscrito el 27 Mar 2007 10:59 am
Verán tengo un problema al realizar un split de una cadena como la siguiente:

REAL MADRID # 1289% # 295/560 # 145/383 # 264/367

Yo quiero separarla por el simbolo " # ", pero no se porque no me lo hace bien al llegar al simbolo " % " y lo que hace es saltarselo y devolver esto 1289295/560 en lugar de esto 1289% + 295/560

var nom=dades.players.split("#");

lo he probado tambien teniendo el archivo guardado en UTF-8 y haciendolo asi:
var nom=utf-8 encoder(dades.players.split("#"));

y tampoco funciona...

Alguna idea?
Gracias de antemano

Por cosacu

6 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Mar 2007 02:20 pm
a mi me funciono correctamente:

Código :

var string:String = "REAL MADRID # 1289% # 295/560 # 145/383 # 264/367"

trace(string.split('#')); //REAL MADRID , 1289% , 295/560 , 145/383 , 264/367


La variable "dades.players" a la que le haces el split() es un string?

Por shogoki

355 de clabLevel

4 tutoriales

 

Venezuela

firefox
Citar            
MensajeEscrito el 27 Mar 2007 03:07 pm
Lo llamo de un archivo de texto.txt

Código :

System.useCodepage = true;
stop();

dades=new LoadVars();
dades.ignoreWhite=true;

dades.load(archivo.txt);
dades.onLoad=function(){
var nom:String=dades.players.split("#");
trace (nom);
}


Le he puesto como string y a mi me sigue juntando 1289295/560, los siguientes los hace bien... pero donde está el % me lo junta con el siguiente...

Es que le he probado de todo...
No se que se me escapa

Por cosacu

6 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Mar 2007 03:24 pm
Lo hice con el código que das y me funciono perfecto solo hice unos cambios minimos

Código :

var dades:LoadVars = new LoadVars();

dades.load("archivo.txt");
dades.onLoad=function(){
   var nom:String=dades.players.split("#");
   trace(nom); //REAL MADRID , 1289, 295/560 , 145/383 , 264/367
}


Ahora cuando cree el "archivo.txt" lo hice con codificación UTF-8 usando Notepad++ quizás el problema es la codificación del archivo prueba a seguir estas indicaciones

Por shogoki

355 de clabLevel

4 tutoriales

 

Venezuela

firefox
Citar            
MensajeEscrito el 27 Mar 2007 04:11 pm
que va...

si creas un archivo.txt y pones la variable
&players=REAL MADRID#1289%#5555

en el trace que haces luego en flash o aparecen juntos el segundo y el tercero, o no aparece el simbolo %

Y el archivo ya lo tengo guardado como UTF-8...

el codigo está asi ahora:

Código :

System.useCodepage = true;
stop();
var dades:LoadVars = new LoadVars();
dades.ignoreWhite=true;
dades.load(archivo.txt);

dades.onLoad=function(){
var nom:String=dades.players.split("#");
trace (nom); //aparece concatenado el que lleva el % con el siguiente
}


Mi archivo TXT

Código :

&players=REAL MADRID#1289%#295/560#145/383


Gracias por tu paciencia[/code]

Por cosacu

6 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Mar 2007 04:55 pm
sip ya vi el problema y la falla no es del split() sino del metodo onLoad() de LoadVars parece que el símbolo % elimina el carácter inmediatamente después posiblemente sea un bug. Con LoadData funciona perfecto:

Código :

var dades:LoadVars = new LoadVars();

dades.load("archivo.txt");
dades.onData=function(src:String) {
    if (src == undefined) {
        trace("Error loading content.");
        return;
    }
   var nom = src.split('#')
   trace(nom)//REAL MADRID,1289%,295/560,145/383
}


txt:

Código :

REAL MADRID#1289%#295/560#145/383


otra opción es con XML:

Código :

var dades:XML = new XML();
dades.ignoreWhite = true
dades.load("archivo.xml");
dades.onLoad=function(success){
   if(success)
   {
      var nom:String=dades.firstChild.childNodes[0].firstChild.toString();
      trace(nom.split('#'));//REAL MADRID,1289%,295/560,145/383
   }   
}


y el XML:

Código :

<datos>
   <players>
      <![CDATA[REAL MADRID#1289%#295/560#145/383]]>
   </players>
</datos>

Por shogoki

355 de clabLevel

4 tutoriales

 

Venezuela

firefox
Citar            
MensajeEscrito el 27 Mar 2007 07:08 pm
Sí que funciona. Mil gracias por tu ayuda...

De todos modos es raro no lo del onLoad que se salte el % ??

En fin. Gracias de nuevo!

Por cosacu

6 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 Oct 2008 07:02 pm
Hola, la verdad que los foros siempre me resolvieron los problemas, pero ahora tengo este problema muy parecido al de cosacu

Yo levanto desde un txt un texto (que genera un php), llamado comentarios1.txt

comentarios1=<b>08-10-2008</b> Skopos has increased his market exposure to 95% from 90% by adding to his favourite picks. Petrobras is the highest allocation..<br>--------------------------------------------------------------------------------------------------------------------------

Y lo levanto desde flash desde un texto dinamico que tiene UIscrollbars

Yo saque de algun foro de aqui el siguiente script:

var myLoadVars:LoadVars = new LoadVars();
myLoadVars.onLoad = function(success:Boolean):Void{
if(success){
comentarios1.htmlText = this.comentarios1;
}
}
myLoadVars.load("comentarios1.txt");
stop();

Pues bien no me acepta por ejemplo el simbolo % ni &

Que puedo hacer, YA ESTOY DESESPERADO

Desda ya MUCHAS GRACIAS POR LA AYUDA!!!

Por dbenche

3 de clabLevel



 

msie7
Citar            
MensajeEscrito el 08 Oct 2008 11:57 pm
En el php remplaza en la variable que va a recibir flash, los "&" por "%26" y los "%" por "%25".

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 09 Oct 2008 02:30 pm
Gracias!!!
Igualmente pense qeu se podia solucionar por script desde flash, que mal macromedia!!!!! tiene mas bugs que otra cosa. :roll:

Saludos y Gracias :D

Por dbenche

3 de clabLevel



 

msie7
Citar            
MensajeEscrito el 09 Oct 2008 07:57 pm
No es un bug, el signo & quiere decir que vas a recibir varias variables por lo tanto si lo pones dentro de tu archivo de texto asumirá que después de este viene un nombre de variable seguido del signo igual, si esto no se cumple no te mostrará el texto después del caracter. Para poner caracteres especiales se hace con hexadecimal precedido del signo "%", es por eso que si situas el signo "%" solo, flash asumirá que estás tratando de poner un caracter hexadecimal.

El hexadecimal de "&" es 26 y el hexadecimal de "%" es 25.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.