Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ReadOnly (https://www.delphipraxis.net/93405-readonly.html)

Stillmatic 5. Jun 2007 14:03


ReadOnly
 
Gibt es eine möglichkeit eine Typisierte Datei im NurLesen Modus zu öffnen??

Habe nämlcih vor eine Schreibgeschützte Datei zu öffnen!
Code:
if UFileTools.Schreibschutz then
    öffnenNurLesend
 else
     Reset(Speicher);

DeddyH 5. Jun 2007 14:04

Re: ReadOnly
 
Schau mal unter FileMode.

Muetze1 5. Jun 2007 14:04

Re: ReadOnly
 
Schau dir dazu mal die globale Variable FileMode an. In der Hilfe stehen die dazu passenden Konstanten.

Tyrael Y. 5. Jun 2007 14:08

Re: ReadOnly
 
zB.

das fmOpenRead ist zB. dieser "suspekte" FileMode ;)
Delphi-Quellcode:
  F := TFileStream.Create(Dateiname, fmOpenRead);
  try
   ...

  finally
    F.Free;
  end;

Stillmatic 5. Jun 2007 14:38

Re: ReadOnly
 
Delphi-Quellcode:
  AssignFile(Speicher,Dateiname);
  if FileExists(Dateiname) then
   Begin
    {Wenn Schreibgeschützt --> dann Fragen und öffnen}
    if UDateiEigenschaften.Schreibschutz then
     Begin
      System.FileMode := fmOpenRead;
      Reset(Speicher);
     end
      else
     Reset(Speicher);
   end else
     Rewrite(Speicher);
end;
Habe es jetzt so gemacht das Wenn eine Datei Schreibgeschützt ist erstmal in der UnitDateiEigenschaften die Funktion
Schreibschutz aufgerufen wird und gefragt wir ob der Schreibschutz entfernt werden soll!
Die Funktion liefert true wenn am ende der Funktion noch ein Schreibschutz besteht und somit öffne ich die Datei im ReadOnly Modus!

Ist die umsetzung so richtig??
Ich denke man muss jetzt nur noch irgendwann den FileMode wieder auf den Standart setzen oder??

DeddyH 5. Jun 2007 14:45

Re: ReadOnly
 
Ähem... mit dem Setzen von FileMode wird kein Schreibschutz entfernt, sondern der Dateizugriff auf NurLesen gesetzt :warn:

Stillmatic 5. Jun 2007 14:53

Re: ReadOnly
 
Den Schreibschutz entferne ich auch in einer extra Funktion!
(ist im Code nicht zu sehen)!

DeddyH 5. Jun 2007 14:58

Re: ReadOnly
 
Wieso nicht so?
Delphi-Quellcode:
  AssignFile(Speicher,Dateiname);
  if FileExists(Dateiname) then
   Begin
     System.FileMode := 0;
     Reset(Speicher);
   end else
     Rewrite(Speicher);

Stillmatic 5. Jun 2007 15:05

Re: ReadOnly
 
Zitat:

Zitat von DeddyH
Wieso nicht so?
Delphi-Quellcode:
  AssignFile(Speicher,Dateiname);
  if FileExists(Dateiname) then
   Begin
     System.FileMode := 0;
     Reset(Speicher);
   end else
     Rewrite(Speicher);


So hab ich es doch im Prinzip, nur das ich zwischen dem then else Block noch Prüfe ob die Datei schreibgeschützt ist, und wenn der Schreibschutz dann noch besteht soll er mit FileMode 0 arbeiten!

DeddyH 5. Jun 2007 15:14

Re: ReadOnly
 
Wenn Du die Datei sowieso nur lesen willst, ist es doch egal, ob sie schreibgeschützt ist, oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz