Entwickler-Ecke
Dateizugriff - Gleichzeitiger Dateizugriff
Peti - Di 24.09.02 08:49
Titel: Gleichzeitiger Dateizugriff
Hallo zusammen!
Ich habe ein Problem damit, dass ein Programm, welches im Netzwerk auf vielen PCs gleichzeitig läuft, in relativ kurzen Zeitabständen kurze Statusmeldungen in eine ASCI-Datei schreibt (Log). Nun habe ich das Problem, dass der möglicherweise gleichzeitige schreibende und/oder lesende Dateizugriff (mit Assign/Reset/Rewrite usw.) immer wieder zu Problemen führt.
Gibt es eine Möglichkeit, dies zu verhindern? Bieten Streams da bessere Möglichkeiten - oder gibt es auch bei "herkömmlichen" Dateioperationen eine Möglichkeit, gleichzeitig auf Dateien zuzugreifen???
Danke für Tips,
Gruß,
Peti
O'rallY - Di 24.09.02 19:40
Es ist meines Wissens nicht möglich, dass mehere Prozesse gleichzeitig in eine Datei schreiben können ( da es sonst Fehler gäbe), wohl aber können sie gleichzeitig lesend zugreifen. Da ich nur mit Streams arbeite kann ich dir auch nur ein Beispiel dafür liefern:
Quelltext
1: 2: 3: 4: 5:
| ... fs: TFileStream; ... fs := TFileStream.Create('C:\afile.txt', fmCreate or fmShareDenyWrite ); ... |
fmShareDenyWrite bewirkt hier, dass immer nur ein Prozess auf die Datei zugreifen kann (schreibend, lesend ist möglich). Eine Liste möglicher Flags gibt's z.B. hier:
http://homepages.borland.com/efg2lab/Library/Delphi/IO/StreamIO.htm. Hab ich dir weiterhelfen können?
Peti - Mi 25.09.02 10:09
Super, danke für die Info!
Ich arbeite jetzt mit Streams und das funktioniert einwandfrei....
Gruß,
Peti
O'rallY - Mi 25.09.02 13:34
Freut mich, dass ich dir helfen konnte *g* :wink: .
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!