Foros del Web » Programando para Internet » ASP Clásico »

Extraer texto de una cadena

Estas en el tema de Extraer texto de una cadena en el foro de ASP Clásico en Foros del Web. Buenas de nuevo... Tengo una cadena en una variable. Las cadenas tienen esta nomenclatura: variable="m_ nombrecadena _1.txt" Necesito extraer nombrecadena, es decir lo que se ...
  #1 (permalink)  
Antiguo 18/03/2007, 17:49
Avatar de koaxial  
Fecha de Ingreso: agosto-2001
Mensajes: 119
Antigüedad: 22 años, 9 meses
Puntos: 0
Extraer texto de una cadena

Buenas de nuevo...

Tengo una cadena en una variable. Las cadenas tienen esta nomenclatura:

variable="m_nombrecadena_1.txt"

Necesito extraer nombrecadena, es decir lo que se encuentra delimitado entre el caracter "_".

Lo he intentado con las funciones left y right, pero no me sale. ¿Cómo puedo hacerlo?

Gracias.
  #2 (permalink)  
Antiguo 19/03/2007, 04:12
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Extraer texto de una cadena

usa la funcion inStr para buscar un caracter (o varios) dentro de una cadena. Su sintaxis es:

InStr([start,]string1,string2[,compare])

por ejemplo:


pos=InStr("m_nombrecadena_1.txt","_")

pos tendría 2 --> m seria 1, _ seria 2, n seria 3 etc)

luego

pos2 = InStr(2, "m_nombrecadena_1.txt","_")
saldria 15


luego no tienes mas que sacar esa informacion:

loquequieroes = mid("m_nombrecadena_1.txt", pos, (pos2 - pos)+1)



Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #3 (permalink)  
Antiguo 19/03/2007, 04:30
Avatar de koaxial  
Fecha de Ingreso: agosto-2001
Mensajes: 119
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: Extraer texto de una cadena

No me funciona bien. Seguramente algo hago mal:

Pos=InStr(objFile.Name,"_")
Pos2 = InStr(2, objFile.Name,"_")
NomFich=mid(objFile.Name, Pos, (Pos2 - Pos)+1)


Response.Write NomFich


Al hacer esto Response.Write NomFich devuelve el caracter "_"

Supongo que lo que pasa es que la longitud de la cadena es variable, porque depende del nombre del fichero que se esté mostrando... Lo que está claro es que siempre seguirá el patrón de extraer la cadena entre los caracteres "_"
  #4 (permalink)  
Antiguo 19/03/2007, 04:35
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Extraer texto de una cadena

Cita:
Iniciado por koaxial Ver Mensaje
No me funciona bien. Seguramente algo hago mal:

Pos=InStr(objFile.Name,"_")
Pos2 = InStr(2, objFile.Name,"_")
NomFich=mid(objFile.Name, Pos, (Pos2 - Pos)+1)


Response.Write NomFich


Supongo que lo que pasa es que la longitud de la cadena es variable, porque depende del nombre del fichero que se esté mostrando... Lo que está claro es que siempre seguirá el patrón de extraer la cadena entre los caracteres "_"

Sustituye ese 2 por la variable pos que es la que contiene el valor de lectura de la primera aparición y sumale 1 para que siga con la siguiente (mira la sintaxis de esa funcion)

Pos2 = InStr(pos+1, objFile.Name,"_")

Un saludo
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #5 (permalink)  
Antiguo 19/03/2007, 04:48
Avatar de koaxial  
Fecha de Ingreso: agosto-2001
Mensajes: 119
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: Extraer texto de una cadena

Bueno, ya está casi. Ahora con este código:

Pos=InStr(objFile.Name,"_")

Pos2 = InStr(Pos+1, objFile.Name,"_")
NomFich=mid(objFile.Name, Pos, (Pos2 - Pos)+1)

Response.Write NomFich


Ahora Response.Write NomFich devuelve "_nombre_", pero necesito eliminar los guiones.

Sigo probando
  #6 (permalink)  
Antiguo 19/03/2007, 04:52
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Extraer texto de una cadena



NomFich=mid(objFile.Name, Pos+1, (Pos2 - Pos))
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
  #7 (permalink)  
Antiguo 19/03/2007, 04:52
Avatar de koaxial  
Fecha de Ingreso: agosto-2001
Mensajes: 119
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: Extraer texto de una cadena

¡Lo tengo!

Pos=InStr(objFile.Name,"_")
Pos2 = InStr(Pos+1, objFile.Name,"_")
NomFich=mid(objFile.Name, Pos+1, (Pos2 - Pos)-1)

Ahora sí me devuelve la cadena sin los guiones, tengo que probar si funciona con cualquier cadena, sea cual sea su longitud, pero parece que sí funciona.

Muchas gracias por la ayuda
  #8 (permalink)  
Antiguo 19/03/2007, 05:16
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 18 años, 5 meses
Puntos: 7
Re: Extraer texto de una cadena

De nada, para eso estamos
__________________
"Tus pecados son el estiércol sobre el que florecerán las flores de tus virtudes" - Gerald Messadié -
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:05.