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
public
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.