Files
SignauxComplexes/UnitSimule.pas
f1iwq2 11cc298114 V1.3
2020-03-01 18:15:30 +01:00

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.