blockread einer read only Datei

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Martin V
Beiträge: 142
Registriert: Sa 30. Jan 2010, 19:35
OS, Lazarus, FPC: Linux64, Wiindows32, MacOS, Lazarus 1.8.2
CPU-Target: xxBit

blockread einer read only Datei

Beitrag von Martin V »

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.

indianer-frank
Beiträge: 134
Registriert: So 30. Nov 2008, 21:53

Re: blockread einer read only Datei

Beitrag von indianer-frank »

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');
 

Socke
Lazarusforum e. V.
Beiträge: 3158
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

Beitrag von Socke »

Martin V hat geschrieben:Es ist natürlich Windows, bei Unix gibt es das read only flag nicht.

Du hast aber auch unter *nix Dateiberechtigungen. Da kannst du auch das Lesen verbieten. (chmod a-w Dateiname)
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Martin V
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

Beitrag von Martin V »

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.

siro
Beiträge: 732
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: blockread einer read only Datei

Beitrag von siro »

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
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Antworten