Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   problemas, convertir fecha desde un string (https://www.clubdelphi.com/foros/showthread.php?t=51604)

spyfenix 20-12-2007 18:21:08

problemas, convertir fecha desde un string
 
que tal gente
he estado buscando este tipode ayuda pero no encuentro una solucion
uso un grid y desde ahi voy a validar una fecha dada de esta forma '201207' para que me la convierta de esta forma '20/12/2007'
tengo este codigo perome marca error

Código:

var
  aFeha : string;
  Fecha : Date;
begin
  aFecha := Grid.Cells[0, aRow]; //toma el valor de la celda
  Fecha := StrtoDateTime(aFecha); // me merca el error
end;

espero su ayuda y muchas gracias de antemano.

saludos

Tal 20-12-2007 18:32:01

1. que error te da?
2. Cambia el tipo de variable de Date a TDate(e incluso te diría que usaras un TDateTime que es mejor)
Y creo que con la segunda solución ya se subsanará el error, sino pasaremos a cosas más mejores.

;) Un saludo espero haberte ayudado.

spyfenix 20-12-2007 18:38:22

que tal, TAL jeje
oye muchas gracias por tu ayuda, mira cambiando como dices, me sale el mismo error

Project ejemplos.exe raised exception class EConvertError with message "121212" is not a valid date'

de esta forma quedo el codigo

Código:

var
  aFeha : string;
  Fecha : TDateTime;
begin
  aFecha := Grid.Cells[0, aRow]; //toma el valor de la celda
  Fecha := StrtoDateTime(aFecha); // me merca el error
end;

gracias ;)

Tal 20-12-2007 18:46:05

Asegurate de que Afecha vale '201207' y luego y por si acaso que está en buen formato.

Código:

function CadAFec(const AFecha:string):TdateTime;
var
    cad : string;
begin
      cad := Afecha[1]+Afecha[2]+'/'+Afecha[3]+Afecha[4]+'/'+
                Afecha[5]+Afecha[6]+Afecha[7]+Afecha[8]);
      result := strtoDatetime(cad);
end

Ahora no recuerdo si los strings comienzan por 1 o por cero pero es tocar un valor arriba o uno abajo.

También puedes usar esta función que le pasas el formato de la fecha
StrToDateFmt(Afecha,'ddmmyyy');

Prueba a ver que tal.

Un saludo.

ecfisa 20-12-2007 19:03:14

Esto lo convierte:

var
FStr: string;
Fecha: Date;
begin
with Grid do
FStr:= Copy(Cells[0,aRow],1,2) + '/' + Copy(Cells[0,aRow],3,2) + '/' +
Copy(Cells[0,aRow],6,4);
Fecha:= StrToDate(FStr);
end;

spyfenix 20-12-2007 19:09:04

Eres ungenio jejeje
Funciono del todo bien, solo un comentario

me lo guarda de esta forma '12/Dic/2008' cuando introdusco =12/Dic/2008=

se podria guardar de esta forma '12/12/2008'

en verdad muchas gracias por tu ayuda

saludos

Tal 20-12-2007 19:12:25

A mandar, para eso estamos ;)

spyfenix 20-12-2007 19:15:07

Oye TAL
un ultimo gorrito, te decia que me lo guarda de esta forma
"12/Dic/2000" cuando ingreso en el edit "12/12/2000"

se podria guardar tal y como lo ingreso "12/12/2000"


gracias ;)

Tal 20-12-2007 19:19:56

Lo raro es que te lo guarde de la otra manera...
Que tipo de grid usas?
O de edit?
Normalmente los grids de BBDD tienen opciones para configurar los formatos de fecha pero los stringgrid que yo sepa no.

Yo me tengo que ir pero seguro que alguién te lo aclara mejor que yo.

spyfenix 20-12-2007 19:25:05

te lo agradesco demasiado TAL

y pues mi grid que uso es TADVStringGrid

saludos


La franja horaria es GMT +2. Ahora son las 09:52:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi