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/)
-   -   Ini Datei wird nicht erstellt... (https://www.delphipraxis.net/179212-ini-datei-wird-nicht-erstellt.html)

Sir Rufo 20. Feb 2014 15:06

AW: Ini Datei wird nicht erstellt...
 
Zitat:

Zitat von Popov (Beitrag 1248814)
@Codix32

Früher landeten Inis ohne Pfadangabe im Windows-Verzeichnis. Der ist aber heute schreibgeschützt, womit es eigentlich eine Fehlermeldung geben müsste (vorausgesetzt das ich nicht abgeschaltet). Gibt es keine Meldung, sollte irgendwo eine Datei erstellt worden sein.

Bei der Delphiversion müsste die unter Windows 7 im VirtualStore gelandet sein :)

Codix32 20. Feb 2014 15:09

AW: Ini Datei wird nicht erstellt...
 
Zitat:

Zitat von Sir Rufo (Beitrag 1248815)
Zitat:

Zitat von Popov (Beitrag 1248814)
@Codix32

Früher landeten Inis ohne Pfadangabe im Windows-Verzeichnis. Der ist aber heute schreibgeschützt, womit es eigentlich eine Fehlermeldung geben müsste (vorausgesetzt das ich nicht abgeschaltet). Gibt es keine Meldung, sollte irgendwo eine Datei erstellt worden sein.

Bei der Delphiversion müsste die unter Windows 7 im VirtualStore gelandet sein :)

Stellt sich dem Greenhorn die Frage: "Was ist ein 'VirtualStore'?"

himitsu 20. Feb 2014 15:15

AW: Ini Datei wird nicht erstellt...
 
Eine Umleitung für "schrottige" Programme, welche vom UAC (glaub ich) eingerichtet wird, wenn es erkennt/denkt, daß das Programm schrott inkompatibel ist.

Such mal nach dem Verzeichis irgendwo in den Benutzer-Verzeichnissen.
[edit] Bei Google suchenVirtualStore -> z.B. http://blog.m-ri.de/index.php/2007/0...chattenseiten/

baumina 20. Feb 2014 15:18

AW: Ini Datei wird nicht erstellt...
 
Zitat:

Zitat von himitsu (Beitrag 1248817)
Eine Umleitung für "schrottige" Programme, welche vom UAC (glaub ich) eingerichtet wird, wenn es erkennt/denkt, daß das Programm schrott inkompatibel ist.

Such mal nach dem Verzeichis irgendwo in den Benutzer-Verzeichnissen.
[edit] Bei Google suchenVirtualStore -> z.B. http://blog.m-ri.de/index.php/2007/0...chattenseiten/

Ui, was sich da so alles an Verzeichnissen findet :cyclops:

C:\Users\baumina\AppData\Local\VirtualStore\Progra m Files\Embarcadero\RAD Studio\8.0

Codix32 20. Feb 2014 16:30

AW: Ini Datei wird nicht erstellt...
 
Ok, aber jetzt habe ich schon wieder ein Problem mit dem Lesen der IniFile:

Delphi-Quellcode:
procedure TForm1.leseIni(IniName:string);
var
  ini:TIniFile;
  filename: String;

begin
filename := extractfilepath(paramstr(0))+IniName + '.ini';
Label5.Caption:=filename;    //zeigt den Pfad und Dateinamen einwandfrei an
ini := TIniFile.Create(filename);
// INI-Datei erstellen (falls nicht vorhanden) und initialisieren
 try
  Form1.Caption:=ini.ReadString('Sektion1', 'Name', Name);
  //globale Variablen
  Gesamtkreditsum:=ini.ReadString('Sektion2', 'Gesamtkreditsumme',Gesamtkreditsum);
  Ratenhöhe:=ini.ReadString('Sektion2', 'Ratenhoehe', Ratenhöhe);
  Ratenanzhl:=ini.ReadString('Sektion2', 'Ratenanzahl', Ratenanzhl);
  Restsum:=ini.ReadString('Sektion3', 'Restsumme', Restsum);
  Sonderrat:=ini.ReadString('Sektion3', 'Sonderrate', Sonderrat);
  //
 finally
  ini.Free;
// Variable ini wieder freigeben
end;
end;

.......

procedure TForm1.Button2Click(Sender: TObject);
begin
  leseIni('MyKreditInif');
  Gesamtkreditsumme.Caption:= 'Gesamtkreditsumme '+  gesamtkreditsum;
  Ratenhoehe.Caption:='Ratenhoehe '+ Ratenhöhe;
  Ratenanzahl.Caption:='Ratenanzahl '+Ratenanzhl;
  Restsumme.Caption:='Restsumme '+Restsum;
  Sonderrate.Caption:='Sonderrate '+Sonderrat;
end;
Die Labels zeigen nichts an, obwohl die Mykreditinif.ini korrekt erstellt im aktuellen Verzeichnis liegt. Hiiiiilfe

p80286 20. Feb 2014 16:53

AW: Ini Datei wird nicht erstellt...
 
Zitat:

Zitat von Codix32 (Beitrag 1248829)
Ok, aber jetzt habe ich schon wieder ein Problem mit dem Lesen der IniFile:

Delphi-Quellcode:
procedure TForm1.leseIni(IniName:string);
var
  ini:TIniFile;
  filename: String;

begin
filename := extractfilepath(paramstr(0))+IniName + '.ini';
Label5.Caption:=filename;    //zeigt den Pfad und Dateinamen einwandfrei an
ini := TIniFile.Create(filename);
// INI-Datei erstellen (falls nicht vorhanden) und initialisieren
 try
  Form1.Caption:=ini.ReadString('Sektion1', 'Name', Name);
  //globale Variablen
  Gesamtkreditsum:=ini.ReadString('Sektion2', 'Gesamtkreditsumme',Gesamtkreditsum);
  Ratenhöhe:=ini.ReadString('Sektion2', 'Ratenhoehe', Ratenhöhe);
  Ratenanzhl:=ini.ReadString('Sektion2', 'Ratenanzahl', Ratenanzhl);
  Restsum:=ini.ReadString('Sektion3', 'Restsumme', Restsum);
  Sonderrat:=ini.ReadString('Sektion3', 'Sonderrate', Sonderrat);
  //
 finally
  ini.Free;
// Variable ini wieder freigeben
end;
end;

.......

procedure TForm1.Button2Click(Sender: TObject);
begin
  leseIni('MyKreditInif');
  Gesamtkreditsumme.Caption:= 'Gesamtkreditsumme '+  gesamtkreditsum;
  Ratenhoehe.Caption:='Ratenhoehe '+ Ratenhöhe;
  Ratenanzahl.Caption:='Ratenanzahl '+Ratenanzhl;
  Restsumme.Caption:='Restsumme '+Restsum;
  Sonderrate.Caption:='Sonderrate '+Sonderrat;
end;
Die Labels zeigen nichts an, obwohl die Mykreditinif.ini korrekt erstellt im aktuellen Verzeichnis liegt. Hiiiiilfe

Also
  • die INI-Datei ist vorhanden!
  • in der Ini-Datei befinden sich die gesuchten Daten an der richtigen Stelle?
  • was für einen Inhalt hat "RatenHöhe" oder "RatenAnzhl" sobald das Lesen abgeschlossen ist?
  • was sagt der Debugger dazu?

Gruß
K-H

P.S.
Du mußt nicht so laut um Hilfe rufen.

EWeiss 20. Feb 2014 16:58

AW: Ini Datei wird nicht erstellt...
 
Warum wird die INI nicht im richtigen Pfad angelegt?
In dem auch schreib und generelle Zugriffsrechte vorhanden sind?

Das ist sicherlich nicht Paramstr(0).
Siehe CSIDL_APPDATA

Zitat:

P.S.
Du mußt nicht so laut um Hilfe rufen.
Ah jo wäre bei Laut eher HILFE anstelle von Hiiilfe.

gruss

Codix32 20. Feb 2014 17:03

AW: Ini Datei wird nicht erstellt...
 
Die Ini Datei liegt im selben Ordner wie die dpr, pas, ectra.

[QUOTE]Ja, die Inifile ist vorhanden die Werte sind korrekt drin, die Variablen enthalten nichts, es wird also nichts eingelesen.
Sie enthält die mit WriteInteger geschriebenen Werte:

Zitat:

[Sektion1]
Name=Zähne
[Sektion2]
Gesamtkreditsumme=11000.00
Ratenhoehe=123,45
Ratenanzahl=60
[Sektion3]
Restsumme= .
Sonderrate= .

Codix32 20. Feb 2014 17:18

AW: Ini Datei wird nicht erstellt...
 
Zitat:

Zitat von EWeiss (Beitrag 1248834)
Warum wird die INI nicht im richtigen Pfad angelegt?
In dem auch schreib und generelle Zugriffsrechte vorhanden sind?

Das ist sicherlich nicht Paramstr(0).
Siehe CSIDL_APPDATA

Zitat:

P.S.
Du mußt nicht so laut um Hilfe rufen.
Ah jo wäre bei Laut eher HILFE anstelle von Hiiilfe.

gruss

Hm, also der Schreibzugriff hat ja funktioniert, aber das Auslesen geht nicht

Das hier geht:
Delphi-Quellcode:
procedure TForm1.erzeugeIni(IniName:string);
var
  ini:TIniFile;
begin
ini := TIniFile.Create(extractfilepath(paramstr(0))+IniName + '.ini');
// INI-Datei erstellen (falls nicht vorhanden) und initialisieren
 try
  ini.WriteString('Sektion1', 'Name', form2.Edit1.text);
  // String in Sektion1 unter Eigenschaft1 abspeichern
  ini.WriteString('Sektion2', 'Gesamtkreditsumme', Gesamtkreditsum);
  ini.WriteString('Sektion2', 'Ratenhoehe', Ratenhöhe);
  ini.WriteString('Sektion2', 'Ratenanzahl', Ratenanzhl);
  ini.WriteString('Sektion3', 'Restsumme', Restsum);
  ini.WriteString('Sektion3', 'Sonderrate', Sonderrat);
 finally
ini.Free;
// Variable ini wieder freigeben
end;
end;
Die Ini Datei wird angelegt, mit den Werten, aber das Auslesen geht nicht:
Delphi-Quellcode:
procedure TForm1.leseIni(IniName:string);
var
  ini:TIniFile;
  filename: String;

begin
filename := extractfilepath(paramstr(0))+IniName + '.ini';
Label5.Caption:=filename;
ini := TIniFile.Create(filename);
// INI-Datei erstellen (falls nicht vorhanden) und initialisieren
 try
  Form1.Caption:=ini.ReadString('Sektion1', 'Name','');
  Gesamtkreditsum:=ini.ReadString('Sektion2', 'Gesamtkreditsumme','');
  Ratenhöhe:=ini.ReadString('Sektion2', 'Ratenhoehe', '');
  Ratenanzhl:=ini.ReadString('Sektion2', 'Ratenanzahl', '');
  Restsum:=ini.ReadString('Sektion3', 'Restsumme', '');
  Sonderrat:=ini.ReadString('Sektion3', 'Sonderrate','');
  //
 finally
  ini.Free;
// Variable ini wieder freigeben
end;
end;
und was nun bedeutet 'CSIDL_APPDATA'

EWeiss 20. Feb 2014 17:20

AW: Ini Datei wird nicht erstellt...
 
UAC eingeschaltet?
Mach mal aus und teste noch mal dann verstehst du vielleicht was ich meine ;)

gruss


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

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