Estou com umas dificuldades em fazer a criação de um ficheiro de log, eu estou a desenvolver um projecto de segurança nesse projecto tenho um cofre que abre e fecha atravez do programa em delphi o que pretendia era criar um log a dizer se a porta do cofre tinha sido aberta ou fechada, a que horas, e em que dia, e depois também queria fazer outro para dois sensores que tenho, para saber quando foram desligados e ligados e ainda outro para saber a data e hora do disparo do alarme...
Como controlo todos os sensores e a porta do cofre atravez da paralela aqui vos deixo o esquema de bits que tenho:
Setbit(0)=Fazer motor andar para um lado
Setbit(1)=Fazer motor andar para o outro lado
Setbit(5)=Saida para a buzina(alarme)
S4=Sensor1
S5=Sensor2
Aqui fica um pedaço do codigo das minhas esperiencias a tentar criar os log files...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IniFiles;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
ColorDialog1: TColorDialog;
Edit1: TEdit;
GroupBox1: TGroupBox;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
NomeDoLog: String;
Arquivo: TextFile;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
Ini: TIniFile;
begin
NomeDoLog := 'historico.hst';
AssignFile(Arquivo, NomeDoLog);
if FileExists(NomeDoLog) then
Append(arquivo) { se existir, apenas adiciona linhas }
else
ReWrite(arquivo); { cria um novo se não existir }
try
WriteLn(arquivo, '------------------------');
WriteLn(arquivo, 'Aqui Nesta Linha Queria Colocar a hora e a data');
WriteLn(arquivo, 'Aqui O estado, ou seja se a porta do cofre foi aberta ou fechada');
WriteLn(arquivo, '------------------------');
WriteLn(arquivo, 'Aqui Nesta Linha Queria Colocar a hora e a data');
WriteLn(arquivo, 'Aqui o estado dos sensores, se estes tinhas sido desligados');
WriteLn(arquivo, '------------------------');
WriteLn(arquivo, 'Aqui Nesta Linha Queria Colocar a hora e a data');
WriteLn(arquivo, 'O alarme foi accionado');
finally
CloseFile(arquivo)
end;
// isto convem por no OnShow
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'config.ini');
Self.Color := StringToColor(Ini.ReadString('CONF', 'COR', '$00FFFFFF'));
// este $00FFFFFF é só um default caso o ficheiro n exista
FreeAndNil(Ini);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
NomeDoLog:='historico.hst';
if FileExists(NomeDoLog) then memo1.Lines.LoadFromFile('historico.hst');
end;
procedure TForm1.Button3Click(Sender: TObject);
var
Ini: TIniFile;
begin
if colordialog1.Execute then
begin
form1.Color:=colordialog1.Color;
groupbox1.Color:=colordialog1.Color;
edit1.Text:=ColorToString(colordialog1.color);
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'config.ini');
Ini.WriteString('CONF', 'COR', edit1.Text);
FreeAndNil(Ini);
end;
end;
end.
Pergunta
Monky
Boas Pessoal...
Estou com umas dificuldades em fazer a criação de um ficheiro de log, eu estou a desenvolver um projecto de segurança nesse projecto tenho um cofre que abre e fecha atravez do programa em delphi o que pretendia era criar um log a dizer se a porta do cofre tinha sido aberta ou fechada, a que horas, e em que dia, e depois também queria fazer outro para dois sensores que tenho, para saber quando foram desligados e ligados e ainda outro para saber a data e hora do disparo do alarme...
Como controlo todos os sensores e a porta do cofre atravez da paralela aqui vos deixo o esquema de bits que tenho:
Setbit(0)=Fazer motor andar para um lado
Setbit(1)=Fazer motor andar para o outro lado
Setbit(5)=Saida para a buzina(alarme)
S4=Sensor1
S5=Sensor2
Aqui fica um pedaço do codigo das minhas esperiencias a tentar criar os log files...
Editado por MonkyLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.