Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2011
Avatar de fide_uci
fide_uci fide_uci is offline
Miembro
 
Registrado: ene 2009
Ubicación: Cuba - La Habana
Posts: 226
Poder: 16
fide_uci Va por buen camino
Bueno, la idea que me expones ya l tenia en mente por que hace algun tiempo la vi, ademas en la ayuda de Delphi he visto como utilizan en Decode\Encode para las fechas y horas y no estaria mal implementarlo de la manera que dices. Lo que sucede que yo creia que esto se podia hacer de la forma en que yo lo he estado intentando. Pero me parece que el unico formato de entrada que aceptan las funciones de fecha/hora son los clasicos como MM\DD\YYYY HH:MM:SS AM/PM. Bueno pues voy a implementarlo asi como me dices cuando termine te comento que tal me va.
Responder Con Cita
  #2  
Antiguo 06-05-2011
Avatar de fide_uci
fide_uci fide_uci is offline
Miembro
 
Registrado: ene 2009
Ubicación: Cuba - La Habana
Posts: 226
Poder: 16
fide_uci Va por buen camino
Bueno aqui esta la funcion que he utilizado ya para convertir la dichosa linea con la fecha y hora en el formato dado a algo que delphi entienda. Aqui les dejo el codigo.

Ha, por cierto la clase que utilizo ahi es una que me permite sacar los tokens, o parametros separados por coma o espacio del string. Si hace falta me dicen y publico la Unit con la definicion de la clase.

Aca el codigo.

Código Delphi [-]
procedure TForm1.GetMessageFromTXT(pFileName: string; var pIdMessage: TIdMessage);
var
  vStringList: TStringList;
  vDateTime: TDateTime;
  vCToken: TToken;
  vNum, vX: Byte;
  vStrDateTime, vStrUtil: string;
begin

  vStringList := TStringList.Create;
  vCToken := TToken.Create;

  try
    vStringList.LoadFromFile(pFileName);

    pIdMessage.From.Text := vStringList.Strings[0];
    pIdMessage.Recipients.Add.Text :=  vStringList.Strings[1];
    pIdMessage.Subject := vStringList.Strings[2];


    vCToken.Text := vStringList.Strings[3];
    vCToken.Seps := [',',' ']; //Separadores utilizados
    vCToken.Count;

    vCToken.First;
    vNum := 0;
    while vCToken.MoreTokens do
    begin
      Inc(vNum);
      //1: Dia del mes, que no es necesario
      //2: Mes (que tenemos que sacar su indice del array de meses)
      //3: #dia (ej. 22)
      //4: Año
      //5: "at"
      //6: La Hora
      //7: AM o PM
      vStrUtil := StringReplace(vCToken.LastToken, ' ', '', [rfReplaceAll]);

      case vNum of
        2: begin
            (*Aca tenemos que saber en que mes estamos para extraerlo
             OJO: Esto va a fallar cuando el SO este en español o sea
             el arreglo de meses no contenga los meses en ingles. *)

            //**** Recorremos todos los meses
            for vX := 1 to 12 do
              begin
                //Sacamos el numero del mes dado
                if LowerCase(ShortMonthNames[vX]) = LowerCase(vStrUtil) then
                  begin
                    vStrDateTime := IntToStr(vX);
                    break;
                  end;   
              end;
           end;
        3: begin
            vStrDateTime := vStrDateTime + '/' + vStrUtil;
           end;
        4: begin
            vStrDateTime := vStrDateTime + '/' + vStrUtil;
           end;
        6: begin
            vStrDateTime := vStrDateTime + ' ' + vStrUtil;
           end;
        7: begin
            vStrDateTime := vStrDateTime + ' ' + vStrUtil;
           end;
      end;

      vCToken.Next;
    end;

    vDateTime := StrToDateTime(vStrDateTime);

    pIdMessage.Date := vDateTime;    

    vStringList.Delete(0);
    vStringList.Delete(0);
    vStringList.Delete(0);
    vStringList.Delete(0);
    vStringList.Delete(0);

    pIdMessage.Body.Text := vStringList.Text;

  finally
    vStringList.Free;
    vCToken.Free;
  end;

end;

Última edición por fide_uci fecha: 06-05-2011 a las 16:22:45. Razón: Corrigiendo algunos problemitas que se me quedaron.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Convertir una formato de fecha en consulta sql ingabraham Varios 2 03-09-2010 21:25:59
Convertir String a Fecha Gaim2205 SQL 7 04-12-2008 03:14:10
problemas, convertir fecha desde un string spyfenix OOP 9 20-12-2007 19:25:05
Convertir fecha con formato sql a algo legible Delphitest Varios 9 29-05-2007 04:06:20
Convertir un SQLDate a TDateTime hector.roma SQL 4 14-07-2005 12:59:14


La franja horaria es GMT +2. Ahora son las 19:30:17.


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
Copyright 1996-2007 Club Delphi