Comunidad de diseño web y desarrollo en internet online

Borrar los dos ultimo elementos array

Citar            
MensajeEscrito el 22 Ene 2010 12:52 am
ok, lo que quiero hacer es guardar una ruta en una variable, la ruta puede variar a veces de numero de carpetas, esa ruta lo guardo en un array lo que quiero hacer es que siempre me borre, los dos ultimos elementos del array: este es mi codigo que llevo:

Código ActionScript :

var miCadena = "C:\\Documents and Settings\\Logan\\My Documents\\My Pictures\\"   
texto1.text=miCadena
var miArray:Array = miCadena.split("\\") 
miArray.pop()
texto2.text=miArray.join("\\")


en al campo de texto 1, me aparece la ruta completa:

Código ActionScript :

C:\Documents and Settings\Logan\My Documents\My Pictures\


al utlizar el metodo pop() me borra solamente el slash invertido del final:

Código ActionScript :

C:\Documents and Settings\Logan\My Documents\My Pictures


yo lo que quiero lograr es que siempre me borre los dos ultimo elementos para que quede de la siguiente manera:

Código ActionScript :

C:\Documents and Settings\Logan\My Documents\


asi no importa que tan largo este la ruta, lo unico que quiero borrar al final es el slash invertido final, y la carpeta final, pero aun no logro hacerlo, gracias de antemano

Por palmeros

46 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 22 Ene 2010 08:33 am
Haz dos veces seguidas el pop, y después añade el backslash

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Ene 2010 07:02 pm
jajaja excelente y sencillo, muchas gracias :) para futuras referencias les dejo el codigo de como funciona:

Código ActionScript :

var miCadena = "C:\\Documents and Settings\\Logan\\My Documents\\My Pictures\\"   
texto1.text=miCadena
var miArray:Array = miCadena.split("\\") 
miArray.pop()
miArray.pop()
texto2.text=miArray.join("\\")+"\\";

Por palmeros

46 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 23 Ene 2010 12:26 am
Creo que utilizando métodos de la clase String lo resuelves más sencillo y sin tantos recursos:

Código ActionScript :

var miCadena = "C:\\Documents and Settings\\Logan\\My Documents\\My Pictures\\";
texto2.text = miCadena.slice(0, miCadena.lastIndexOf("\\", miCadena.length - 2) + 1);

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 23 Ene 2010 09:49 am
Es verdad, haz caso a elchininet. Así no tienes que hacer la doble conversión String --> Array; Array --> String

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 Ene 2010 03:23 pm
@isidoro tienes razón, el evitarse la doble conversión acelera la rápidez del proceso el doble ya que el trabajo con métodos de la clase String requiere de menos recursos.

@palmeros, supongo por el foro donde has posteado que trabajas con AS1 o AS2. De todas formas si te interesa saberlo en AS3 con el uso de expresiones regulares todo se hace mucho más rápido y limpio.

Código ActionScript :

var miCadena = "C:\\Documents and Settings\\Logan\\My Documents\\My Pictures\\";
texto2.text = miCadena.replace(/^(\w:\\[\w\s\\]*\\)[\w\s]*\\$/, "$1");

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 23 Ene 2010 05:29 pm
:shock: ¡Expresiones regulares!
He de reconocer que en los libros que he leído sobre AS3 siempre me he saltado ese tema (sí, ya sé lo útiles que son para crear patrones de búsqueda y esas cosas, pero creo que no soy el único que se asusta al ver esa sintaxis :lol: ).
¡MUY BUENO elchininet! :wink:

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 24 Ene 2010 01:25 am
muchas gracias ambien me funciono de esa manera :) muchas gracias de nuevo

Por palmeros

46 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 24 Ene 2010 11:42 pm
Jee jee @isidoro es verdad, a mi también me pasó, créeme que son un poco complicadas de entender en un inicio y en realidad hay que reconocer que su sintaxis no es muy legible, pero si le dedicas un poco verás que no son tan complicadas y se pueden realizar cosas increíbles.

Inclusive ahora mirando mejor el código veo que he escrito mucho más de lo que debía, todo se podía resumir en lo siguiente, esta está un poco más legible y fácil de entender:

Código ActionScript :

var miCadena = "C:\\Documents and Settings\\Logan\\My Documents\\My Pictures\\"; 
texto2.text = miCadena.replace(/[\w\s]*\\$/, "");

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 25 Ene 2010 08:20 pm
Bueno, has hecho que me pique la curiosidad y poco a poco voy dando mis primeros pasos con las "RegExp" (con la ayuda de la wikipedia más o menos he logrado entender tu ejemplo). Ahí va otra forma de hacerlo:
En vez de sustituir los caracteres que sean alfanuméricos y espacios por una cadena vacía, lo que hace es sustituir todo lo que no sea un backslash.

Código ActionScript :

var miCadena:String = "C:\\Documents and Settings\\Logan\\My Documents\\My Pictures\\";
trace(miCadena.replace(/[^\\]*\\$/, ""));

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Ene 2010 08:51 pm
Jeee je. Ya ves que no es tan difícil, es mucho más lo que parece que lo que es.
Un saludo ;)

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.