Autor Beitrag
tenacer
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 07.09.08 16:16 
Hallo!

Ich bin neu hier im Forum
In meinem Programm habe ich 5 Listboxen die ich in einer Datei abspeichern möchte und dann auch später alle wieder laden möchte. Mein Problem ist, dass ich nur die letzte Listbox speichern kann. :(

Ich habe es bis jetzt so probiert:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure TForm1.Speichern1Click(Sender: TObject);
begin
 if SaveDialog1.Execute then
 begin
  ListBox1.items.SaveToFile(SaveDialog1.FileName);
  ListBox2.items.SaveToFile(SaveDialog1.FileName);
  ListBox3.items.SaveToFile(SaveDialog1.FileName);
  ListBox4.items.SaveToFile(SaveDialog1.FileName);
  ListBox5.items.SaveToFile(SaveDialog1.FileName);
 end;

end;

procedure TForm1.oeffnen1Click(Sender: TObject);
begin
 if OpenDialog1.Execute then
 begin
  Listbox1.items.LoadFromFile(OpenDialog1.FileName);
  Listbox2.items.LoadFromFile(OpenDialog1.FileName);
  Listbox3.items.LoadFromFile(OpenDialog1.FileName);
  Listbox4.items.LoadFromFile(OpenDialog1.FileName);
  Listbox5.items.LoadFromFile(OpenDialog1.FileName);

  end;
end;


Ich hoffe ihr könnt mir helfen!


Zuletzt bearbeitet von tenacer am So 07.09.08 16:42, insgesamt 1-mal bearbeitet
LexXis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: So 07.09.08 16:23 
1: Bitte benutze für Code die Delphi-Tags! //EDIT: Einrückung könnte auch nicht schaden ;)

2: Du speicherst den Inhalt der ersten ListBox und überschreibst ihn danach gleich mit dem Inhalt der zweiten usw. Am Ende ist natürlich dann nur der Inhalt der Letzten in der Datei.

mfg
tenacer Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 07.09.08 16:45 
So ich habs geändert
Erstmal danke für deine schnelle Rückmeldung.
Mir ist das schon bewusst, dass ich die Dateien überschreibe, aber wie kann ich es anders machen?
Mir ist es wichtig, dass ich alle Listboxen in einer einzigen Datei abspeichern kann.
LexXis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: So 07.09.08 16:49 
Tjoa, dann solltest du dir überlegen wie du die Dateien benennen solltest, um sie hinterher auch wieder richtig laden zu können ;)

Bsp:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
  ListBox1.items.SaveToFile(SaveDialog1.FileName+'1');
  ListBox2.items.SaveToFile(SaveDialog1.FileName+'2');
  ListBox3.items.SaveToFile(SaveDialog1.FileName+'3');
  ListBox4.items.SaveToFile(SaveDialog1.FileName+'4');
  ListBox5.items.SaveToFile(SaveDialog1.FileName+'5');


Laden sollte selbsterklärend sein
tenacer Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 07.09.08 16:58 
Danke!
Jetzt werden meine Einträge in den Listboxen ja aber in 5 Dateien gespeichert.
Gibt es ne Möglichkeit um alle in eine DAtei zu speichern?
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: So 07.09.08 17:13 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
with TStringList.Create do
  try
    AddStrings(Listbox1.Items);
    AddStrings(Listbox2.Items);
    ...
    SaveToFile('Pfad');
  finally
    Free;
  end;

Alternativ FileStream oder typerisierte Datei (File of String). ;)
tenacer Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 07.09.08 17:19 
also das speichern klappt nun

aber wie lade ich das dann?
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 07.09.08 17:35 
user profile iconMarc. hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
with TStringList.Create do
  try
    AddStrings(Listbox1.Items);
    AddStrings(Listbox2.Items);
    ...
    SaveToFile('Pfad');
  finally
    Free;
  end;

Und wie willst du jetzt beim Lesen herausfinden, was zu welcher ListBox gehört? Jeder Zeile wird durch ein #10#13 terminiert, jede ListBox jedoch auch.

user profile iconMarc. hat folgendes geschrieben:
Alternativ FileStream oder typerisierte Datei (File of String). ;)

Das ist wohl die bessere Idee. ;)


Zuletzt bearbeitet von Yogu am So 07.09.08 20:00, insgesamt 1-mal bearbeitet
tenacer Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: So 07.09.08 17:37 
okay also danke für eure hilfe