![]() |
Integer Overflow
Hallo ich hab ne Frage. Ich hab ne Schleife gebastelt in ner Combobox die immer dann aufgerufen werden soll wenn man die Combobox ändert.
Delphi-Quellcode:
Wenn ich diesen Code ausführe, bekomme ich einen Integer Overflow. Was mach ich da falsch?
if Mapauswahl.ItemIndex = 0 then
begin Maplist.Clear; Mapliste := Downloadstatus.Get('http://www.redshakal.de/kknd/login/maplist/standard.php'); if Length(Mapliste) > 0 then begin StrArr := Explode('|', Mapliste); end; For i := 0 to 13 do begin LI:= Maplist.Items.Add; LI.Caption:= StrArr[i*3]; LI.SubItems.Add(StrArr[i*3+1]); LI.SubItems.Add(StrArr[i*3+2]); end; end; if Mapauswahl.ItemIndex = 1 then begin Maplist.Clear; Mapliste := Downloadstatus.Get('http://www.redshakal.de/kknd/login/maplist/custom.php'); if Length(Mapliste) > 0 then begin StrArr := Explode('|', Mapliste); end; For i := 0 to 5 do begin LI:= Maplist.Items.Add; LI.Caption:= StrArr[i*3]; LI.SubItems.Add(StrArr[i*3+1]); LI.SubItems.Add(StrArr[i*3+2]); end; end; |
Re: Integer Overflow
Hallo,
wo denn genau ? Heiko |
Re: Integer Overflow
Kannst Du den Fehler mit Auskommentieren von Befehlen eingrenzen?
Gruß Wolfgang |
Re: Integer Overflow
Zitat:
F9 auf die erste Zeile dann das Programm starten und sobald er da anhält mit F8 Zeile für Zeile weise ... bis es knallt |
Re: Integer Overflow
Ich vermute mal, der Integer-Overflow ist ein RangeError, der genau dann auftritt, wen StrArr nicht genügend Elemente beinhaltet.
|
Re: Integer Overflow
Ich weiss :-)
Gruß Wolfgang |
Re: Integer Overflow
@himitsu
Ich versuche, meinen Probanden einzuhämmern, daß ein Programm, egal in welcher Programmiersprache, immer laufen muß und Fehler sofort aufgespürt werden müssen. Späteres Aufspüren von Fehlern führt immer zu Zeitverlust. Beide Fehlersuchmethoden führen zum Ziel. Besser aber ist es, Fehler sofort auszumerzen. Gruß Wolfgang |
Re: Integer Overflow
Dagegen ist nichts einzuwenden, aber richtiges Debuggen ist meißt effektiver, als Bruteforce-mäßiges Probieren.
In diesem Fall ist dein Probieren gleich - Zeile auskommentieren LOOP - Programm laufen lassen - wenn abstürzt, dann mehr/andere Zeilen auskommentieren und weiter bei LOOP - wenn nicht mehr abstürzt, eventuell Zeilen wieder aktivieren, um den Fehler einzugrenzen und weiter bei LOOP - so lange, bis nur noch die fehlerverursachenden Zeilen auskommentiert sind Debuggen geht hier einfach, da das Problem anscheinend immer eintritt. Also debuggt man einfach Befehl für Befehl, schaut sich nebenbei eventuell noch ein paar Variablen an, ob die auch die richtigen Werte haben. Wenn es knallt, dann war der zuletzt ausgeführte Befehl der Auslöser und nun muß man nur noch den Grund erkennen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:47 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 by Thomas Breitkreuz