Mudar Data de um arquivo

09/08/2004

Alguém sabe como faço para mudar a data de um arquivo.


Foxcyber

Respostas

10/08/2004

Motta

unit Unit1;

{use um maskedit para pegar a data/hora}

interface

uses
  Windows, Messages, SysUtils, Classes,  Controls, Forms, Dialogs,
  Mask,  Buttons, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    btnAchaBaca: TBitBtn;
    OpenDialog1: TOpenDialog;
    MaskEdit1: TMaskEdit;
    btnHaceLaMierda: TBitBtn;
    procedure btnAchaBacaClick(Sender: TObject);
    procedure btnHaceLaMierdaClick(Sender: TObject);
  private
    { Private declarations }
    fH : integer; {File handle}
    dtAqr: TDateTime; {Data arquivo}
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.btnAchaBacaClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
    edit1.Text:= OpenDialog1.FileName; {Escolhe o .exe}
  fH:=FileOpen(edit1.Text,fmOpenReadWrite); {Abre o arquivo para edição}
  dtAqr:=FileDateToDateTime(FileGetDate(fH)); {Recupera a data do arquivo}
  MaskEdit1.Text:=DateTimeToStr(dtAqr); {Joga para o MaskEdit}
end;

procedure TForm1.btnHaceLaMierdaClick(Sender: TObject);
var ret: integer;
begin
  try
    dtAqr:= StrToDateTime(MaskEdit1.Text); {Monta a data marretada}
  except
    ShowMessage(´Verifique a porcaria da data e hora que você passou !!!!´);
    dtAqr:=FileDateToDateTime(FileGetDate(fH)); {Recupera a data do arquivo}
    exit; // <===
  end;
  ret:=FileSetDate(fH,DateTimeToFileDate(dtAqr)); {Grava a data marretada no .exe}
  FileClose(fH); {Fecha né...}
  if ret = 0 then {Não tem no help que porcaria quer dizer este retorno}
    ShowMessage(´Marretado com sucesso!!!´)
  else
    ShowMessage(´Marretado com zebra !!! Zebra = ´ + IntToStr(ret));
end;

end.



Responder Citar