Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi IniFile wird nicht erstellt (https://www.delphipraxis.net/126930-inifile-wird-nicht-erstellt.html)

Matze 5. Jan 2009 11:48

Re: Problem mit IniFile
 
Angenommen du hast Schreibrechte. Stimmt denn der Pfad, wenn du ihn dir einmal ausgeben lässt?

Ich würde die Datei übrigens nur so lange öffnen wie du sie brauchst und Ressourcenschutzblöcke verwenden:

Delphi-Quellcode:
// auslesen:
Ini := TIniFile.Create(ExtractFilePath(Application.Exename) + 'Config.ini');
try
  Workspace := Ini.ReadInteger('Colors', 'Workspace', PaintGreen);
finally
  FreeAndNil(Ini);
end;

// schreiben:
Ini := TIniFile.Create(ExtractFilePath(Application.Exename) + 'Config.ini');
try
  Workspace := Ini.WriteInteger('Colors', 'Workspace', Workspace);
finally
  FreeAndNil(Ini);
end;
Was wird denn ausgegeben, wenn du nach dem Ini-Versuch das hier ausgeben lässt:

Delphi-Quellcode:
ShowMessage(SysErrorMessage(GetLastError));
Grüße, Matze

implementation 5. Jan 2009 11:53

Re: Problem mit IniFile
 
Der Pfad stimmt.
Und es gibt auch keinen Fehler.

Matze 5. Jan 2009 11:55

Re: Problem mit IniFile
 
Hm, dann müsste aber eigentlich alles gehen, wenn nicht einmal Delphi-Referenz durchsuchenGetLastError einen Fehler zurückgibt.

Wird der Code sicher auch aufgerufen?
Sonst teste es doch mal im OnCreate, falls es das bei dir geben sollte.

Luckie 5. Jan 2009 11:58

Re: Problem mit IniFile
 
Zitat:

Zitat von implementation
Der Pfad stimmt.
Und es gibt auch keinen Fehler.

Das heißt, sie wird nicht angelegt? Damit deine Ini-Datei geschrieben wird, müssen zwei Dinge passieren: Erstens muss etwas hineingeschrieben werden und zweites muss sie geschlossen werden. Tust du beides? Desweiteren sollte natürlcih der Pfad stimmen und man sollte dort auch Schreibrechte haben. Was die Rechte angeht, was für ein Betriebssystem wird genutzt? Wenn du in das Programmverzeichnis unter C.\Programme schreibst, kann dir Vista den Pfad auch ungewollt umbiegen in einen Pfad in deinem Benutzerprofil.

SirThornberry 5. Jan 2009 12:56

Re: Problem mit IniFile
 
Könntest du bitte dem Beitrag einen aussagekräftigeren Titel geben? Bei IniFiles kann es recht viele Probleme geben. Ein aussagekräftigerer Titel hat den Vorteil das andere mit gleichem Problem diesen Beitrag später über die Suche schneller finden und somit auch die eventuelle Lösung. Zudem hat es für dich den Vorteil das anhand eines aussagekräftigen Titels die Leute sofort wissen ob sie eventuell helfen können und entsprechend das Thema anschauen :)

implementation 5. Jan 2009 13:35

Re: Problem mit IniFile
 
@Matze: Es wird jetzt eine Meldung ausgegeben, wenn der Code ausgeführt wird.
Und sie erscheint. Der Code wird also aufgerufen.

@Luckie: 1. Was meinst du mit schließen. Es wird FreeAndNil aufgerufen.
Ansonsten nichts.
2. Ich arbeite unter Windows XP, und das Programm ist unter D:

Luckie 5. Jan 2009 13:38

Re: Problem mit IniFile
 
Zitat:

Zitat von implementation
@Luckie: 1. Was meinst du mit schließen. Es wird FreeAndNil aufgerufen.
Ansonsten nichts.

Das meinte ich mit schliessen. Kannst du denn ein memo mit SaveToFile dort speichern?

implementation 5. Jan 2009 14:00

Re: IniFile wird nicht erstellt
 
Ja

Luckie 5. Jan 2009 14:14

Re: IniFile wird nicht erstellt
 
Dann sehe ich keinen Grund, warum das mit einer Ini-Datei nicht funktionieren sollte. Zeig noch mal deine aktuellen Code zum Schreiben und Lesen.

implementation 5. Jan 2009 14:19

Re: IniFile wird nicht erstellt
 
Delphi-Quellcode:
initialization
  Ini := TIniFile.Create(ExtractFilePath(Application.Exename) + 'Config.ini');
  ShowMessage(ExtractFilePath(Application.Exename) + 'Config.ini');
  try
    Workspace := Ini.ReadInteger('Colors', 'Workspace', PaintGreen);
  finally
    FreeAndNil(Ini);
  end;
finalization
  Ini := TIniFile.Create(ExtractFilePath(Application.Exename) + 'Config.ini');
  try
    Ini.WriteInteger('Colors', 'Workspace', Workspace);
  finally
    FreeAndNil(Ini);
  end;
end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 Uhr.
Seite 2 von 5     12 34     Letzte »    

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