Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Problem mit XML Turtoial von Chack (https://www.delphipraxis.net/19464-problem-mit-xml-turtoial-von-chack.html)

citybreaker 4. Apr 2004 11:55

Re: Problem mit XML Turtoial von Chack
 
Ups, so hab ich jetzt ganz unten in der OnFormCreate.
Nun kommt beim Programmstart die Fehlermeldung:
"Der Index der Liste überschreitet das Maximum (-1)"

CalganX 4. Apr 2004 12:20

Re: Problem mit XML Turtoial von Chack
 
Hi,
geh mal bitte den SourceCode Zeile für Zeile durch und sag mir bitte wo der Fehler kommt. ;)

Chris

citybreaker 4. Apr 2004 12:22

Re: Problem mit XML Turtoial von Chack
 
Hier kommt er.
Delphi-Quellcode:
for j:=0 to length(NAMES[-1]) do begin

CalganX 4. Apr 2004 12:24

Re: Problem mit XML Turtoial von Chack
 
Hi,
ähm... mal eine Frage: woher kommt das [-1]? :shock: Das steht hoffentlich nicht in der PDF-File drin... :gruebel: Nimm das einfach mal raus.

Chris

MathiasSimmack 4. Apr 2004 12:28

Re: Problem mit XML Turtoial von Chack
 
Das liegt an dem "with" und dem Array "NAMES", weil "Names" auch eine Methode von TStrings ist. Entweder verzichtest du auf das "with", oder du benennst das Array um.

citybreaker 4. Apr 2004 12:32

Re: Problem mit XML Turtoial von Chack
 
So hab den Array nun auf "eintraege" geändert und die source auf
Delphi-Quellcode:
for j:=0 to length(eintraege)-1 do begin
.
Jetzt lässt sich das ganze nicht mehr Compilieren die oben angegebene Zeile
wird makiert und es folgendes angezeigt: "Inkompatible Typen: 'string' und 'array'."

MathiasSimmack 4. Apr 2004 12:47

Re: Problem mit XML Turtoial von Chack
 
Nimm´s mir nicht übel, aber du hast einen saumäßigen Code hingeschmiert. Lösch bspw. mal den "id"-Knoten aus deiner XML-Datei und probier´s noch mal. :roll:

Hier eine Variante, die funktioniert:
Delphi-Quellcode:
procedure TForm1.UpdateList;
const
  NAMES   : array[0..2]of string = ('name','format','ton');
var
  movies  : IXMLDOMNodeList;
  subNode : IXMLDOMNode;
  i,
  j       : integer;
  li      : TListItem;
begin
  if(xmldoc = nil) then exit;

  MovieList.Items.Clear;
  MovieList.Items.BeginUpdate;

  movies := xmldoc.selectNodes('//movie');
  for i := 0 to movies.length - 1 do
  begin
    subnode := movies.item[i].selectSingleNode('id');

    li     := MovieList.Items.Add;
    if(subnode <> nil) then li.Caption := subnode.text
      else li.Caption := '?';

    for j  := 0 to length(NAMES) - 1 do
    begin
      subnode := movies.item[i].selectSingleNode(NAMES[j]);
      if(subnode <> nil) then li.SubItems.Add(subnode.text)
        else li.SubItems.Add('unbekannt');
    end;
  end;

  MovieList.Items.EndUpdate;
end;
Neben einem genauen Blick ins Tutorial von Chakotay empfehle ich auch ein paar Grundlagen. Das wäre bei deiner Ratlosigkeit zur Fehlermeldung
Zitat:

"Inkompatible Typen: 'string' und 'array'."
sicher nicht verkehrt.


@Chakotay: Wie isses? Woll´n wir dein Tutorial noch zum Thema Doctypes und XSL ergänzen? :mrgreen:

citybreaker 4. Apr 2004 12:53

Re: Problem mit XML Turtoial von Chack
 
Ähm, ne klappt nicht. Ich glaube es liegt mal wieder an D3. >.<

MathiasSimmack 4. Apr 2004 12:55

Re: Problem mit XML Turtoial von Chack
 
Hm, mit
Zitat:

Ähm, ne klappt nicht.
kann ich nicht viel anfangen. Was klappt nicht?

citybreaker 4. Apr 2004 12:58

Re: Problem mit XML Turtoial von Chack
 
Das selbe wie vorher.

Zitat:

Delphi-Quellcode:
for j:=0 to length(eintraege)-1 do begin
Jetzt lässt sich das ganze nicht mehr Compilieren die oben angegebene Zeile
wird makiert und es folgendes angezeigt: "Inkompatible Typen: 'string' und 'array'."


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:33 Uhr.
Seite 2 von 4     12 34      

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