Devolver un array de cadenas

05/08/2004 - 12:13 por David | Informe spam
Hola.
He hecho una función que me devuelve un array de cadenas
de caracteres, que cada vez puede tener distinto numero de
elementos, lo voy redimensionando en la función que me
devuelve este array segun lo voy necesitando.
El problema es que ahora no se como recoger en otro array
fuera de la función este array de cadenas.
Alguna sugerencia.
Gracias

Preguntas similare

Leer las respuestas

#1 danicastillo
05/08/2004 - 13:29 | Informe spam
no se exactamente cual es el problema pero podrias hacer que tu funcion
devolviera, no el array, sino un join del array


nombrefuncion=join(vector,"|||")

(lo de "|||" es solo un separador que no aparezca en las cadenas)


para devolver eso a vector de cualquier dimension

otrovector=split(nombrefuncion(),"|||")

"David" escribió en el mensaje
news:082d01c47ad4$e71624a0$
Hola.
He hecho una función que me devuelve un array de cadenas
de caracteres, que cada vez puede tener distinto numero de
elementos, lo voy redimensionando en la función que me
devuelve este array segun lo voy necesitando.
El problema es que ahora no se como recoger en otro array
fuera de la función este array de cadenas.
Alguna sugerencia.
Gracias
Respuesta Responder a este mensaje
#2 David
05/08/2004 - 13:47 | Informe spam
Hola.
No entiendo muy bien lo que me comentas, pero te cuento un
poco lo que intento hacer.

Estoy haciendo un sistema de busqueda en una base de datos
y tengo una funcion (la que me duelve el array) a la que
le paso la cadena de busqueda y me devuelve un vector con
todas las cadenas filtradas. O sea, sin caracteres
extraños, artículos, determinantes etc...
Ejemplo

Cadena de Busqueda: el alma del señor
Realmente lo que voy a buscar en la base de datos es alma
y señor, por tanto elimino (el, del), para ello almaceno
en un array, que este caso es de tamaño dos (dependiendo
de las palabras que ponga) pues (alma, señor). Esto me lo
hace una funcion y quiro recoger ese vector para luego
utilizarlo y poder construir mi consulta sql...

Espero no que no te haya cansado.
De todas maneras no tiene por que ser así, si se te ocurre
alguna otra idea.
Salu2







no se exactamente cual es el problema pero podrias hacer


que tu funcion
devolviera, no el array, sino un join del array


nombrefuncion=join(vector,"|||")

(lo de "|||" es solo un separador que no aparezca en las


cadenas)


para devolver eso a vector de cualquier dimension

otrovector=split(nombrefuncion(),"|||")

"David" escribió en


el mensaje
news:082d01c47ad4$e71624a0$
Hola.
He hecho una función que me devuelve un array de cadenas
de caracteres, que cada vez puede tener distinto numero de
elementos, lo voy redimensionando en la función que me
devuelve este array segun lo voy necesitando.
El problema es que ahora no se como recoger en otro array
fuera de la función este array de cadenas.
Alguna sugerencia.
Gracias



.

Respuesta Responder a este mensaje
#3 danicastillo
05/08/2004 - 14:12 | Informe spam
aja, veo por donde vas, pero no necesitas nada extraño, mira este codigo
<%
dim c
c="Hola al mundo"
dim vv
vv=limpia(c)
for each p in vv
response.write "[" & p & "]"
next

function limpia(cadena)
dim v,v2
v=split(cadena," ")
v2=v
' Aqui limpiariamos los elementos de v2 q no interesen
' o bien vamos pasando solo los que nos gustan de v a v2
' no pongo el codigo claro =)
limpia=v2
end function

%>

tal como esta funciona, simplemente maneja los vectores con dim , para
recoger el valor de la funcion (que es un vector) haces
dim resultado ' sin tipo ni dimension
resultado= funciontuya(cadena)

y lo manejas con un for each , o bien con for k=lbound(resultado) to
ubound(resultado) , lbound y ubound te devuelven los limites de un vector,
mientras que el for each recorre auto todos los elementos

"David" escribió en el mensaje
news:070301c47ae1$f20412c0$
Hola.
No entiendo muy bien lo que me comentas, pero te cuento un
poco lo que intento hacer.

Estoy haciendo un sistema de busqueda en una base de datos
y tengo una funcion (la que me duelve el array) a la que
le paso la cadena de busqueda y me devuelve un vector con
todas las cadenas filtradas. O sea, sin caracteres
extraños, artículos, determinantes etc...
Ejemplo

Cadena de Busqueda: el alma del señor
Realmente lo que voy a buscar en la base de datos es alma
y señor, por tanto elimino (el, del), para ello almaceno
en un array, que este caso es de tamaño dos (dependiendo
de las palabras que ponga) pues (alma, señor). Esto me lo
hace una funcion y quiro recoger ese vector para luego
utilizarlo y poder construir mi consulta sql...

Espero no que no te haya cansado.
De todas maneras no tiene por que ser así, si se te ocurre
alguna otra idea.
Salu2







no se exactamente cual es el problema pero podrias hacer


que tu funcion
devolviera, no el array, sino un join del array


nombrefuncion=join(vector,"|||")

(lo de "|||" es solo un separador que no aparezca en las


cadenas)


para devolver eso a vector de cualquier dimension

otrovector=split(nombrefuncion(),"|||")

"David" escribió en


el mensaje
news:082d01c47ad4$e71624a0$
Hola.
He hecho una función que me devuelve un array de cadenas
de caracteres, que cada vez puede tener distinto numero de
elementos, lo voy redimensionando en la función que me
devuelve este array segun lo voy necesitando.
El problema es que ahora no se como recoger en otro array
fuera de la función este array de cadenas.
Alguna sugerencia.
Gracias



.

Respuesta Responder a este mensaje
#4 David
05/08/2004 - 14:57 | Informe spam
Hola.
Gracias por contestar, pero hay un detalle.
Según tu, dentro de la funcion limpia habrá un vector que
hemos declarado con dim, por ejemplo keywords. La pregunta
es, ¿tengo una palabra limpiada para añadir?, como la
añado?, si hay un keywords = keywords & nueva_palabra, me
lo tratara como una string.
Luego, ¿como harás el ubound sobre una cadena?, creo que
no se puede.
Bueno.
Sigo cualquier sugerencia
Salu2


aja, veo por donde vas, pero no necesitas nada extraño,


mira este codigo
<%
dim c
c="Hola al mundo"
dim vv
vv=limpia(c)
for each p in vv
response.write "[" & p & "]"
next

function limpia(cadena)
dim v,v2
v=split(cadena," ")
v2=v
' Aqui limpiariamos los elementos de v2 q no interesen
' o bien vamos pasando solo los que nos gustan de v a v2
' no pongo el codigo claro =)
limpia=v2
end function

%>

tal como esta funciona, simplemente maneja los vectores


con dim , para
recoger el valor de la funcion (que es un vector) haces
dim resultado ' sin tipo ni dimension
resultado= funciontuya(cadena)

y lo manejas con un for each , o bien con for k=lbound


(resultado) to
ubound(resultado) , lbound y ubound te devuelven los


limites de un vector,
mientras que el for each recorre auto todos los elementos

"David" escribió en


el mensaje
news:070301c47ae1$f20412c0$
Hola.
No entiendo muy bien lo que me comentas, pero te cuento un
poco lo que intento hacer.

Estoy haciendo un sistema de busqueda en una base de datos
y tengo una funcion (la que me duelve el array) a la que
le paso la cadena de busqueda y me devuelve un vector con
todas las cadenas filtradas. O sea, sin caracteres
extraños, artículos, determinantes etc...
Ejemplo

Cadena de Busqueda: el alma del señor
Realmente lo que voy a buscar en la base de datos es alma
y señor, por tanto elimino (el, del), para ello almaceno
en un array, que este caso es de tamaño dos (dependiendo
de las palabras que ponga) pues (alma, señor). Esto me lo
hace una funcion y quiro recoger ese vector para luego
utilizarlo y poder construir mi consulta sql...

Espero no que no te haya cansado.
De todas maneras no tiene por que ser así, si se te ocurre
alguna otra idea.
Salu2







no se exactamente cual es el problema pero podrias hacer


que tu funcion
devolviera, no el array, sino un join del array


nombrefuncion=join(vector,"|||")

(lo de "|||" es solo un separador que no aparezca en las


cadenas)


para devolver eso a vector de cualquier dimension

otrovector=split(nombrefuncion(),"|||")

"David" escribió en


el mensaje
news:082d01c47ad4$e71624a0$
Hola.
He hecho una función que me devuelve un array de cadenas
de caracteres, que cada vez puede tener distinto numero




de
elementos, lo voy redimensionando en la función que me
devuelve este array segun lo voy necesitando.
El problema es que ahora no se como recoger en otro array
fuera de la función este array de cadenas.
Alguna sugerencia.
Gracias



.





.

Respuesta Responder a este mensaje
#5 danicastillo
05/08/2004 - 15:58 | Informe spam
ahms ya veo por donde te has liado

mira, tienes dos caminos para tratar el problema
1 . usar arrays puros, con redim puedes ir incrementando el tamaño de una
matriz
2 . usar strings o combinacion de array y strings

te pongo un ejemplo del 2 (falta depurar, lo tecleo sin probar ...)

dim prohibidas
prohibidas=",el,la,los,las,a,del,de,"
' etc, todas las palabras prohibidas separadas por coma y empezando y
terminando en ,


function limpia(cadena)
' comienza la fiesta xD
dim c
c=lcase(cadena) ' para simplificar paso a minusculas
c=replace(c,","," ") ' me meriendo las comas cambiandolas por espacio
' idem para otros signos por si acaso
c=replace(c,"."," ")
c=replace(c,";"," ")
dim v
v=split (c," ") ' separo por espacios
resultado="" ' cadena vacia
dim palabra
for each palabra in v
if NOT (instr(prohividas, "," & palabra & "," ) ) then
' no pertenece a la lista de prohibidas, ojo con el uso del instr
' acoto primero con "," la palabra antes de buscarla
'
if resultado<>"" then
resultado=" " & palabra
else
resultado=palabra
end if

end if
next
limpia= split(resultado," ")
' aunq podria devolver la cadena simplemente
end function

tal como esta devuelve un vector
podria devolver cadena y luego construir la sql a parte haciendo un split


"David" escribió en el mensaje
news:099c01c47aeb$b67d1350$
Hola.
Gracias por contestar, pero hay un detalle.
Según tu, dentro de la funcion limpia habrá un vector que
hemos declarado con dim, por ejemplo keywords. La pregunta
es, ¿tengo una palabra limpiada para añadir?, como la
añado?, si hay un keywords = keywords & nueva_palabra, me
lo tratara como una string.
Luego, ¿como harás el ubound sobre una cadena?, creo que
no se puede.
Bueno.
Sigo cualquier sugerencia
Salu2


aja, veo por donde vas, pero no necesitas nada extraño,


mira este codigo
<%
dim c
c="Hola al mundo"
dim vv
vv=limpia(c)
for each p in vv
response.write "[" & p & "]"
next

function limpia(cadena)
dim v,v2
v=split(cadena," ")
v2=v
' Aqui limpiariamos los elementos de v2 q no interesen
' o bien vamos pasando solo los que nos gustan de v a v2
' no pongo el codigo claro =)
limpia=v2
end function

%>

tal como esta funciona, simplemente maneja los vectores


con dim , para
recoger el valor de la funcion (que es un vector) haces
dim resultado ' sin tipo ni dimension
resultado= funciontuya(cadena)

y lo manejas con un for each , o bien con for k=lbound


(resultado) to
ubound(resultado) , lbound y ubound te devuelven los


limites de un vector,
mientras que el for each recorre auto todos los elementos

"David" escribió en


el mensaje
news:070301c47ae1$f20412c0$
Hola.
No entiendo muy bien lo que me comentas, pero te cuento un
poco lo que intento hacer.

Estoy haciendo un sistema de busqueda en una base de datos
y tengo una funcion (la que me duelve el array) a la que
le paso la cadena de busqueda y me devuelve un vector con
todas las cadenas filtradas. O sea, sin caracteres
extraños, artículos, determinantes etc...
Ejemplo

Cadena de Busqueda: el alma del señor
Realmente lo que voy a buscar en la base de datos es alma
y señor, por tanto elimino (el, del), para ello almaceno
en un array, que este caso es de tamaño dos (dependiendo
de las palabras que ponga) pues (alma, señor). Esto me lo
hace una funcion y quiro recoger ese vector para luego
utilizarlo y poder construir mi consulta sql...

Espero no que no te haya cansado.
De todas maneras no tiene por que ser así, si se te ocurre
alguna otra idea.
Salu2







no se exactamente cual es el problema pero podrias hacer


que tu funcion
devolviera, no el array, sino un join del array


nombrefuncion=join(vector,"|||")

(lo de "|||" es solo un separador que no aparezca en las


cadenas)


para devolver eso a vector de cualquier dimension

otrovector=split(nombrefuncion(),"|||")

"David" escribió en


el mensaje
news:082d01c47ad4$e71624a0$
Hola.
He hecho una función que me devuelve un array de cadenas
de caracteres, que cada vez puede tener distinto numero




de
elementos, lo voy redimensionando en la función que me
devuelve este array segun lo voy necesitando.
El problema es que ahora no se como recoger en otro array
fuera de la función este array de cadenas.
Alguna sugerencia.
Gracias



.





.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida