Forum: Sonstige Fragen zu Delphi
Delphi
by SirThornberry,
11. Jul 2009
Naja, in deinem speziellen Fall macht es keinen Sinn. Denn es wird auf Byte gecastet und damit ist es gar nicht möglich das der Wert größer 255 ist :wink:
Ebenso fällt mir auf das somit
if Ord(txt) > 255 then
begin
txt := Chr( Ord(txt) - 256 );
end;
auch bei neuen Delphiversionen nicht nötig ist da eben durch den Cast auf Byte sichergestellt wird das ein Überlauf statt findet und...
Forum: Sonstige Fragen zu Delphi
Delphi
by SirThornberry,
11. Jul 2009
STOP - die Funktion oben ist Fehlerhaft :mrgreen:
genau gesagt ist folgendes fehlerhaft:
if Ord(txt) >= 255 then
begin
txt := Chr( Ord(txt) - 255 );
end;
richtig ist
Forum: Sonstige Fragen zu Delphi
Delphi
by SirThornberry,
11. Jul 2009
Fast richtig. In C++ läuft die schleife von 0 bis Length - 1, in Delphi jedoch von 1 bis Length. Die schleifenvariable wird jedoch für die Verschlüsselung verwendet :tongue: In C++ werden also zur Verschlüsselung die Werte 0,...,length - 1 verwendet und bei den gezeigten Delphicodes 1,...,length was zu unterschiedlichen Werten führt.
Forum: Sonstige Fragen zu Delphi
Delphi
by SirThornberry,
11. Jul 2009
Der Code funktioniert in Delphi mit normalen AnsiStrings eventuell nicht.
Und das erkennt man eben daran:
if(string > (0xff))
Denn ein einzelnes Zeichen kann in Delphi keinen Wert größer 255 haben. Allerdings kann es auch sein das ein normaler String doch geht, denn beim Überlauf passiert genau das gleiche. Denn wenn auf 255 beispielsweise 2 addiert werden kommt 257 raus was bei einem...