![]() |
Param. einer URL ändern: Listenindex überschreitet das Max.
Hallo,
Ich habe nach langen suchen endlich den Fehler in meiner Anwendung gefunden und habe hier mal eine Prozedur, die den Fehler veranschaulicht.
Delphi-Quellcode:
Folgender Aufruf klappt ohne Probleme:
procedure testfunc(const s: string; sl: TStrings);
var i: Integer; t: string; begin sl.Clear; with TStringList.Create do try Delimiter := '&'; StrictDelimiter := True; DelimitedText := s; for i := 0 to Pred(Count) do begin t := ValueFromIndex[i]; //showmessage(t); ValueFromIndex[i] := ValueFromIndex[i] + '!test!'; sl.Add(DelimitedText); ValueFromIndex[i] := t; end; finally Free; end; end;
Delphi-Quellcode:
Aber folgender Aufruf erzeugt den Fehler:
var sl:tstringlist;
begin sl:=tstringlist.create; testfunc('http://test.de/index.php?id=5&s=abc&leer=',sl); showmessage(sl.text); end;
Delphi-Quellcode:
Kann mir jemand sagen, wieso das so ist und wie man das verhindern kann?
var sl:tstringlist;
begin sl:=tstringlist.create; testfunc('http://test.de/index.php?id=5&s=&leer=',sl); showmessage(sl.text); end; Eigentlich hätte ich diese Ausgabe erwartet: Zitat:
Ich habe herausgefunden, dass der Fehler nur auftritt, wenn 2 mal hintereinander ein leerer Parameter in der URL vorkommt. Wieso ist das so, etwa ein Bug? :x // |
Re: Param. einer URL ändern: Listenindex überschreitet das M
Also ich habe das Problem jetzt erstmal so gelöst:
Delphi-Quellcode:
Nicht die beste Lösung, aber naja... :roll:
procedure testfunc(const s: string; sl: TStrings);
var i: Integer; //t: string; begin sl.Clear; with TStringList.Create do try Delimiter := '&'; StrictDelimiter := True; DelimitedText := s; for i := 0 to Pred(Count) do begin DelimitedText := s; //t := ValueFromIndex[i]; //showmessage(t); ValueFromIndex[i] := ValueFromIndex[i] + '!test!'; sl.Add(DelimitedText); //ValueFromIndex[i] := t; end; finally Free; end; end; Vielleicht kann mir ja noch jemand sagen, wieso es vorher nicht geklappt hat. Danke :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 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