Ver Mensaje Individual
  #4  
Antiguo 20-08-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
gdlrinfo,

Cita:
Empezado por gdlrinfo
...necesito sacar una fecha de una nombre de un archivo...el archivo tiene este nombre (NHHH-C0003054T201503270071-SANDRA AMAR LUCIA-20150814)...necesito extraer la fecha que esta después de la letra T...20150327...8 dígitos...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function GetDateFileName(FileName : String) : String;
var
   FileDate : TDateTime;
   Day, Month, Year : Word;
begin
   try
      Year := StrToInt(Copy(FileName,15,4));
      Month := StrToInt(Copy(FileName,19,2));
      Day := StrToInt(Copy(FileName,21,2));
      FileDate := EncodeDate(Year, Month, Day);
      Result := Copy(FileName,15,8);
   except
      Result := EmptyStr;
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   FileName : String;
begin
   FileName := 'NHHH-C0003054T201503270071-SANDRA AMAR LUCIA-20150814';
   MessageDlg(Format('La Fecha del Archivo es : %s',[GetDateFileName(FileName)]),mtInformation,[mbOK],0);
end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, obtiene la fecha de un nombre de archivo de estructura definida, como se muestra en la siguiente imagen:



Notas:

1- El código del ejemplo asume que la estructura del nombre de archivo es constante en los primeros 26 carácteres, lo cual implica que sin importar el valor del carácter 14 (Letra T), devolverá la fecha si esta es válida.

2- La función valida la fecha, si es correcta devuelve la misma en formato YYYYMMDD, en caso contrario devuelve un string en blanco.

Espero sea útil

Nelson.
Responder Con Cita