Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

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

  Alt 18. Mai 2010, 08: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat