Tratamentos de datas e criação de Logs

Delphi

02/05/2006

Bom dia pessoal

Como faço para uma variavel receber o data no formato AAMMDD..não pode ter nenhum outro caracter

e como eu crio um arq de log?


obrigado


$grandaum$

$grandaum$

Curtidas 0

Respostas

Paullsoftware

Paullsoftware

02/05/2006

1 - [quote:a311be8307=´$Grandaum$´]
Como faço para uma variavel receber o data no formato AAMMDD..não pode ter nenhum outro caracter
[/quote:a311be8307]
use uma variável do tipo string, e sempre que for re-utiliza-la como data use a converção [b:a311be8307]FormatDateTime[/b:a311be8307]

2 - [quote:a311be8307=´$Grandaum$´]
e como eu crio um arq de log?
[/quote:a311be8307]
existe várias maneiras de fazer isso eu gosto de trabalhar com applicationEvents e no OnException coloque:
var 
    NomeDoLog: string;
    Arquivo: TextFile;
begin
    NomeDoLog := ChangeFileExt(Application.Exename, ´.log´);
    AssignFile(Arquivo, NomeDoLog);
    if FileExists(NomeDoLog) then
      Append(arquivo)
    else
      ReWrite(arquivo);
    try
      WriteLn(arquivo, ´****************** ´+DateTimeToStr(Now)+ ´ ****************** ´);
      Writeln(arquivo, ´Erro Ocorrido: ´);
      Writeln(arquivo,E.Message);
      Writeln(arquivo, ´Janela: ´+ Screen.ActiveForm.Name + ´ Controle Ativo: ´+Screen.ActiveControl.Name);
      WriteLn(arquivo, ´----------------------------------------------------------------------´);
       MessageDlg(´Ocorreu o seguinte erro:´+e.Message,mtError,[mbOK],0);//aqui você pode persolizar a mensagem de erro
    finally
      CloseFile(arquivo)
    end;

espero ter ajudado :wink:


GOSTEI 0
Edilcimar

Edilcimar

02/05/2006

Ano,Mes,Dia : Word;
Arquivo : TextFile;
MeuTexto : String;
DecodeDate(Now, Ano, Mes, Dia)
MeuTexto := IntToStr(Ano)+IntToStr(Mes)+IntToStr(Dia);
Para criar o log
AssignFile(Arquivo,MeuTexto);


GOSTEI 0
$grandaum$

$grandaum$

02/05/2006

1 - [quote:a0656394a1=´$Grandaum$´][quote:a0656394a1]Como faço para uma variavel receber o data no formato AAMMDD..não pode ter nenhum outro caracter
[/quote:a0656394a1]
use uma variável do tipo string, e sempre que for re-utiliza-la como data use a converção [b:a0656394a1]FormatDateTime[/b:a0656394a1]

2 - [quote:a0656394a1=´$Grandaum$´]
e como eu crio um arq de log?
[/quote:a0656394a1]
existe várias maneiras de fazer isso eu gosto de trabalhar com applicationEvents e no OnException coloque:
var 
    NomeDoLog: string;
    Arquivo: TextFile;
begin
    NomeDoLog := ChangeFileExt(Application.Exename, ´.log´);
    AssignFile(Arquivo, NomeDoLog);
    if FileExists(NomeDoLog) then
      Append(arquivo)
    else
      ReWrite(arquivo);
    try
      WriteLn(arquivo, ´****************** ´+DateTimeToStr(Now)+ ´ ****************** ´);
      Writeln(arquivo, ´Erro Ocorrido: ´);
      Writeln(arquivo,E.Message);
      Writeln(arquivo, ´Janela: ´+ Screen.ActiveForm.Name + ´ Controle Ativo: ´+Screen.ActiveControl.Name);
      WriteLn(arquivo, ´----------------------------------------------------------------------´);
       MessageDlg(´Ocorreu o seguinte erro:´+e.Message,mtError,[mbOK],0);//aqui você pode persolizar a mensagem de erro
    finally
      CloseFile(arquivo)
    end;

espero ter ajudado :wink:[/quote:a0656394a1]



ele tah apresentando um erro nessa linha


Writeln(arquivo,E.Message);

Undeclared Indentifier.´E´


oq seria issu?


ele cria algum txt para mim como q eu vou ler o arq depois??

obrigado pela ajuda


GOSTEI 0
$grandaum$

$grandaum$

02/05/2006

1 - [quote:6c51f06cfc=´$Grandaum$´][quote:6c51f06cfc]Como faço para uma variavel receber o data no formato AAMMDD..não pode ter nenhum outro caracter
[/quote:6c51f06cfc]
use uma variável do tipo string, e sempre que for re-utiliza-la como data use a converção [b:6c51f06cfc]FormatDateTime[/b:6c51f06cfc]

2 - [quote:6c51f06cfc=´$Grandaum$´]
e como eu crio um arq de log?
[/quote:6c51f06cfc]
existe várias maneiras de fazer isso eu gosto de trabalhar com applicationEvents e no OnException coloque:
var 
    NomeDoLog: string;
    Arquivo: TextFile;
begin
    NomeDoLog := ChangeFileExt(Application.Exename, ´.log´);
    AssignFile(Arquivo, NomeDoLog);
    if FileExists(NomeDoLog) then
      Append(arquivo)
    else
      ReWrite(arquivo);
    try
      WriteLn(arquivo, ´****************** ´+DateTimeToStr(Now)+ ´ ****************** ´);
      Writeln(arquivo, ´Erro Ocorrido: ´);
      Writeln(arquivo,E.Message);
      Writeln(arquivo, ´Janela: ´+ Screen.ActiveForm.Name + ´ Controle Ativo: ´+Screen.ActiveControl.Name);
      WriteLn(arquivo, ´----------------------------------------------------------------------´);
       MessageDlg(´Ocorreu o seguinte erro:´+e.Message,mtError,[mbOK],0);//aqui você pode persolizar a mensagem de erro
    finally
      CloseFile(arquivo)
    end;

espero ter ajudado :wink:[/quote:6c51f06cfc]



ele tah apresentando um erro nessa linha


Writeln(arquivo,E.Message);

Undeclared Indentifier.´E´


oq seria issu?


ele cria algum txt para mim como q eu vou ler o arq depois??

obrigado pela ajuda


GOSTEI 0
$grandaum$

$grandaum$

02/05/2006

1 - [quote:8aa500d9a5=´$Grandaum$´][quote:8aa500d9a5]Como faço para uma variavel receber o data no formato AAMMDD..não pode ter nenhum outro caracter
[/quote:8aa500d9a5]
use uma variável do tipo string, e sempre que for re-utiliza-la como data use a converção [b:8aa500d9a5]FormatDateTime[/b:8aa500d9a5]

2 - [quote:8aa500d9a5=´$Grandaum$´]
e como eu crio um arq de log?
[/quote:8aa500d9a5]
existe várias maneiras de fazer isso eu gosto de trabalhar com applicationEvents e no OnException coloque:
var 
    NomeDoLog: string;
    Arquivo: TextFile;
begin
    NomeDoLog := ChangeFileExt(Application.Exename, ´.log´);
    AssignFile(Arquivo, NomeDoLog);
    if FileExists(NomeDoLog) then
      Append(arquivo)
    else
      ReWrite(arquivo);
    try
      WriteLn(arquivo, ´****************** ´+DateTimeToStr(Now)+ ´ ****************** ´);
      Writeln(arquivo, ´Erro Ocorrido: ´);
      Writeln(arquivo,E.Message);
      Writeln(arquivo, ´Janela: ´+ Screen.ActiveForm.Name + ´ Controle Ativo: ´+Screen.ActiveControl.Name);
      WriteLn(arquivo, ´----------------------------------------------------------------------´);
       MessageDlg(´Ocorreu o seguinte erro:´+e.Message,mtError,[mbOK],0);//aqui você pode persolizar a mensagem de erro
    finally
      CloseFile(arquivo)
    end;

espero ter ajudado :wink:[/quote:8aa500d9a5]



ele tah apresentando um erro nessa linha


Writeln(arquivo,E.Message);

Undeclared Indentifier.´E´


oq seria issu?


ele cria algum txt para mim como q eu vou ler o arq depois??

obrigado pela ajuda


GOSTEI 0
$grandaum$

$grandaum$

02/05/2006

Ano,Mes,Dia : Word; Arquivo : TextFile; MeuTexto : String; DecodeDate(Now, Ano, Mes, Dia) MeuTexto := IntToStr(Ano)+IntToStr(Mes)+IntToStr(Dia); Para criar o log AssignFile(Arquivo,MeuTexto);


Me desculpe mas eu naum entendi como uma variavel vai receber esse valor com a data jah transformada.......


GOSTEI 0
Edilcimar

Edilcimar

02/05/2006

esta variável meutexto, é para receber o aaaammdd e depois será usada para criar o arquivo log, basta usar no arquivo com rewrite ou append


GOSTEI 0
Paullsoftware

Paullsoftware

02/05/2006

aqui ta compilando normalmente...

procure pelo componente [b:f2cb5fd564]ApplicationEvents1[/b:f2cb5fd564] procure pelo Evento OnException e coloque o código informado...

procedure TForm1.ApplicationEvents1Exception(Sender: TObject;
  E: Exception);
var 
    NomeDoLog: string;
    Arquivo: TextFile;
begin
    NomeDoLog := ChangeFileExt(Application.Exename, ´.log´);
    AssignFile(Arquivo, NomeDoLog);
    if FileExists(NomeDoLog) then
      Append(arquivo)
    else
      ReWrite(arquivo);
    try
      WriteLn(arquivo, ´****************** ´+DateTimeToStr(Now)+ ´ ****************** ´);
      Writeln(arquivo, ´Erro Ocorrido: ´);
      Writeln(arquivo,E.Message);
      Writeln(arquivo, ´Janela: ´+ Screen.ActiveForm.Name + ´ Controle Ativo: ´+Screen.ActiveControl.Name);
      WriteLn(arquivo, ´----------------------------------------------------------------------´);
       MessageDlg(´Ocorreu o seguinte erro:´+e.Message,mtError,[mbOK],0);//aqui você pode persolizar a mensagem de erro
    finally
      CloseFile(arquivo)
    end;

end;


vamos tertar...
só pra testar podemos forçar uma excerção coloque um Edit e um botão clique duas dezes sobre ele e coloque:
IntToStr(Edit1.text);

depois que for gerada a exceção será criado um arquivo de log dentro da página do seu projeto com o nome do seu exe.log


GOSTEI 0
POSTAR