AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ini.writestring abfangen möglich?

Ein Thema von Ajintaro · begonnen am 24. Jan 2006 · letzter Beitrag vom 25. Jan 2006
Antwort Antwort
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#1

ini.writestring abfangen möglich?

  Alt 24. Jan 2006, 13:46
Hallo Coder!

Ich hab nur 2 harmlose aber nervige Problemchen:

Delphi-Quellcode:
//--> INIFILE
    try

    Ini:=TIniFile.Create(logfile);
    ini.WriteString('DZE','Version',version);
    Ini.WriteString('DZE','Session started',DateTimeToStr(Now)+ ' Uhr');

  finally
    Ini.Free;
 end;
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?

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:
begin
  if SetFileAttributes('C:\AutoExec.bat',
                       FILE_ATTRIBUTE_NORMAL) then
    Showmessage('Attribut wurde geändert')
  else
    Showmessage('Attribut wurde nicht geändert');
end;
Der String 'C:\Autoexec.bat' wird akzeptiert, aber meine Variable logfile wird angemotzt.

Das Logfile ist ein String
logfile:=GetWinDir+'\'+inifile;

Lieg ich da völlig daneben?
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: ini.writestring abfangen möglich?

  Alt 24. Jan 2006, 14:13
Hallo,

Zitat von Ajintaro:
...nicht weiss ob es ein Typecast von String zu PAnsiChar gibt:
gibt es, indem Du den String in einen PChar wandelst:
Delphi-Quellcode:
  logfile:=GetWinDir+'\'+inifile;
  if SetFileAttributes(PChar(logfile), FILE_ATTRIBUTE_NORMAL) then
  ...
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#3

Re: ini.writestring abfangen möglich?

  Alt 24. Jan 2006, 14:16
Funktioniert Delphi-Referenz durchsuchentry...except bei INIs nicht?

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#4

Re: ini.writestring abfangen möglich?

  Alt 24. Jan 2006, 16:38
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)
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#5

Re: ini.writestring abfangen möglich?

  Alt 24. Jan 2006, 16:50
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]
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: ini.writestring abfangen möglich?

  Alt 24. Jan 2006, 18:15
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
  Mit Zitat antworten Zitat
Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#7

Re: ini.writestring abfangen möglich?

  Alt 25. Jan 2006, 11:04
Zitat von marabu:
Hallo Ajintaro,
du arbeitest hoffentlich mit TMemIniFile.
Hmm eigentlich arbeite ich mit TIniFile. Ich muss mal nachschlagen was genau bzw worin der Unterschied zum TMemIniFile ist.
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz