Registriert seit: 29. Mär 2009
439 Beiträge
|
AW: Simultaner Zugriff auf Datei
3. Jun 2014, 08:16
Irgendwie verstehe ich die Diskussion nicht. Selbstverständlich kann man eine Datei zum Lesen öffnen, auch wenn sie gerade geschrieben wird. Es können sogar mehrere Prozesse die Datei zum Schreiben öffnen. Dazu muss man TFilestreams mit den korrekten Parametern erzeugen und schon geht das wunderbar.
Zusätzlich sollte man sich einen Transaktions-Mechanismus ausdenken, der sicher stellt, dass die Daten konsistent sind. Aber das war ja hier nicht gefragt. Natürlich darf die Datei von keinem Prozess mit Exklusiv-Rechten geöffnet sein.
Anbei habe ich eine kleine Demo erzeugt. Dieses Programm kann mehrmals gestartet werden und alle können fröhlich auf der Datei schreiben und lesen.
Hinweis: Bei Delphis älter als Delphi 2010 (vielleicht auch 2009?) hat fmCreate noch keinen Share-Parameter erlaubt. Deshalb gibt es im Demo einen etwas wirren Workaround dafür. D.h. Wenn die Datei noch nicht existiert wird die Datei erzeugt und danach nochmal geschlossen. Ab Delphi 2010 kann man sich das sparen.
Geändert von samso ( 3. Jun 2014 um 20:09 Uhr)
Grund: typo
|