Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Listbox (https://www.delphipraxis.net/22933-listbox.html)

NikoMitDaMacht 26. Mai 2004 14:07


Listbox
 
Hi!
Weiß jemand wie man alle listboxeinträge ab einen bestimmten Item in eine Text-datei speichern und dann wieder
in gleicher reinfolge landen kann?

Benedikt 26. Mai 2004 14:15

Re: Listbox
 
Hi,

das einfachste wäre es wohl, die Einträge ab dem bestimmen Item in eine StringList zu schreiben und diese dann abzuspeichern, bzw. die Text-Datei hinterher wieder in eine StringList zu laden und anzuhängen.

yankee 26. Mai 2004 14:25

Re: Listbox
 
So:
Delphi-Quellcode:
var datei:textfile;
assignfile(datei,'c:\datei.txt');
rewrite(datei);
for i:=5 to listbox.items.count do //5 steht hier symbolisch für das item, ab dem du items in eine Textdatei speichern willst
begin
writeln(datei,listbox.items[i].text);
end;
closefile(datei);
Beim lesen der Datei statt rewrite reset verwenden und statt writeln readln und so...

NikoMitDaMacht 26. Mai 2004 14:52

Re: Listbox
 
Also eigentlich müsste es dann so gehen:

Delphi-Quellcode:
procedure Tmedia.Button7Click(Sender: TObject);
var
datei:textfile;
i: integer;
begin
assignfile(datei,'c:\datei.txt');
rewrite(datei);
for i:=5 to listbox1.items.count do begin
writeln(datei,listbox1.items[i].text);
end;
closefile(datei);
end;
tuts aber nicht:

writeln(datei,listbox1.items[i].text); [Error] midiunit.pas(525): Record, object or class type required

yankee 26. Mai 2004 15:03

Re: Listbox
 
sry, habe zwei kleine fehler eingebaut. In der for-Anweisung musst du einmal -1 unterbringen und außerdem muss es nicht items.. heißen. Ach hier ist der Quelltext, wie es funzt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
datei:textfile;
i: integer;
begin
assignfile(datei,'c:\datei.txt');
rewrite(datei);
for i:=5 to listbox1.items.count-1 do begin
writeln(datei,listbox1.Items.Strings[i]);
end;
closefile(datei);
end;

NikoMitDaMacht 26. Mai 2004 15:07

Re: Listbox
 
Klasse, danke.
willst du so nett sein und mir auch noch den Code geben um die items zu adden?

yankee 26. Mai 2004 15:15

Re: Listbox
 
Delphi-Quellcode:
procedure AddItems;
var datei:textfile;
    temp:string;
begin
assignfile(datei,'c:\datei.txt'); //datei öffnen
reset(datei); //mit nur Lesezugriff öffnen
while not eof(datei) do //eof=end of file
begin
readln(datei,temp); //aktuelle Zeile auslesen
Listbox1.Items.Add(temp); //"  "   hinzufügen
end;
closefile(datei); //datei schließen
end;
Sollte so funzen. Ich hab's allerdings nicht getestet...
Schreib mal, ob's tut...

EDIT: Quelltext kommentiert
EDIT2: Source gemäß Beitrag von Benedikt korrigiert

Benedikt 26. Mai 2004 15:25

Re: Listbox
 
Zitat:

Zitat von yankee
Schreib mal, ob's tut...

Das sollte ja eigentlich net gehen, weil ReadLn keine Funktion ist

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Datei: Textfile;
  Temp: String;
begin
        AssignFile(Datei,'c:\datei.txt');
        Reset(Datei);

        while (not Eof(Datei)) do
        begin
                Readln(Datei, Temp);
                ListBox1.Items.Add(Temp);
        end;
        Closefile(Datei);
end;

yankee 26. Mai 2004 15:30

Re: Listbox
 
@Benedikt: Hast recht. Habe meinen Beitrag korrigiert...

NikoMitDaMacht 26. Mai 2004 17:35

Re: Listbox
 
Danke an alle!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr.

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