[quote]
Caption, SubItem[1], SubItem[2],SubItem[3]
[quote]
sicher ? die Subitems beginnen bei 0 also eher
Caption, SubItem[0], SubItem[1],SubItem[2]
Wenn du nur die Listview speichern willst, kannst du 2 Stringlisten verwenden eine ist die "datei", die andere die "Zeile". Du fügst deine Captions und subitems zur "Zeile" hinzu wenn du mit einer Zeile fertig bist fügst du den Commatext der "Zeilenliste" zur Dateiliste hinzu. Hat den Vorteil, daß du dich um trennzeichen für die Caption und die einzelnen Subitems nicht kümmern brauchst, das machen die Stringlsiten für dich.
das Einladen wäre dann so: Dateiliste laden, jede Zeile einzeln durchgehen und jeweils den item-string als Commatext einer 2. Stringlist zuweisen. die 2. Stringlist gehst du dann item für item durch und füllst deine Listview wieder. Hoffe das war einigermaßen verständlich, Code fürs speichern in etwa so (nich groß getestet):
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: 26:
| procedure TForm1.Button1Click(Sender: TObject); Var SLZeile,SLDatei:Tstringlist; item:TListitem; i:integer; begin SLDatei:=TStringList.create; try SLZeile:=TStringList.create; try for i:=0 to listview1.Items.Count-1 do begin SlZeile.clear; //Zeile löschen Slzeile.add(Listview1.Items[i].Caption); //captions und subtimes speichern Slzeile.add(Listview1.Items[i].SubItems[0]); Slzeile.add(Listview1.Items[i].SubItems[1]); //... SLDatei.Add(SLzeile.CommaText); //die Zeile als Commatext zur Datei hinzufügen end; finally SLZeile.free; end; SLDatei.SaveToFile('c:\SLDatei-Test.txt'); finally SLDatei.free; end; end; |
Mfg Frank