Entwickler-Ecke

Dateizugriff - Readonly


Martin-X - Do 08.07.04 16:41
Titel: Readonly
Hi ihr

Wenn ich eine Datei mit reset oder rewrite öffne, dann hab ich ja Lese- und Schreibrechte, ist ja auch klar. Wenn ich eine Datei nur lesen will (z.B. mit reset)..wie hab ich das zu bewerkstelligen ? Der Hintergrund ist, dass von einer Datei gelesen werden, auf die man über die Sicherheitseinstellungen nur Leserechte hat.

Vielen Dank schon mal

Gruß Martin


jaenicke - Do 08.07.04 16:45

Bei AssignFile den Mode auf fmOpenRead setzen. Wenn dabei auch noch andere drauf zugreifen dürfen oder nicht gibts da noch Exclusive-Dinger etc. (Hilfe konsultieren)


SvenAbeln - Do 08.07.04 17:04

Hallo,

bei AssignFile kann man den Mode leider nicht setzen.


Die Hilfe sagt zu Reset
Zitat:

In Delphi öffnet Reset die in F angegebene externe Datei in dem Modus, der in der globalen Variable FileMode festgelegt ist.
[...]
Warnung: Der Standardwert von FileMode ist 2 (Lesen/Schreiben). Auch wenn die Datei nur gelesen werden soll, verursacht der Standardwert von FileMode (Schreib-/Lesezugriff), dass das Öffnen einer schreibgeschützten Datei fehlschlägt.


Also Filemode auf den gewünschten Modus setzten.


jaenicke - Do 08.07.04 17:10

Ok, ok, :oops:

dann musst du halt

Delphi-Quelltext
1:
FileMode:=fmOpenRead;                    

benutzen (wie's da steht)

Solltest allerdings den alten Inhalt von FileMode sichern und nach deiner Dateiöffnung wiederherstellen...


Martin-X - Do 08.07.04 17:16

Hi ihr

ich dachte jahrelang, das ginge nicht.. und ihr erklärts mir in 2 Minuten.. :shock:

Vielen Dank


jaenicke - Do 08.07.04 17:18

Nichts ist unmöglich, Delphi... :mrgreen:


SvenAbeln - Do 08.07.04 17:19

Manchmal kann ein kurzer Blick in die Delph Hilfe doch weiter helfen :wink:


jaenicke - Mo 12.07.04 11:57

Und nur noch nebenbei:
Ich hatte das setzen von FileMode mit TFileStream verwechselt, da ist das nämlich gleich im Konstruktor möglich (und nur da). :wink: