Miiiiiiiiiil gracias Sixto, es exactamente lo que necesitaba saber, y dos
mil gracias por la funci�n, que esa la ten�a que haber hecho yo 8-).  Intu�a
que ten�a que ir partiendo la cadena en "niveles", pero no sab�a que el
problema iba a estar con los �ndices.

Para que se entienda un poco lo que estamos haciendo:
Tenemos un parser para XML que por cada nodo "interesante" nos genera una
cadena con su ubicaci�n en un objeto global de datos. Esos nodos contienen
bastante informaci�n (una descripci�n larga de un producto, como si fuera un
campo memo) y para no cargar cada item que se repite con esa informaci�n y
por otras cosas que dan igual, lo que hacemos es pasar a cada copia la
cadena con la ubicaci�n de la info, en lugar de toda la info, que ocupa
mucho. Igual es poco ortodoxo, pero es como se nos ha ocurrido.

Ahora ya est� resuelto, gracias otra vez, a t� Sixto y a todos los dem�s,
Paulo.


----- Original Message -----
From: "Sixto Cantolla - AzulMedia" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, March 05, 2004 9:10 AM
Subject: RE: [ASNativos] Convertir cadena en path


> Hola a todos:
>
> El problema quiz�s es que no entendemos todo lo que quieres hacer, cuando
> quieres acceder a diferentes niveles, con index es cuando se complica, ya
> que no puede evaluarlo directamente flash, por tanto tendr�s que hacerte
un
> parser que interprete la cadena y "navegue" hasta ese nivel, o por lo
menos
> es lo que me parece entender.
>
> si el nivel al que quieres llegar, es ese, tendr�as que hacer:
> valor = tienda["listaProductos"]["Producto"][0]["descripcion"][0]._valor;
>
>
> Ya que Flash no puede evaluar correctamente un camino directo a un index
de
> un array ni puede identificar los puntos como lo hace normalmente. Es
decir,
> cuando pides que eval�e la cadena
> "productos.listaProductos.producto[0].descripcion[0]", lo que hace flash
es
> buscar un nombre de objeto o propiedad que coincida exactamente con esa
> cadena, nunca interpretar� los puntos o los corchetes como accesos
internos
> como si hace si escribes el literal. Si necesitas imperiosamente pasarle
la
> cadena completa, deber�s hacer un parser, la mejor soluci�n es una funci�n
> recursiva(funciona por que lo he probado):
> [code]
> function localizaObjecto (referer, cadena)
> {
> var punto = cadena.indexOf (".");
> var corchete = cadena.indexOf ("[");
> if (((punto != -1 && corchete != -1) && (punto < corchete)) || (punto
!= -1
> && corchete == -1))
> {
> var apuntador = referer[cadena.substring (0, punto)];
> if (cadena.substring (index2 + 2, cadena.length).length != 0)
> {
> return localizaObjecto (apuntador, cadena.substring (punto + 1,
> (cadena.length)));
> }
> else
> {
> return apuntador;
> }
> }
> else if (((punto != -1 && corchete != -1) && (punto > corchete)) || (punto
> == -1 && corchete != -1))
> {
> var apuntador = referer[cadena.substring (0, corchete)];
> var name = cadena.substring (0, corchete);
> var index2 = cadena.indexOf ("]");
> var apuntador = apuntador[cadena.substring (corchete + 1, index2)];
> if (cadena.substring (index2 + 2, cadena.length).length != 0)
> {
> return localizaObjecto (apuntador, cadena.substring (index2 + 2,
> cadena.length));
> }
> else
> {
> return apuntador;
> }
> }
> }
> trace (localizaObjecto (tienda,
> "listaproductos.producto[0].descripcion[0]")._valor);
> [/code]
>
> -----Mensaje original-----
> De: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] nombre de Paulo Carvajal --
> Vudumedia.com --
> Enviado el: viernes, 05 de marzo de 2004 1:07
> Para: [EMAIL PROTECTED]
> Asunto: Re: [ASNativos] Convertir cadena en path
>
>
> Gracias Carlos, Francisco, ninguna de las opciones funciona.
> Helmut, creo que no has leido bien la historia, se agradece la aportaci�n
en
> cualquier caso.
> Se que parece una pregunta de novato, pero no encuentro la manera de
> conseguirlo.
> Todas las opciones ser�an v�lidas si la cadena fuera un solo nivel:
>     valor = tienda["listaProductos"]._valor;
> Pero no parece funcionar cuando hay varias propiedades de objeto
> concatenadas en la propia cadena:
> valor = tienda["listaProductos.producto[0].descripcion[0]"]._valor;// ni
pa
> diox
>
> El "eval" tampoco resuelve nada de momento. Un absurdo de apariencia
> sencilla.
>
> Gracias de todas formas,
> Paulo.
>
>
> ----- Original Message -----
> From: "Carlos Terradillos Guti�rrez" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, March 04, 2004 8:43 PM
> Subject: RE: [ASNativos] Convertir cadena en path
>
>
> No estoy nada seguro pero...
>
> valor = mc["path"]._valor;
>
> Saludos.
>
> :��: croma2 :������������������������:
> :    Carlos Terradillos Guti�rrez    :
> ::::::::::::::::::::::::::::::::::::::
>
>
> > -----Mensaje original-----
> > De: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] En nombre de Francisco Salas
> > Enviado el: jueves, 04 de marzo de 2004 19:58
> > Para: [EMAIL PROTECTED]
> > Asunto: RE: [ASNativos] Convertir cadena en path
> >
> >
> > y asi?
> >
> > valor = eval
> > ("tienda.listaProductos.producto[0].descripcion[0]")._valor
> >
> > Por probar, digo...
> >
> >
> > -----Mensaje original-----
> > De: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] nombre de Paulo Carvajal --
> > Vudumedia.com---
> > Enviado el: jueves, 04 de marzo de 2004 19:31
> > Para: [EMAIL PROTECTED]
> > Asunto: [ASNativos] Convertir cadena en path
> >
> >
> > Hola a todos
> > Tengo una cadena que hace referencia a una propiedad de un
> > objeto dentro de
> > un clip (la cadena es el path hasta esa propiedad) y no
> > consigo "evaluarla"
> > como path.
> > La cadena es
> > "listaProductos.producto[0].descripcion[0]._valor" y tienda es
> > el clip donde est� el objeto listaProductos
> >
> > Las pruebas que no van:
> > valor = tienda["listaProductos.producto[0].descripcion[0]._valor"];
> > valor = tienda["listaProductos.producto[0].descripcion[0]"]._valor;
> > valor = eval
> > ("tienda.listaProductos.producto[0].descripcion[0]._valor")
> >
> > As� s� que chuta, pero no me vale, tiene que ser string:
> > valor = tienda.listaProductos.producto[0].descripcion[0]._valor
> >
> > Tiene que ser una tonter�a, pero no lo veo, hoy ya no veo
> > nada, la verdad.
> >
> > Gracias y un saludo,
> > Paulo.
> >
> > <!-------------------------------
> > Lista ASNativos:
> > subscripciones/desubscripciones
> > http://www.sidedev.net/asnativos
> > Archivos:
> > sin busqueda (+actualizado):
> > http://www.sidedev.net/archive
> > con busqueda (-actualizado)
> > http://www.mail-archive.com/[EMAIL PROTECTED]/
> > -------------------------------->
> >
>
> <!-------------------------------
> Lista ASNativos:
> subscripciones/desubscripciones
> http://www.sidedev.net/asnativos
> Archivos:
> sin busqueda (+actualizado):
> http://www.sidedev.net/archive
> con busqueda (-actualizado)
> http://www.mail-archive.com/[EMAIL PROTECTED]/
> -------------------------------->
>
>
> <!-------------------------------
> Lista ASNativos:
> subscripciones/desubscripciones
> http://www.sidedev.net/asnativos
> Archivos:
> sin busqueda (+actualizado):
> http://www.sidedev.net/archive
> con busqueda (-actualizado)
> http://www.mail-archive.com/[EMAIL PROTECTED]/
> -------------------------------->
>
>
> <!-------------------------------
> Lista ASNativos:
> subscripciones/desubscripciones
> http://www.sidedev.net/asnativos
> Archivos:
> sin busqueda (+actualizado):
> http://www.sidedev.net/archive
> con busqueda (-actualizado)
> http://www.mail-archive.com/[EMAIL PROTECTED]/
> -------------------------------->
>

<!-------------------------------
Lista ASNativos:
subscripciones/desubscripciones
http://www.sidedev.net/asnativos
Archivos:
sin busqueda (+actualizado):
http://www.sidedev.net/archive
con busqueda (-actualizado)
http://www.mail-archive.com/[EMAIL PROTECTED]/
-------------------------------->

Responder a