ASP - Error con función SPLIT

 
Vista:

Error con función SPLIT

Publicado por Christian (4 intervenciones) el 05/12/2005 14:19:31
Hola,

Necesito separar una cadena de strings que extraigo de una BD por ejemplo de "C:\Audio\Files\2724798-28112005114600.vox" necesito extraer sólo "2724798-28112005114600.vox", para esto estoy usando la función SPLIT.

El código es:

ruta = (query_a("grabacion"))
archivo = (SPLIT(ruta,"\"))
grabacion=archivo(3)

Pero arroja un error :
(0x800A0009)
El subíndice está fuera del intervalo: '[number: 3]'

Sin embargo, a modo de prueba hice esto:

ruta = "C:\Audio\Files\2724798-28112005114600.vox"
archivo = (SPLIT(ruta,"\"))
grabacion=archivo(3)

Es decir, funciona ok si la variable ruta no la extraigo de la base de datos.
La consulta no tiene problemas, ya que al listar los resultado están bien, en todo caso esta es la consulta:
"SELECT grabacion from tabla_grabaciones where inicio > '11/30/05 9:00:00' and inicio < '11/30/05 23:00:00' "

Necesito ayuda por favor.
Muchas Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error con función SPLIT

Publicado por Santos Pairazamán (415 intervenciones) el 05/12/2005 15:46:33
Hazle un response.write query_a("grabacion") y verifica como esta sacando los datos, porq asi como veo esta bién parece q el problema esta por alli
talvez el separador no sea "\" sea "/" verifica eso.
o en todo caso verifica si se crea el arreglo archivo con esto
isarray(archivo)

espero t sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

right

Publicado por Michael Grey (61 intervenciones) el 05/12/2005 16:10:31
Prueba con este algoritmo:

ruta = "C:\Audio\Files\2724798-28112005114600.vox"
dim i
i=len(ruta)
do until i=3
if mid(ruta,i,1)="\" then exit do
i=i-1
loop
if i>3 then ruta=right(ruta,len(ruta)-i)

Mike28
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:right

Publicado por Christian (4 intervenciones) el 05/12/2005 17:18:00
Mike, probé tu algoritmo, funciona sin problemas siempre y cuando la variable ruta sea definida ej: ruta = "C:\Audio\Files\2724798-28112005114600.vox" .
Pero al extraerla de la base de datos no funciona ( ruta = (query_a("grabacion")) ), arroja el siguiente error:
(0x800A0005)
Argumento o llamada a procedimiento no válidos: 'mid'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:right

Publicado por Michael Grey (61 intervenciones) el 05/12/2005 19:39:49
Christian ; verifica que ruta tenga algun valor (que no este vacía).
Corrige el algoritmo que te pase, para que no entre al DO si ruta=""

ruta = (query_a("grabacion"))
dim i
i=len(ruta)
if i>3 then
do until i=3
if mid(ruta,i,1)="\" then exit do
i=i-1
loop
ruta=right(ruta,len(ruta)-i)
end if

Saludos, Mike28
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:right

Publicado por Christian (4 intervenciones) el 05/12/2005 20:14:26
Gracias Mike!!!, ese era el problema efectivamente había un caso en que ruta = "".

Gracias por todo,
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con función SPLIT

Publicado por Christian (4 intervenciones) el 05/12/2005 17:13:54
Santos, revisé los resultados que arroja la consulta y están bien, el separdador es "\", efectivamente crea un arreglo archivo, para verificarlo hice un isarray(archivo) y me dio resultado TRUE.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error con función SPLIT

Publicado por Santos Pairazamán (415 intervenciones) el 05/12/2005 17:21:40
inténtalo asi
grabacion=archivo(ubound(archivo))
esto t devolvería el ultimo elemento del arreglo
espero se solucione tu problema

hasta Pronto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar