![]() |
ini.writestring abfangen möglich?
Hallo Coder!
Ich hab nur 2 harmlose aber nervige Problemchen:
Delphi-Quellcode:
Wenn das logfile schreibgeschützt ist, fliegt die Routine auf die Nase und der Anwender bekommt eine hässliche Fehlermeldung. Kann man das nicht vorher abfangen?
//--> INIFILE
try Ini:=TIniFile.Create(logfile); ini.WriteString('DZE','Version',version); Ini.WriteString('DZE','Session started',DateTimeToStr(Now)+ ' Uhr'); finally Ini.Free; end; Versucht habe ich es mit einer Überprüfung des FileAtrributes. Aber das Setzen des Fileattributes geht net richtig weil ich nicht weiss ob es ein Typecast von String zu PAnsiChar gibt:
Delphi-Quellcode:
Der String 'C:\Autoexec.bat' wird akzeptiert, aber meine Variable logfile wird angemotzt.
begin
if SetFileAttributes('C:\AutoExec.bat', FILE_ATTRIBUTE_NORMAL) then Showmessage('Attribut wurde geändert') else Showmessage('Attribut wurde nicht geändert'); end; Das Logfile ist ein String logfile:=GetWinDir+'\'+inifile; Lieg ich da völlig daneben? |
Re: ini.writestring abfangen möglich?
Hallo,
Zitat:
Delphi-Quellcode:
logfile:=GetWinDir+'\'+inifile;
if SetFileAttributes(PChar(logfile), FILE_ATTRIBUTE_NORMAL) then ... |
Re: ini.writestring abfangen möglich?
|
Re: ini.writestring abfangen möglich?
Typenumwandlung mit PChar hat funktioniert!
Natürlich kann man try except auch bei ini files anwenden, aber die error Message des Systems (kann schreibgeschützte Datei nicht schreiben) kommt bevor mein finally Block abgearbeitet wird - ich möchte ja im Falle eines Fehlers den Speicher wieder freigeben (ini.free) |
Re: ini.writestring abfangen möglich?
Ich meinte Try-except im try-finally. Der Finally-Block wird trotzdem auf jeden Fall ausgeführt, soweit ich weiß.
Gruß, ManuMF [edit]vertippt[/edit] |
Re: ini.writestring abfangen möglich?
Hallo Ajintaro,
du arbeitest hoffentlich mit TMemIniFile. Den Schreibschutz beim Zurückschreiben mit .UpdateFile() kannst du leicht mit der Funktion FileIsReadOnly() feststellen - es muss nicht erst knallen. Grüße vom marabu |
Re: ini.writestring abfangen möglich?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:18 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 by Thomas Breitkreuz