Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Textdatei: Immer hintendran (https://www.delphipraxis.net/13691-textdatei-immer-hintendran.html)

Die Muhkuh 24. Dez 2003 07:25


Textdatei: Immer hintendran
 
Naja komischer Titel, aber mir ist nix besseres eingefallen :mrgreen:


Zum Thema:


Ich hab folgenden Code:
Delphi-Quellcode:
procedure TMain.Button1Click(Sender: TObject);
var
  Users: TStringlist;
begin
  Users := TStringlist.Create; //Stringlist machen
  try
    Users.Add(User.txt);     //Hinzufügen
  except
    Showmessage('Sorry aber du kannst dich nicht einloggen'); //Wenns net geht dann Meldung bringen
  end;
  Users.SaveToFile('Users.txt');   //Speichern
end;

procedure TMain.User_aTimer(Sender: TObject);
begin
  Listbox1.Items.LoadFromFile('Users.txt');    //Aktuallisieren
end;

Das Problem ist das immer der erste eintrag der Textdatei überschrieben wird. D.h. Wenn ich mich als Spider einlogge, nochmal das Programm starte und mich als Mani einlogge dann steht in der Listbox net "Spider, Mani" sondern nur "Mani". Wie kann ich das verhindern?

Sharky 24. Dez 2003 07:32

Re: Textdatei: Immer hintendran
 
Hmmm....

eventuell solltest Du einfach dafür sorgen das in deine Stringlist Users vorher auch die User die schon in User.txt stehen eigefügt (geladen) werden.

Du überschreibst ja jedesmal die Datei mit exakt einem neuen Eintrag.

Die Muhkuh 24. Dez 2003 07:36

Re: Textdatei: Immer hintendran
 
Man, man, man,

das war ja einfach :oops:. Typisch auf die einfachen sachen komm ich net drauf :(.
So geht's:

Delphi-Quellcode:
procedure TMain.Button1Click(Sender: TObject);
var
  Users: TStringlist;
begin
  Users := TStringlist.Create; //Stringlist machen
  Users.LoadFromFile('Users.txt'); //Das hat gefehlt!
  try
    Users.Add(User.text);     //Hinzufügen
  except
    Showmessage('Sorry aber du kannst dich nicht einloggen'); //Wenns net geht dann Meldung bringen
  end;
  Users.SaveToFile('Users.txt');   //Speichern
end;

Sharky 24. Dez 2003 07:40

Re: Textdatei: Immer hintendran
 
Hai Spider,

Du solltest aber dringend an der Konstruktion arbeiten ;-)

Frage: Warum soll es beim einfügen eines Users in die Stringlist zu einer exception kommen?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Users: TStringlist;
begin
  Users := TStringlist.Create; //Stringlist machen
  try
    Users.LoadFromFile('Users.txt');  //Laden
    Users.Add(User.txt);     //Hinzufügen
    Users.SaveToFile('Users.txt');   //Speichern
  finally
    User.Free; //gemachte Stringliste wieder freigeben!!!
  end;
end;

Die Muhkuh 24. Dez 2003 07:45

Re: Textdatei: Immer hintendran
 
Hey sorry,

soweit bin ich noch net! Des wird ja schon noch umstruckturiert. Ausserdem hab ich eh Code wegelassen! Weiter unten steht nämllich
Delphi-Quellcode:
Users.Free
Zitat:

Zitat von Vom Fisch
Frage: Warum soll es beim einfügen eines Users in die Stringlist zu einer exception kommen?

Antwort: Wenn die Datei nicht vorhanden ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:23 Uhr.

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-2025 by Thomas Breitkreuz