Hi! Dieser Code unten bricht sich selbst mit einem
EStringListError: Listenindex überschreitet das Maximum (0) ab.
Delphi-Quellcode:
var
e: TJvSimpleXMLElem;
i: Integer;
begin
if FileExists(WorkDir+DATABASE_FNAME) then
DeleteFile(WorkDir+DATABASE_FNAME);
try
for i:=0 to DataList.Items.Count-1 do begin
e := XMLFile.Root.Items.Add('ID='+IntToStr(i+1));
e.Items.Add('path', DataList.Items[i].SubItems[0]);
e.Items.Add('title', DataList.Items[i].SubItems[1]);
e.Items.Add('artist', DataList.Items[i].SubItems[2]);
e.Items.Add('album', DataList.Items[i].SubItems[3]);
e.Items.Add('year', DataList.Items[i].SubItems[4]);
e.Items.Add('genre', DataList.Items[i].SubItems[5]);
end;
except
end;
XMLFile.SaveToFile(WorkDir+DATABASE_FNAME);
XMLFile ist vom Typ TJvSimpleXML der
Jedi-Komponenten, DataList ist eine TListView. Warum funktioniert das so nicht? Ich habe das Problem schon einmal gelöst, indem ich eine neue Variable erstellt habe, die die Anzahl der Einträge in der Liste enthielt. Aber diese Lösung ist nicht sehr elegat und funktioniert inzwischen nach einigen Änderungen im Programm nicht mehr.