FoxPro/Visual FoxPro - EXTRAER FECHA DE UNA CADENA ...

 
Vista:

EXTRAER FECHA DE UNA CADENA ...

Publicado por JM (503 intervenciones) el 14/02/2007 18:53:43
Hola ...
Tengo una tabla con un campo caracter(140) que muestra los datos asi:

La Caixa (04-01-07)
CAIXA 9.01.07
LA CAIXA - 12/01/07
...

Como veis, ninguna cadena es igual, y necesito hacer una funcion o rutina que me extraiga de cada registro SOLAMENTE las fechas en formato DATE para poder grabar en otra tabla en un campo de Fecha.
Estoy intentado con Evaluate, Normalize, Strtran ... pero no lo consigo
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
sin imagen de perfil

RE:EXTRAER FECHA DE UNA CADENA ...

Publicado por Ernesto Hernandez (4623 intervenciones) el 14/02/2007 20:00:01
y como puedes identificar en una cadena de 140 chars donde empieza la fecha o la fecha siempre comienza en la misma posicion??


si es asi ya estas del otro lado

a="La Caixa (04-01-07) "
b=substr(a,11,8)

? Ctod(b) = 04/01/2007


Suerte
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:EXTRAER FECHA DE UNA CADENA ...

Publicado por CarlosA (86 intervenciones) el 14/02/2007 21:34:44
El problema esta en que no esta grabado en una forma estandar... pero para los tres ejemplos que colocas funcionaria asi:

ejemplo cuando el registro esa asi: La Caixa (04-01-07)

x = AT('(','La Caixa (04-01-07)',1)
y=SUBSTR('La Caixa (04-01-07)',x+1,8)
z=CTOD(y)

o en una sola instruccion

z=CTOD(STRTRAN(SUBSTR('La Caixa (04-01-07)',AT('(','La Caixa (04-01-07)',1)+1,8),'-','/'))

use mejor la primera para evitar confusiones.

igual para los otros, ejemplo CAIXA 9.01.07

x = AT('.','CAIXA 9.01.07',1)
y = SUBSTR('CAIXA 9.01.07',x-1,8)
z = CTOD(y)

el otro te le dejo de tarea,

saludos

Carlos
Bogota,Col.
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:EXTRAER FECHA DE UNA CADENA ...

Publicado por JM (503 intervenciones) el 15/02/2007 00:08:28
Gracias ... el problema es que la fecha no esta en una posicion fija .... vereis, he programado esta funcion que va bien con los tres ejemplos que he puesto :

FUNCTION buscaFecha
PARAMETERS micampo
z=LEN(ALLTRIM(micampo))
FOR n=z TO 1 STEP -1
IF TYPE(SUBSTR(micampo,n,1))="N"
EXIT
ENDIF
ENDFOR
RETURN CTOD(SUBSTR(micampo,n-7,8))
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