Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.054 Beiträge
 
Delphi 12 Athens
 
#10

Re: ReverseString für ältere Delphi-Versionen

  Alt 12. Dez 2009, 00:44
Nein, beim Result ist es was Anderes, der wird nicht automatisch initialisiert, so wie es bei normalen Variablen der Fall ist.

Wie gesagt, probier es einfach mal aus.
ShowMessage zeigt nacheinander dieses an:

1. Aufruf: Result/S=321
2. Aufruf: Result/S=321321
3. Aufruf: Result/S=321321321
4. Aufruf: Result/S=321321321321
5. Aufruf: Result/S=321321321321321
6. Aufruf: Result/S=321321321321321321
7. Aufruf: Result/S=321321321321321321321
8. Aufruf: Result/S=321321321321321321321321
9. Aufruf: Result/S=321321321321321321321321321
10. Aufruf: Result/S=321321321321321321321321321321


Dieser Code:
Delphi-Quellcode:
function ReverseString(const s: Ansistring): Ansistring;
var i : integer;
begin
  for i := Length(s) downto 1 do
    Result := Result + s[i];
end;

var S, S2: AnsiString;
  i: Integer;

S := '123';
for i := 0 to 9 do
begin
  S2 := ReverseString(S);
  ShowMessage(S2);
end;
enspricht intern eigentlich diesem:
Delphi-Quellcode:
procedure ReverseString(const s: Ansistring; var Result: Ansistring);
var i : integer;
begin
  for i := Length(s) downto 1 do
    Result := Result + s[i];
end;

var S, S2: AnsiString;
  i: Integer;

S := '123';
for i := 0 to 9 do
begin
  ReverseString(S, S2);
  ShowMessage(S2);
end;
Und nun erkennt man bestimmt auch, warum es dort nicht funktioneren kann.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat