Autor Beitrag
Adrian
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 314



BeitragVerfasst: Do 10.07.03 15:27 
Hallo zusammen!

Die folgende Prozedur wird durch einen Timer alle 5 Sekunden ausgelöst:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure TForm1.Speichern(Sender: TObject);
var
  i, n : Integer;
  Gut : Boolean;
begin
  Gut:=False;// Damit ggfs. gleichlautende Datei überschrieben wird
  Zeile[z]:=DateToStr(Date)+#9+TimeToStr(Time)+#9;
  for i:=1 to 7 do
  begin
    Zeile[z]:=Zeile[z]+format('%5.2f',[Temperatur[i]])+#9;
  end// von i:=1 to 7
  inc(z,1);
  if z=13 then
  begin
    Append(TDatei);
    for n:=1 to 12 do
    begin
      Writeln(TDatei,Zeile[n]);
    end;// von n:=1
    CloseFile(TDatei);
// Sicherung der Meßwertdatei    
    CopyFile(PChar(OrgDatei),PChar(BakDatei),Gut);
  end;// von z=13
  if z=13 then z:=1;
end;

In unregelmäßigen Abständen wird ein doppelter Schreibvorgang ausgelöst, d.h. zwei Zeilen mit gleichem Inhalt - die Länge liegt bei weniger als 80 Zeichen - stehen unmittelbar hintereinander. Das Problem tritt bei mehreren PCs unterschiedlicher Leistungfähigkeit auf. Hat jemand einen Hinweis, woran das liegen kann?

Gruß,

Adrian
Moritz M.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1672



BeitragVerfasst: Do 10.07.03 19:27 
Du könntest es versuchen, in dem du nach CloseFile ein Application.ProcessMessages reinhaust.