109 lines
2.6 KiB
ObjectPascal
109 lines
2.6 KiB
ObjectPascal
unit UnitSimule;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, StdCtrls, UnitPrinc;
|
|
|
|
type
|
|
TFormSimulation = class(TForm)
|
|
ButtonCharge: TButton;
|
|
OpenDialog: TOpenDialog;
|
|
EditIntervalle: TEdit;
|
|
Label1: TLabel;
|
|
CheckBoxRapide: TCheckBox;
|
|
procedure ButtonChargeClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure EditIntervalleKeyPress(Sender: TObject; var Key: Char);
|
|
private
|
|
{ Déclarations privées }
|
|
public
|
|
{ Déclarations publiques }
|
|
end;
|
|
|
|
var
|
|
FormSimulation: TFormSimulation;
|
|
Intervalle : integer;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TFormSimulation.ButtonChargeClick(Sender: TObject);
|
|
var s : string;
|
|
fte : textFile;
|
|
i,k,erreur : integer;
|
|
sortie : boolean;
|
|
begin
|
|
s:=GetCurrentDir;
|
|
s:='C:\Program Files (x86)\Borland\Delphi7\Projects\Signaux_complexes_GL';
|
|
OpenDialog.InitialDir:=s;
|
|
OpenDialog.DefaultExt:='txt';
|
|
OpenDialog.Filter:='Fichiers texte (*.txt)|*.txt|Tous fichiers (*.*)|*.*';
|
|
if openDialog.Execute then
|
|
begin
|
|
s:=openDialog.FileName;
|
|
assignFile(fte,s);
|
|
reset(fte);
|
|
index_simule:=1;
|
|
repeat
|
|
readln(fte,s);
|
|
i:=pos('Tick=',s);
|
|
|
|
if i<>0 then
|
|
begin
|
|
Delete(s,1,i+4);
|
|
val(s,k,erreur);
|
|
if intervalle<>0 then k:=Index_Simule*Intervalle*10+tick+80 else // démarre dans 8s
|
|
k:=Index_Simule+tick+80 ;
|
|
Tablo_simule[index_simule].tick:=k;
|
|
i:=pos('Det=',s);
|
|
if i<>0 then
|
|
begin
|
|
Delete(s,1,i+3);
|
|
val(s,k,erreur);
|
|
Tablo_simule[index_simule].detecteur:=k;
|
|
i:=pos('=',s);
|
|
if i<>0 then
|
|
begin
|
|
Delete(s,1,i);
|
|
val(s,k,erreur);
|
|
Tablo_simule[index_simule].etat:=k;
|
|
|
|
s:='Tick='+intToSTR(Tablo_simule[index_simule].tick)+
|
|
' Detecteur='+intToSTR(Tablo_simule[index_simule].detecteur)+
|
|
'='+intToSTR(Tablo_simule[index_simule].etat);
|
|
Affiche(s,ClLime);
|
|
|
|
inc(index_simule);
|
|
end;
|
|
end;
|
|
end;
|
|
sortie:=eof(fte) or (index_simule>199);
|
|
until sortie ;
|
|
Affiche('Intervalle='+intToSTR(intervalle),clyellow);
|
|
dec(index_simule);
|
|
closeFile(fte);
|
|
FormSimulation.Close;
|
|
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TFormSimulation.FormCreate(Sender: TObject);
|
|
begin
|
|
Intervalle:=1;
|
|
EditIntervalle.Text:=IntToSTR(Intervalle);
|
|
end;
|
|
|
|
|
|
procedure TFormSimulation.EditIntervalleKeyPress(Sender: TObject;var Key: Char);
|
|
var erreur : integer;
|
|
begin
|
|
Val(EditIntervalle.Text,intervalle,erreur);
|
|
if (intervalle<0) then Intervalle:=1;
|
|
end;
|
|
|
|
end.
|