Autor Beitrag
lorusinaqua
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 29.12.09 19:43 
Hallo,

ich bin leider noch Anfänger in Delphi und hab deshalb nicht wirklich viel drauf.
Ich schreibe zur Zeit ein Programm, dessen Daten in einer .txt-Datei gespeichert werden.
Da dies ein Test ist der von mehreren Nutzern gleichzeitig durchgeführt wird kann es zu Komplikationen beim
schreiben dieser Daten kommen, wenn die Nutzer zufällig genau im selben Moment mit dem Programm fertig sind.
Kann man dies i.wie "umgehen bzw. verhindern??
Astat
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 75
Erhaltene Danke: 1

Windows 2000
D6, D7, D2007, Lazarus
BeitragVerfasst: Di 29.12.09 21:48 
user profile iconlorusinaqua hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,

ich bin leider noch Anfänger in Delphi und hab deshalb nicht wirklich viel drauf.
Ich schreibe zur Zeit ein Programm, dessen Daten in einer .txt-Datei gespeichert werden.
Da dies ein Test ist der von mehreren Nutzern gleichzeitig durchgeführt wird kann es zu Komplikationen beim
schreiben dieser Daten kommen, wenn die Nutzer zufällig genau im selben Moment mit dem Programm fertig sind.
Kann man dies i.wie "umgehen bzw. verhindern??


Hallo lorusinaqua, folgenden Code kannst Du wie folgt verwenden, bzw. anpassen.
1. Du hast zentrales File, in das Du schreiben willst.
2. Du erstellst die Daten für den Test im Memory, oder in lokaler Temp Datei.
3. Ist der Test lokal fertig bearbeitet, versuchst du die Datei exclusive zu öffnen,
sollte dies nicht gehen, weil gerade von anderem User geöffnet
solange versuchen bis das Abspeichern funktioniert.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure WriteToFile;
var
  FileStream: TFileStream;
begin
  try
    FileStream := TFileStream.Create('c:\test.txt', fmOpenReadWrite or fmShareExclusive);
    FileStream.Write(DieTestDaten);
    FileStream.Free;
  except
    WriteToFile;
  end;
end;


lg. Astat