AW: Simultaner Zugriff auf Datei
Eventuell kannst Du die Datei auch kopieren und nach dem Lesen löscht du die Datei wieder.
|
AW: Simultaner Zugriff auf Datei
Liste der Anhänge anzeigen (Anzahl: 1)
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. |
AW: Simultaner Zugriff auf Datei
Wenn ich eine Datei lesen will, die von einem anderen Prozess blockiert wird, kopiere ich mir die Datei und öffne die Kopie. Das klappt fast immer (außer bei SQL-Server).
|
AW: Simultaner Zugriff auf Datei
Zitat:
Die Dokumentation zu TFileStream.Create(..) fand ich (vor allem in der deutschen Fassung) auch nicht grade einfach verständlich. Aber wahrscheinlich sind's die Viren in meinem Kopf :vernupft: Gutes Beispiel. :) |
AW: Simultaner Zugriff auf Datei
Aha, dieser Nebensatz scheint entscheidend zu sein.
Zitat:
|
AW: Simultaner Zugriff auf Datei
Zitat:
Wenn des andere Programm keine Leserchte gewährt, dann kann man die Datei weder lesen noch kopieren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz