Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schreib-Zugriff auf Datei (https://www.delphipraxis.net/59005-schreib-zugriff-auf-datei.html)

MasterEvil 15. Dez 2005 18:44


Schreib-Zugriff auf Datei
 
Hi,

hab ein kleines Problem, für das ich keine "schöne" Lösung finde bislang.

Und zwar habe ich ein Programm, welches eine Datei öffnet, den Inhalt ausliest, dann wieder schließt.
Dann kann man Sachen an dem Inhalt ändern und irgendwann dann wieder zurück speichern.

Nun will ich, dass wenn jemand anderes in der Zeit (solange man die Datei "offen" hat) die Datei mit meinem prog öffnen will nur Lese-Rechte bekommt und nicht speichern kann, da sich die beiden ja sonst gegenseitig überschreiben.

Gibt es da gute Lösungsansätze?

Will die Datei eigentlich nicht die ganze Zeit offen halten.
Und es sollte möglichst auch ein Schutz sein, den Windows eventuell wieder selber wegbekommt (falls das Prog zum Beispiel zwischendurch abstürzt, dann würde die Datei ja Schreibgeschützt bleiben).

greetz,
Steffen

marabu 15. Dez 2005 19:32

Re: Schreib-Zugriff auf Datei
 
Hallo Steffen,

setze doch die Datei nach dem Einlesen und bis zum Zurückschreiben einfach auf ReadOnly:

Delphi-Quellcode:
uses
  SysUtils;

begin
  Memo.Lines.LoadFromFile(fileName);
  if FileIsReadOnly(fileName)
    then // tell user
    else FileSetReadOnly(fileName, true);
end;
Grüße vom marabu

MasterEvil 15. Dez 2005 21:18

Re: Schreib-Zugriff auf Datei
 
thx, die idee ist ganz gut.

Windows setzt dann zwar die Rechte nicht automatisch zurück, aber falls das Prog abstürzt kann es so trotzdem noch jeder machen :)

danke nochma,
Steffen

ichbins 15. Dez 2005 21:28

Re: Schreib-Zugriff auf Datei
 
Aber das andere Programm könnte die Datei sofort wieder zurücksetzten mit filesetreadonly(false)...

Luckie 15. Dez 2005 23:26

Re: Schreib-Zugriff auf Datei
 
Öffne die Datei exklusiv.

MasterEvil 16. Dez 2005 07:09

Re: Schreib-Zugriff auf Datei
 
@ichbins:
da mein prog das einzige ist, was die Datei öffnen kann, ist das kein problem ;)
Ist für meinen ProjectManager.

@Luckie:
Was genau heisst das?
Und wie macht mans?
:)

greetz
Steffen

marabu 16. Dez 2005 07:18

Re: Schreib-Zugriff auf Datei
 
Hallo Steffen,

exklusives Öffnen verhindert, dass ein anderer Prozess auf die Datei zugreifen kann, während du sie offen hältst. In der Online-Hilfe findest du Informationen dazu unter TFileStream.Create. Wenn du die Datei, wie in meinem Beispiel-Code, per LoadFromFile lädst, dann hast du die Datei exklusiv geöffnet und nach dem Lesen sofort wieder geschlossen.

Grüße vom marabu

MasterEvil 16. Dez 2005 07:42

Re: Schreib-Zugriff auf Datei
 
ja, das dachte ich mir schon.
Nur muss ich sie ja dann offen halten, damit das so bleibt.
Ansonsten ist das ja gleich wieder weg.

greetz
Steffen

tomsel 16. Dez 2005 08:24

Re: Schreib-Zugriff auf Datei
 
Wäre es nicht denkbar, mit einer temporären Kontrolldatei zu arbeiten, die statt der eigentlichen Datei exklusiv geöffnet wird. Dann bleibt der Zugriff auf die Datei weiterhin möglich, den Schreibschutz musst Du dabei selbst steuern.

MasterEvil 16. Dez 2005 16:44

Re: Schreib-Zugriff auf Datei
 
Ja, hatte ich auch überlegt, finde nur eine zusätzliche Datei sehr unschön.
Das soll nur eine Datei bleiben ;)

greetz
Steffen


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 Uhr.
Seite 1 von 2  1 2      

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