Ich verwende sehr einfachen Programmcode mit
dat : file of byte;
assign (dat, 'Dateiname'); reset (dat);
und dann blockread.
Wenn die Datei read only ist, dann schlägt blockread fehl (IOresult <> 0). Ich habe schon system.filemode := fmInput vor reset gesetzt, ohne Wirkung. Wie mache ich es richtig?
Es ist natürlich Windows, bei Unix gibt es das read only flag nicht.
blockread einer read only Datei
-
- Beiträge: 134
- Registriert: So 30. Nov 2008, 21:53
Re: blockread einer read only Datei
Versuch mal
Code: Alles auswählen
var
dat : file of byte;
...
{$i-}
FileMode := 0;
assign (dat, 'Dateiname');
reset(dat);
if IOResult <> 0 then writeln('Reset error');
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: blockread einer read only Datei
Du hast aber auch unter *nix Dateiberechtigungen. Da kannst du auch das Lesen verbieten. (chmod a-w Dateiname)Martin V hat geschrieben:Es ist natürlich Windows, bei Unix gibt es das read only flag nicht.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 142
- Registriert: Sa 30. Jan 2010, 19:35
- OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
- CPU-Target: xxBit
Re: blockread einer read only Datei
Das Problem ist gar nicht "blockread" spezifisch, es tritt auch bei "read" auf. Ich habe mich jetzt erinnert, dass ich das Problem vor Jahren schon einmal gelöst habe:
Filemode := fmOpenRead or fmShareDenyNone
und um zurück zum Defaultwert nach "reset" zu wechseln:
Filemode := fmOpenReadWrite
Das war's.
Filemode := fmOpenRead or fmShareDenyNone
und um zurück zum Defaultwert nach "reset" zu wechseln:
Filemode := fmOpenReadWrite
Das war's.
-
- Beiträge: 758
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: blockread einer read only Datei
Supi Info Martin,
ich hatte das Problem auch schon, gleich mal in meine Lazarus Doku eingetragen....Danke
Hier ist eine gute Übersicht:
http://docs.embarcadero.com/products/ra ... eOpen.html
Siro
ich hatte das Problem auch schon, gleich mal in meine Lazarus Doku eingetragen....Danke
Hier ist eine gute Übersicht:
http://docs.embarcadero.com/products/ra ... eOpen.html
Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...