Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Listbox-Inhalt speichern (https://www.delphipraxis.net/96478-listbox-inhalt-speichern.html)

DeddyH 25. Jul 2007 11:08

Re: Listbox-Inhalt speichern
 
Na gut, so gesehen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sList: TStringList;
begin
  sList := TStringList.Create;
  try
    sList.AddStrings(ListBox1.Items);
    sList.AddStrings(ListBox2.Items);
    sList.SaveToFile('C:\ein_Pfad\eine_Datei.eine_Endung');
  finally
    sList.Free;
  end;
end;

Darksniper 25. Jul 2007 11:21

Re: Listbox-Inhalt speichern
 
und wie ladet man die verschiedenen Listen dann wieder?

also getrennt in die zwei Listboxen

DeddyH 25. Jul 2007 11:43

Re: Listbox-Inhalt speichern
 
Dann überleg Dir eine eindeutige Trennzeile, füge diese zwischen den beiden AddStrings-Befehlen ein und beim Einlesen weißt Du, dass nach der Trennlinie die 2. ListBox dran ist.

Darksniper 25. Jul 2007 11:52

Re: Listbox-Inhalt speichern
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sList: TStringList;
begin
  sList := TStringList.Create;
  try
    sList.AddStrings(ListBox1.Items);
    sList.AddStrings('---');
    sList.AddStrings(ListBox2.Items);
    sList.SaveToFile('C:\ein_Pfad\eine_Datei.eine_Endung');
  finally
    sList.Free;
  end;
end;
so müsste das mit der trennlinie ja dan aussehen

aber wie geht das jetzt mit dem getrennten laden? :gruebel:

DeddyH 25. Jul 2007 12:04

Re: Listbox-Inhalt speichern
 
Delphi-Quellcode:
const Trenner = '========';

//Speichern
procedure TForm1.Button1Click(Sender: TObject);
var sList: TStringlist;
begin
  sList := TStringlist.Create;
  try
    sList.AddStrings(ListBox1.Items);
    sList.Add(Trenner);
    sList.AddStrings(ListBox2.Items);
    sList.SaveToFile('C:\Listboxen.txt');
  finally
    sList.Free;
  end;
end;

//Einlesen
procedure TForm1.Button2Click(Sender: TObject);
var iPos,i: integer;
    sList: TStringList;
begin
  ListBox1.Clear;
  ListBox2.Clear;
  ListBox1.Items.BeginUpdate;
  ListBox2.Items.BeginUpdate;
  sList := TStringlist.Create;
  try
    sList.LoadFromFile('C:\Listboxen.txt');
    //Index der Trennzeile ermitteln
    iPos := sList.IndexOf(Trenner);
    if iPos > -1 then
      begin
        //vom Listenende bis zum Vorgänger des Trenners
        for i := Pred(sList.Count) downto Succ(iPos) do
          begin
            //Zeile an erster Stelle einfügen
            ListBox2.Items.Insert(0,sList[i]);
            //und aus Liste löschen
            sList.Delete(i);
          end;
        //nun noch Trennzeile löschen
        sList.Delete(iPos);
      end;
    //der Rest gehört in die erste ListBox
    ListBox1.Items.Assign(sList);
  finally
    sList.Free;
  end;
  ListBox1.Items.EndUpdate;
  ListBox2.Items.EndUpdate;
end;

Darksniper 25. Jul 2007 15:04

Re: Listbox-Inhalt speichern
 
danke :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:25 Uhr.
Seite 3 von 3     123   

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