Einzelnen Beitrag anzeigen

luke2

Registriert seit: 17. Jun 2009
117 Beiträge
 
#1

EIntOverflow bei Generierung von Zeichenketten

  Alt 4. Feb 2012, 12:38
Delphi-Version: 2007
Hallo!

Ich habe folgenden Testcode um einige Zeichenketten im brute-force-style zu generieren.
Delphi-Quellcode:
var s:string;p:pchar;i:integer;
begin
  s := #97; //#97 = 'a'
  p := pchar(s);
  for i := 1 to 5000 do
  begin
    writeln(s);
    if p^ = #122 then //#122 = 'z'
    begin
      s := s + #97;
      inc(p);
    end
    else
      inc(p^);
  end;
  writeln('ok');
  readln
end.
An diesem Code scheint irgendwas nicht zu stimmen. Von a bis zzza werden alle Zeichenketten korrekt generiert, aber danach ändert sich nichts mehr und irgendwann tritt ein Integerüberlauf in der Zeile inc(p^) auf.
Kann mir jemand sagen was daran falsch ist? Es hat wahrscheinlich etwas mit dem Zeiger (PChar) zu tun, oder?

Geändert von luke2 ( 4. Feb 2012 um 12:44 Uhr)
  Mit Zitat antworten Zitat