Entwickler-Ecke

Dateizugriff - Schreiben von Daten durch mehrere Nutzer zu gleicher Zeit


lorusinaqua - Di 29.12.09 19:43
Titel: Schreiben von Daten durch mehrere Nutzer zu gleicher Zeit
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 - 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.


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