Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi *.ini datei überschreibt sich immer selbest (https://www.delphipraxis.net/41051-%2A-ini-datei-ueberschreibt-sich-immer-selbest.html)

herrentor 25. Feb 2005 08:00


*.ini datei überschreibt sich immer selbest
 
guten morgen,

ich hab ein problem mit meiner *.ini datei. und zwar möchte ich, dass nicht immer alle dateien neu geschrieben werden, sondern das informationen vom speichern davor nicht verloren gehen. beispiel: ich speicher test1. soweit alles in ordnung. wenn ich jetzt aber nochmal speichern klicke und test2 speichern will, wird test1 überschrieben.

Delphi-Quellcode:
Ini:=TIniFile.Create('C:\test.ini');

try

case combobox.ItemIndex of

  0: Ini.WriteBool('Test 1','Test 1',false);
 
  1: Ini.WriteBool('Test 2','Test 2',false);

  end;
  finally
    Ini.Free;
  end;
wie bekomme ich es hin, dass beispielsweise beim ersten speichern itemindex 0 test1 geschrieben wird und es beim zweiten speichern itemindex 1 erhalten bleibt?

IngoD7 25. Feb 2005 08:15

Re: *.ini datei überschreibt sich immer selbest
 
Es wird nichts gelöscht, es bleibt alles erhalten. Der von dir gepostete Code arbeitet korrekt.

herrentor 25. Feb 2005 08:32

Re: *.ini datei überschreibt sich immer selbest
 
mein ich doch, woran kann es denn dann liegen? das problem existiert aber, ich schreib ja nicht umsonst hier rein.

franktron 25. Feb 2005 08:53

Re: *.ini datei überschreibt sich immer selbest
 
Ich glaube das liegt an den Leerzeichen in Section und name der Ini.

LoL 25. Feb 2005 08:53

Re: *.ini datei überschreibt sich immer selbest
 
hi

zeig mal was du sonst noch so da stehen hast das es an dem code schnipsel auf keinen fall liegen kann!

herrentor 25. Feb 2005 09:06

Re: *.ini datei überschreibt sich immer selbest
 
also an den leerzeichen liegt es nicht.

Delphi-Quellcode:
procedure Taendern.aendern_bClick(Sender: TObject);
var Ini: TIniFile;

begin

 if isAdmin=true then
 begin

 while MessageDlg('Möchten Sie das Menü jetzt ändern?', mtConfirmation, [mbYes, mbNo], 0) = mrYes do
  begin


 Ini:=TIniFile.Create('C:\Schichtbuch\Schichtbuch.ini');

 try

  schichtbuch.Einstellungenspeichen1.Click;

  case combo_aendern.ItemIndex of
  0: begin
       schichtbuch.anlage.Items.text:=memo1.Text;
       schichtbuch.Label2.Caption:=edit1.text;
       combo_aendern.Items[0]:=edit1.Text;
       checkbox1.Caption:=edit1.text;
      end;
  1: begin
       schichtbuch.arbeitcorner.Items.text:=memo1.Text;
       schichtbuch.Label3.Caption:=edit1.text;
       combo_aendern.Items[1]:=edit1.Text;
       checkbox2.Caption:=edit1.text;
      end;
  2: begin
       schichtbuch.art.Items.text:=memo1.Text;
       schichtbuch.Label4.Caption:=edit1.text;
       combo_aendern.Items[2]:=edit1.Text;
       checkbox3.Caption:=edit1.text;
      end;
  3: begin
       schichtbuch.kran.Items.text:=memo1.Text;
       schichtbuch.Label5.Caption:=edit1.text;
       combo_aendern.Items[3]:=edit1.Text;
       checkbox4.Caption:=edit1.text;
    if checkbox4.checked=true then
    Ini.WriteBool('Krananlage ändern','Krananlage 4',false);
    if checkbox5.checked=true then
    Ini.WriteBool('Krananlageändern','Krananlage 5',false);
    if checkbox6.checked=true then
    Ini.WriteBool('Krananlage ändern','Krananlage 6',false);
    if checkbox7.checked=true then
    Ini.WriteBool('Krananlage ändern','Krananlage 7',false);
    if checkbox8.checked=true then
    Ini.WriteBool('Krananlage ändern','Krananlage 8',false);
    if checkbox9.checked=true then
    Ini.WriteBool('Krananlage ändern','Krananlage 9',false);

    if checkbox4.checked=false then
    Ini.WriteBool('Krananlage ändern','Krananlage 4',true);
    if checkbox5.checked=false then
    Ini.WriteBool('Krananlage ändern','Krananlage 5',true);
    if checkbox6.checked=false then
    Ini.WriteBool('Krananlage ändern','Krananlage 6',true);
    if checkbox7.checked=false then
    Ini.WriteBool('Krananlage ändern','Krananlage 7',true);
    if checkbox8.checked=false then
    Ini.WriteBool('Krananlage ändern','Krananlage 8',true);
    if checkbox9.checked=false then
    Ini.WriteBool('Krananlage ändern','Krananlage 9',true);
      end;
  4: begin
       schichtbuch.transport.Items.text:=memo1.Text;
       schichtbuch.Label6.Caption:=edit1.text;
       combo_aendern.Items[4]:=edit1.Text;
       checkbox5.Caption:=edit1.text;
       if checkbox4.checked=true then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 4',false);
    if checkbox5.checked=true then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 5',false);
    if checkbox6.checked=true then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 6',false);
    if checkbox7.checked=true then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 7',false);
    if checkbox8.checked=true then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 8',false);
    if checkbox9.checked=true then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 9',false);

    if checkbox4.checked=false then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 4',true);
    if checkbox5.checked=false then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 5',true);
    if checkbox6.checked=false then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 6',true);
    if checkbox7.checked=false then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 7',true);
    if checkbox8.checked=false then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 8',true);
    if checkbox9.checked=false then
    Ini.WriteBool('Transportsystem ändern','Transportsystem 9',true);
      end;
  5: begin
       schichtbuch.schrauber.Items.text:=memo1.Text;
       schichtbuch.Label7.Caption:=edit1.text;
       combo_aendern.Items[5]:=edit1.Text;
       checkbox6.Caption:=edit1.text;
       if checkbox4.checked=true then
    Ini.WriteBool('Schrauber ändern','Schrauber 4',false);
    if checkbox5.checked=true then
    Ini.WriteBool('Schrauber ändern','Schrauber 5',false);
    if checkbox6.checked=true then
    Ini.WriteBool('Schrauber ändern','Schrauber 6',false);
    if checkbox7.checked=true then
    Ini.WriteBool('Schrauber ändern','Schrauber 7',false);
    if checkbox8.checked=true then
    Ini.WriteBool('Schrauber ändern','Schrauber 8',false);
    if checkbox9.checked=true then
    Ini.WriteBool('Schrauber ändern','Schrauber 9',false);

    if checkbox4.checked=false then
    Ini.WriteBool('Schrauber ändern','Schrauber 4',true);
    if checkbox5.checked=false then
    Ini.WriteBool('Schrauber ändern','Schrauber 5',true);
    if checkbox6.checked=false then
    Ini.WriteBool('Schrauber ändern','Schrauber 6',true);
    if checkbox7.checked=false then
    Ini.WriteBool('Schrauber ändern','Schrauber 7',true);
    if checkbox8.checked=false then
    Ini.WriteBool('Schrauber ändern','Schrauber 8',true);
    if checkbox9.checked=false then
    Ini.WriteBool('Schrauber ändern','Schrauber 9',true);
      end;
  end;
  finally
    Ini.Free;
  end;
  edit1.text:='';
  memo1.clear;
  combo_aendern.ItemIndex:=-1;
  schliessen_a.Click;
  exit;
  end;;
 end else showmessage('Sie benötigen Administratorenrechte!');
end;

IngoD7 25. Feb 2005 09:11

Re: *.ini datei überschreibt sich immer selbest
 
Zitat:

Zitat von herrentor
das problem existiert aber

Aber nicht in dem von dir geposteten Code (jedenfalls nicht unter D7 auf NT).

Mache ein ganz neues Projekt, ziehe eine lumpige ComboBox darauf und schreibe in das OnChange-Ereignis der Box dein Codeschnipsel. Setze meinetwegen sicherheitshalber ein Ini.UpdateFile vor das finally. Damit erzwingst du unter W95 z.B. das Schreiben aus dem Puffer auf Platte.

Spiele mit der ComboBox herum und schaue, was passiert.

herrentor 25. Feb 2005 09:21

Re: *.ini datei überschreibt sich immer selbest
 
hab den fehler gefunden. danke

IngoD7 25. Feb 2005 09:25

Re: *.ini datei überschreibt sich immer selbest
 
Zitat:

Zitat von herrentor
hab den fehler gefunden. danke

Freut mich.
Und was war es?

herrentor 25. Feb 2005 09:36

Re: *.ini datei überschreibt sich immer selbest
 
ich ruf doch noch die prozedur schichtbuch.Einstellungenspeichen1.Click;. in dieser datei schreibe ich auch in die *.ini datei. dort habe ich aber die *.ini datei vor jedem speichern gelöscht, warum auch immer.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 Uhr.
Seite 1 von 2  1 2      

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