Autor Beitrag
Tony-S
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Di 11.05.10 22:38 
Hallo Forum ich weiß nicht mehr weiter:

Ich kann weder eine Ini Datei in einem vorgegeben Pfad erstellen:

ausblenden Delphi-Quelltext
1:
2:
3:
const
  AppDataRootDir = '\Überordner';
  AppDataProjectDir = '\Settings';


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TfrmOptionen.FormCreate(Sender: TObject);
var
PathSettings: String;
begin
PathSettings := GetSpecialFolder (CSIDL_Appdata)+ AppDataRootDir + AppDataProjectDir;
ini:=TIniFile.Create(PathSettings+'\Settings.ini');
  try
  cbNewSnippet.Checked := Ini.ReadBool('MainSettings''cb1', False);
  cbClipboard.Checked := Ini.ReadBool('MainSettings''cb2', True);
  cbStrg.Checked := Ini.ReadBool('MainSettings''cb3', False);
  cbMouseUp.Checked := Ini.ReadBool('MainSettings''cb4', True);

  finally
  ini.Free ;
  end;

end;


Denn es wird einfach kein Ordner erstellt... und sobald ich versuche zu speichern:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TfrmOptionen.btnSaveclick(Sender: TObject);
var PathSettings: String;
begin

PathSettings := GetSpecialFolder (CSIDL_Appdata)+ AppDataRootDir + AppDataProjectDir;
ini:=TIniFile.Create(PathSettings+'\Settings.ini');

    try
    Ini.WriteBool('MainSettings''cb1', cbNewSnippet.Checked);
    Ini.WriteBool('MainSettings''cb2', cbClipboard.Checked);
    Ini.WriteBool('MainSettings''cb3', cbStrg.Checked);
    Ini.WriteBool('MainSettings''cb4', cbMouseUp.Checked);

    finally
    ini.Free;
    end;
end;


erhalte ich diesen Fehler

fail

Das einzige was ich nicht verstehe, mein Benutzerordner hat ein kleines Schloss am Ordnersymbol, den Schreibschutz aufzuheben habe ich schon versucht.. es reagiert irgendwann nicht mehr - mein anderes Programm nutzt aber auch diese Art des Speicherns und kann Ordner UND ini files erstellen, daran liegts also nich ...

Wäre klasse wenn jemand helfen kann ich weiß überhaupt nicht mehr weiter :/

Moderiert von user profile iconNarses: Bild als Anhang hochgeladen.
Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 12.05.2010 um 00:31
Einloggen, um Attachments anzusehen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 11.05.10 22:56 
Ich sehe nirgends wo du versuchst den Ordner zu erstellen. Hast du vergessen den Code dazu zu posten? :gruebel:

Denn ohne dass du den Ordner mit ForceDirectories z.B. erstellst, kannst du logischerweise auch nicht darauf zugreifen.

Für die automatische Verwaltung der Einstellungen gibt es von mir ja auch was:
www.delphi-forum.de/viewtopic.php?t=92348
Tony-S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Di 11.05.10 23:23 
Ja... irgendwas war da doch.... :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
if not DirectoryExists(PathSettings) then
  begin
  ForceDirectories(PathSettings);

    if fileexists(PathSettings+'\'+'Settings.ini') = False then
    begin
    AssignFile(f, PathSettings+'\'+'Settings.ini');
    Rewrite(f);
    Write(f, '');
    CloseFile(f);
    end;

  end;


Tud mir leid, manchmal schein ich blind zu sein ;) - danke vielmals.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 12.05.10 05:48 
Es reicht auch einfach das ForceDirectories dazuzuschreiben. Nur die eine Zeile, mehr nicht, eine Prüfung ob das Verzeichnis existiert passiert in diesem Befehl bereits. Die Ini-Datei wird auch automatisch erstellt.