So,
bin jetzt schon weiter. Habe die procedure UpdateList erstellt und einen Datensatz in die
XML-Datei eingetragen. Doch wenn ich die Prozedur ausführe, dann schreibt er nichts in die ListView, sondern gibt folgende Meldung aus:
Listenindex überschreitet -1
meine Prozedur sieht so aus:
Delphi-Quellcode:
procedure TForm1.UpdateList;
const
NAMES: array[0..8] of string = ('name', 'format', 'ton',
'anzmedien', 'bildqualität',
'tonqualität', 'gesamt',
'verliehen', 'comment');
var
movies : IXMLDOMNodeList;
subnode: IXMLDomNode;
i, j : Integer;
begin
ListView1.Items.Clear;
ListView1.Items.BeginUpdate;
movies:=xmlDoc.documentElement.selectNodes('movie');
for i:=0 to movies.length -1 do begin
subnode:=movies.item[i].selectSingleNode('id');
ListView1.Items.Add;
ListView1.Items[i].Caption:=SubNode.Text;
with ListView1.Items[i].SubItems do begin
for j:=0 to length(NAMES[-1]) do begin
subNode:=movies.item[i].selectSingleNode(NAMES[j]);
if subNode <> nil then
Add(SubNode.text)
else
Add('');
end;
end;
end;
ListView1.Items.EndUpdate;
end;
und meine
XML-Datei so:
Delphi-Quellcode:
<?
xml version="1.0" encoding="ISO-8859-1"?>
<movieorganizer>
<movie>
<id>1</id>
<
name>Der Schuh des Manitu</
name>
<format>DVD</format>
<ton>DD5.1</ton>
<anzmedien>2</anzmedien>
<bildqualität>1+</bildqualität>
<tonqualität>1</tonqualität>
<gesamt>1+</gesamt>
<verliehen></verliehen>
<comment>Lustige Komödie mit Bully.</comment>
<screenshot />
</movie>
</movieorganizer>
Alles streng nach Beispiel.
Doch diese Stelle der Prozedur musst ich von:
for i:=0 to length(NAMES)-1 do begin
in
for j:=0 to length(NAMES[-1]) do begin
ändern, da folgende Comp-Meldung erschien:
[Fehler] Unit1.pas(65): '[' erwartet, aber ')' gefunden.