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

#6 David
06/08/2004 - 09:17 | Informe spam
Hola de nuevo.

Veras, creo que no consigo resolver este asunto.
Te pongo el codigo de la función y a ver si tu eres capaz
de manejar ese "maldito" vector que quiero devolver en la
función.

El vector que quiero devolver es keywords
Function formatear(SearchString)

'Primero pasamos todo a minúsculas
SearchString = LCase(SearchString)

'Creamos una nueva cadena que contiene solamente
alfanuméricos
dim Buf, Char, n, ok



for n=1 to len(SearchString)
ok = false
char = mid(SearchString, n, 1)
if Char >= "a" and Char <= "z" then ok = true
if Char >= "0" and Char <= "9" then ok = true
'Comprobamos tambien los caracteres especiales
españoles
if Char = "á" or Char = "é" or Char = "í" or Char
= "ó" or Char = "ú" then ok = true
If Char = "ñ" or Char = "ü" then ok = true
if Char = " " then ok = true

'Si es ok, entonces añadimos
if ok then
Buf = Buf & Char
end if
next

'Ahora, usamos la función split para hacer un array de
palabras, separado por blancos
dim Words
dim Word
dim num
Words = Split(Buf, " ")


'Creamos un array para las palabras clave
dim keywords()

'Elimino las palabras ruidosas, tales como: y, de, la,
etc...
num = 0
For each Word in Words
'Elimina cualquier espacio en blanco
Word = Trim(Word)
'Las palabras de menos de 3 caracteres no interesan
if Len(Word) >= 3 then
if Word <> "las" and Word <> "los" and
Word <> "con" and Word <> "desde" and Word <> "hacia" and _
Word <> "hasta" and Word <> "para" and
Word <> "por" and Word <> "sin" and Word <> "tras" and _
Word <> "del" then

'Aqui es donde voy redimensionando el array la marcha
redim preserve keywords(num)
keywords(num) = Word
num = num + 1
end if
end if
next
'Aqui devuelve el array con las palabras
formatear = keywords
End Function

'Ahora esta el problema: ¿¿¿Como recogo ese vector
dinamico fuera de la función???.
No es tan fácil, al menos para mi.


Bueno, cualquier cambio, sugerencia, o lo que se te ocurra
será de agradecer.
Salu2
Respuesta Responder a este mensaje
#7 danicastillo
06/08/2004 - 13:34 | Informe spam
esq no tiene ningun problema =)
<%
dim kw
dim p
dim k

' obtienes el vector sobre kw
'
kw=formatear("Hola a todo el mundo")

'muestra
for each p in kw
response.write "[" & p & "]"
next

'otra forma de recorrer el vector devuelto
for k=lbound(kw) to Ubound(kw)
response.write "<br>Elemento " & k & " vale " & kw(k)
next



"David" escribió en el mensaje
news:122101c47b85$6375fc40$
Hola de nuevo.

Veras, creo que no consigo resolver este asunto.
Te pongo el codigo de la función y a ver si tu eres capaz
de manejar ese "maldito" vector que quiero devolver en la
función.

El vector que quiero devolver es keywords
Function formatear(SearchString)

'Primero pasamos todo a minúsculas
SearchString = LCase(SearchString)

'Creamos una nueva cadena que contiene solamente
alfanuméricos
dim Buf, Char, n, ok



for n=1 to len(SearchString)
ok = false
char = mid(SearchString, n, 1)
if Char >= "a" and Char <= "z" then ok = true
if Char >= "0" and Char <= "9" then ok = true
'Comprobamos tambien los caracteres especiales
españoles
if Char = "á" or Char = "é" or Char = "í" or Char
= "ó" or Char = "ú" then ok = true
If Char = "ñ" or Char = "ü" then ok = true
if Char = " " then ok = true

'Si es ok, entonces añadimos
if ok then
Buf = Buf & Char
end if
next

'Ahora, usamos la función split para hacer un array de
palabras, separado por blancos
dim Words
dim Word
dim num
Words = Split(Buf, " ")


'Creamos un array para las palabras clave
dim keywords()

'Elimino las palabras ruidosas, tales como: y, de, la,
etc...
num = 0
For each Word in Words
'Elimina cualquier espacio en blanco
Word = Trim(Word)
'Las palabras de menos de 3 caracteres no interesan
if Len(Word) >= 3 then
if Word <> "las" and Word <> "los" and
Word <> "con" and Word <> "desde" and Word <> "hacia" and _
Word <> "hasta" and Word <> "para" and
Word <> "por" and Word <> "sin" and Word <> "tras" and _
Word <> "del" then

'Aqui es donde voy redimensionando el array la marcha
redim preserve keywords(num)
keywords(num) = Word
num = num + 1
end if
end if
next
'Aqui devuelve el array con las palabras
formatear = keywords
End Function

'Ahora esta el problema: ¿¿¿Como recogo ese vector
dinamico fuera de la función???.
No es tan fácil, al menos para mi.


Bueno, cualquier cambio, sugerencia, o lo que se te ocurra
será de agradecer.
Salu2
Respuesta Responder a este mensaje
#8 David
06/08/2004 - 13:58 | Informe spam
jODER TIO, que tronco soy.
Muchas gracias. Esto va como la seda.
mUy agradecido.
Salu2 y suerte en la vida.

esq no tiene ningun problema =)
<%
dim kw
dim p
dim k

' obtienes el vector sobre kw
'
kw=formatear("Hola a todo el mundo")

'muestra
for each p in kw
response.write "[" & p & "]"
next

'otra forma de recorrer el vector devuelto
for k=lbound(kw) to Ubound(kw)
response.write "<br>Elemento " & k & " vale " & kw(k)
next



"David" escribió en


el mensaje
news:122101c47b85$6375fc40$
Hola de nuevo.

Veras, creo que no consigo resolver este asunto.
Te pongo el codigo de la función y a ver si tu eres capaz
de manejar ese "maldito" vector que quiero devolver en la
función.

El vector que quiero devolver es keywords
Function formatear(SearchString)

'Primero pasamos todo a minúsculas
SearchString = LCase(SearchString)

'Creamos una nueva cadena que contiene solamente
alfanuméricos
dim Buf, Char, n, ok



for n=1 to len(SearchString)
ok = false
char = mid(SearchString, n, 1)
if Char >= "a" and Char <= "z" then ok = true
if Char >= "0" and Char <= "9" then ok = true
'Comprobamos tambien los caracteres especiales
españoles
if Char = "á" or Char = "é" or Char = "í" or Char
= "ó" or Char = "ú" then ok = true
If Char = "ñ" or Char = "ü" then ok = true
if Char = " " then ok = true

'Si es ok, entonces añadimos
if ok then
Buf = Buf & Char
end if
next

'Ahora, usamos la función split para hacer un array de
palabras, separado por blancos
dim Words
dim Word
dim num
Words = Split(Buf, " ")


'Creamos un array para las palabras clave
dim keywords()

'Elimino las palabras ruidosas, tales como: y, de, la,
etc...
num = 0
For each Word in Words
'Elimina cualquier espacio en blanco
Word = Trim(Word)
'Las palabras de menos de 3 caracteres no interesan
if Len(Word) >= 3 then
if Word <> "las" and Word <> "los" and
Word <> "con" and Word <> "desde" and Word <> "hacia" and


_
Word <> "hasta" and Word <> "para" and
Word <> "por" and Word <> "sin" and Word <> "tras" and _
Word <> "del" then

'Aqui es donde voy redimensionando el array la marcha
redim preserve keywords(num)
keywords(num) = Word
num = num + 1
end if
end if
next
'Aqui devuelve el array con las palabras
formatear = keywords
End Function

'Ahora esta el problema: ¿¿¿Como recogo ese vector
dinamico fuera de la función???.
No es tan fácil, al menos para mi.


Bueno, cualquier cambio, sugerencia, o lo que se te ocurra
será de agradecer.
Salu2




.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida