Einzelnen Beitrag anzeigen

Neotracer64

Registriert seit: 27. Okt 2004
292 Beiträge
 
Delphi 7 Professional
 
#1

Funktion mit Repeat-Schleife erzeugt falsches Ergebnis

  Alt 16. Aug 2005, 02:40
Es ist für mich wirklich ein Mysterium.
Ich poste jetzt mal eine Funktion, die etwas berechnen soll.
Zuerst kam etwas falsches raus, deswegen habe ich Testdrucke mit Showmessage eingebaut und plötzlich
kommt das richtige raus. Eigentlich dürfte der Befehl ShowMessage(); doch wohl kaum das Ergebnis beinflussen, aber seht selbst:

Delphi-Quellcode:
function CalculateSerial: String;
var
  CalcString : String;
  i: Integer;
  edx: Integer;
begin

CalcString := 'Aimkill';
i:=1;

Repeat
edx := edx + ord(CalcString[i]);
//Showmessage(CalcString[i]+' -- '+ IntToStr(ord(CalcString[i])));
i:=i+2;
Until i > Length(CalcString);

result:=IntToStr(edx);

end;
Ergebnis ohne ShowMessage: 4405795
Ergebnis mit Showmessage: 387

Das Ergebnis mit ShowMessage stimmt. Ich hab nachgerechnet.
Nun bin ich gespannt was ihr dazu sagt.
  Mit Zitat antworten Zitat