AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi problem mit listenindex überschreitet maximum

problem mit listenindex überschreitet maximum

Ein Thema von sn0w · begonnen am 21. Apr 2005 · letzter Beitrag vom 23. Apr 2005
 
sn0w

Registriert seit: 21. Apr 2005
7 Beiträge
 
#1

problem mit listenindex überschreitet maximum

  Alt 21. Apr 2005, 15:54
hallo DPler,

beschäftige mich seid gut 2 wochen mit delphi und und bekomm irgendwie meinen fehler nicht ausgebügelt. folgendes... ich hab 2 listen. die eine (ListeModel) wird aus der datenbank ausgelesen und enthält alle bereits vorhandenen artikel. die 2.(Artikel[I].ARTIKELNUMMER) kommt aus ner csv und ist eine täglich aktualisierte liste mit artikeln. dort sind halt bereits angelegte artikel drin, aber auch neue. mit indexof prüfe ich nun ab, ob die artikel der csv in der liste der bereits vorhandenen artikel existiert oder nicht. wenn sie nicht existieren, werden sie in eine weitere liste eingefügt und in der db angelegt. wenn sie existieren werden die gefundene nummern in eine andereliste gespeichert (reine sichtprüfung) und in der db upgedated. das funktioniert auch soweit ganz gut, solange sich die neuen artikel irgendwo zwischen listenanfang und listenende der bereits angelegten artikel befinden. sobald jedoch alle artikel der bereitsangelegten artikel aktualisiert wurden, steigt er mir mit nem listeneindex überschreitet maximum (position ist der letzte eintrag in ListeModel) aus und ich kapier einfach nicht, warum.Solange der letze Artikel von ListeModel nicht aktualisiert wurde, fügt er ohne probleme neue artikel ein. ist er aktualisiert worden geht er die liste mit den neuen artikeln nicht mehr durch und fügt die da befindlichen artikel auch nicht mehr in die datenbank ein. hier der code zur veranschaulichung.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var I : Integer;
        Zaehler : Integer;
        SQL : String;
        Updatezeit : String;

begin
      Updatezeit := make_timestamp(now);
      if ListeModelID.Items.Count-1 >-1 then
      Zaehler := StrToInt(ListeModelID.Items[ListeModelID.Items.Count-1]) else //wert des letzten zählers
      Zaehler :=0 ;
      Gauge1.Progress := 0;
      Gauge1.MaxValue := ArtikelCount-1;
      For I:=0 to ArtikelCount-1 Do begin
      Gauge1.Progress := I;
     If (Artikel[I].ENDKUNDE='JA') AND (Artikel[I].VERFUEGBARKEIT='JA') then
     begin
        if ListeModel.items.indexof(Artikel[I].ARTIKELNUMMER) =-1 then
      begin
          //insert neue artikel
           Zaehler :=Zaehler+1;
           Application.ProcessMessages;
           ListeUnbekannt.Items.Add(Artikel[I].ARTIKELNUMMER);
           SQL := 'INSERT INTO products VALUES (';....

      end else
      begin
        //update vorhandene artikel

           Application.ProcessMessages;
           ListeUpdate.Items.Add(Artikel[I].ARTIKELNUMMER);
           SQL := 'UPDATE products SET products_ean=';
            ...
      end;
      end;
   end;
end;
wäre super, wenn mir jemand n tip geben kann, woran das liegt, bzw wie ich den fehler beheben kann.

gruß
sn0w
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz