blockread einer read only Datei

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

blockread einer read only Datei

Beitragvon Martin V » 22. Nov 2018, 00:26 blockread einer read only Datei

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.
Martin V
 
Beiträge: 125
Registriert: 30. Jan 2010, 19:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon indianer-frank » 22. Nov 2018, 08:38 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');
 
indianer-frank
 
Beiträge: 134
Registriert: 30. Nov 2008, 21:53

Beitragvon Socke » 22. Nov 2018, 11:22 Re: blockread einer read only Datei

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
Socke
Lazarusforum e. V.
 
Beiträge: 2608
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon Martin V » 27. Nov 2018, 23:18 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.
Martin V
 
Beiträge: 125
Registriert: 30. Jan 2010, 19:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon siro » 28. Nov 2018, 08:21 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
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
siro
 
Beiträge: 344
Registriert: 23. Aug 2016, 13:25
Wohnort: Berlin
OS, Lazarus, FPC: Windows 7 und Windows 10 | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried