cortar

22/12/2005 - 11:10 por Jordi | Informe spam
Hola a tod@s,

a ver si me podeis echar una mano,

Tengo en un registro de la bbdd que contiene lo siguiente:

Crónica Pepito.- bla bla bla

y me interesa coger el trozo pepito es decir hasta que encuentre el ".-"

y luego eliminar Cronica ...

como podria hacerlo ?

Gracias de antemano ...

Preguntas similare

Leer las respuestas

#1 Jose A. Fernandez
22/12/2005 - 13:18 | Informe spam
Jordi

Te comento dos opciones para que optes por la que mas te convenga
1) Obtener desde la DB el cempo formateado como lo quieres
("cortado")
2) Recuperar desde el codigo que consulta la base de datos y
recien alli formatearlo


1) en la DB, algo asi:
SELECT CORTAR(campo1) as CampoCortado FROM Tabla
Dependiendo el motor de la base de datos que estas utilizando la
funcion CORTAR seria o una solo funcion, o un rupo de funciones para
obtener la cadena formateada ("cortado") o por ejemplo en SQL2000
realizar tu propia funcion de usuario que realice la tarea un poco mas
especifica.
Que DB estas utilizando? (para ayudarte mejor en el codigo SQL que
realiza esta tarea)

2) Dependiendo la longitud de tu campo unos cuantos caracteres o un
campo un poco mas grande como varios GB de texto.

Funcion: Instr
Te indica la posicion de una cadena dentro de otra
http://www.w3schools.com/vbscript/func_instr.asp

Funcion: Mid
basicamente RECORTA cadenas, tienes que indicarle posicion de inicio y
cantidad de caracrteres
http://www.w3schools.com/vbscript/func_mid.asp

en tu caso particular de pepito:
strCadena = "Crónica Pepito.- bla bla bla "

'obtienes la posicion del punto y el guion
intPosicionGuion = INSTR(strCadena, ".-")

'obtengo hasta el .-
strCadenaCortada = MID(strCadena, 1, intPosicionGuion )

hasta aqui tienes strCadenaCortada = "Crónica Pepito"

strCadenaAEliminar = "Crónica"
strCadenaAEliminarPosicionInicio = INSTR(strCadenaCortada ,
strCadenaAEliminar)
strCadenaAEliminarLongitud = LEN(strCadenaAEliminar)

con estos datos puede hacer algo asi
strCadenaResultado = MID(strCadenaCortada,
(strCadenaAEliminarPosicionInicio + strCadenaAEliminarLongitud),
LEN(strCadenaCortada))


entonecs >> strCadenaResultado = "Pepito"

Tendrias que especificar bien los pasas para obtener TAL O CUAL texto
dentro de la cadena, para obtener mejor un algoritmo que realice esta
tarea, Ademas si especificas mejor se podria llegar a armar un
EXPRESION REGULAR para que haga esta tarea de una sola vez

Espero que te ayude para tu problema... o por lo menos lo encamine
Respuesta Responder a este mensaje
#2 Jordi
22/12/2005 - 14:31 | Informe spam
Hola Jose,

Antes de nada muchas gracias ...

La bbdd que uso es mysql, ...

He utilizado tu 2 opcion y me ha ido perfecto, muchas gracias

Saludos i feliz navidad

"Jose A. Fernandez" wrote in
news::

Jordi

Te comento dos opciones para que optes por la que mas te convenga
1) Obtener desde la DB el cempo formateado como lo quieres
("cortado")
2) Recuperar desde el codigo que consulta la base de datos y
recien alli formatearlo


1) en la DB, algo asi:
SELECT CORTAR(campo1) as CampoCortado FROM Tabla
Dependiendo el motor de la base de datos que estas utilizando la
funcion CORTAR seria o una solo funcion, o un rupo de funciones para
obtener la cadena formateada ("cortado") o por ejemplo en SQL2000
realizar tu propia funcion de usuario que realice la tarea un poco mas
especifica.
Que DB estas utilizando? (para ayudarte mejor en el codigo SQL que
realiza esta tarea)

2) Dependiendo la longitud de tu campo unos cuantos caracteres o un
campo un poco mas grande como varios GB de texto.

Funcion: Instr
Te indica la posicion de una cadena dentro de otra
http://www.w3schools.com/vbscript/func_instr.asp

Funcion: Mid
basicamente RECORTA cadenas, tienes que indicarle posicion de inicio y
cantidad de caracrteres
http://www.w3schools.com/vbscript/func_mid.asp

en tu caso particular de pepito:
strCadena = "Cr¢nica Pepito.- bla bla bla "

'obtienes la posicion del punto y el guion
intPosicionGuion = INSTR(strCadena, ".-")

'obtengo hasta el .-
strCadenaCortada = MID(strCadena, 1, intPosicionGuion )

hasta aqui tienes strCadenaCortada = "Cr¢nica Pepito"

strCadenaAEliminar = "Cr¢nica"
strCadenaAEliminarPosicionInicio = INSTR(strCadenaCortada ,
strCadenaAEliminar)
strCadenaAEliminarLongitud = LEN(strCadenaAEliminar)

con estos datos puede hacer algo asi
strCadenaResultado = MID(strCadenaCortada,
(strCadenaAEliminarPosicionInicio + strCadenaAEliminarLongitud),
LEN(strCadenaCortada))


entonecs >> strCadenaResultado = "Pepito"

Tendrias que especificar bien los pasas para obtener TAL O CUAL texto
dentro de la cadena, para obtener mejor un algoritmo que realice esta
tarea, Ademas si especificas mejor se podria llegar a armar un
EXPRESION REGULAR para que haga esta tarea de una sola vez

Espero que te ayude para tu problema... o por lo menos lo encamine


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