Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: Datei öffnen, die von einem anderen Prozess benutzt wird

  Alt 18. Mai 2010, 09:16
TFileStream (wird auch bei LoadFromFile in TStrings/TStringList) verwendet, läßt beim Auslesen nur Lesezugriffe anderer Anwendungen zu.
Diese Datei ist bei dir aber im Schreibzugriff geöffnet.

Lösung: THandleStream + MSDN-Library durchsuchenCreateFile und dort fremde Schreibrechte erlauben
(ShareMode = FILE_SHARE_READ or FILE_SHARE_WRITE) und dann TStringList+LoadFromStream
(bei TFileStream fehlt das FILE_SHARE_WRITE ... so wird sichergestellt, daß eine Datei nicht wärend des Lesen verändert wird und somit die Daten konsistent bleiben)

PS: TStringStream hättes du nicht benötigt, da TStringList auch ein LoadFromStream kennt und somit die Daten unnötiger Weise umherkopiert werden.
$2B or not $2B
  Mit Zitat antworten Zitat