Thema: Delphi Probleme mit SetLength

Einzelnen Beitrag anzeigen

quantum

Registriert seit: 15. Apr 2006
Ort: Kassel
64 Beiträge
 
Delphi XE Professional
 
#10

Re: Probleme mit SetLength

  Alt 26. Feb 2009, 13:54
Zitat von Bbommel:
Laut OP tritt das Problem allerdings ja in der anderen if-Bedingung auf, also nicht bei
SetLength(Start, counter1-1); sondern bei
SetLength(output, StartInt);
Ja das sieht auch "murksisch" aus
Delphi-Quellcode:
Delete(output,1,2); <--- 2 Zeichen löschen
SetLength(output, StartInt); <--- stimmt jetzt StartInt noch, da im String 2 Zeichen fehlen?
Und ist StartInt überhaupt irgendwo initialisiert?

Zitat von Bbommel:
Wobei natürlich auch das von dir zitierte problematisch ist, aber eigentlich sollte er für den Fall von counter1=0 schon an dieser if-Bedingung scheitern:
Zitat von quantum:
  if Points[Line][counter1]='-then
Denn Points[Line][0] ist zwar murks, sollte aber eigentlich nicht gleich "-" werden.
Es wird dennoch beim ersten mal auf Points[Line][0] zugegriffen. Was der Code danach tut, möchte ich lieber nicht wissen
for counter1 := 0 to Length(Points[Line])-1 do sollte mal durch
for counter1 := 1 to Length(Points[Line])-1 do ersetzt werden.

Meiner Meinung nach gibt es in dem Code eine Vielzahl von potentiellen Grenzüberschreitungen. Der Range-Check sollte mal in den Compiler-Options aktiviert werden, dann kann der Debugger gleich zum Murks springen.
  Mit Zitat antworten Zitat