Jak napisać procedurę, która odwraca litery w łańcuchu tekstowym
Adam Boduch
Aby odwrócić tekst w łańcuchu tekstowym, należy skorzystać z funkcji ReverseString z modułu StrUtils.
Można również napisać swoją funkcję która opiera się na prostej pętli For:
function Reverse(Value: String): String;
var
i : Integer;
begin
for I := Length(Value) downto 1 do
Result := Result + Value[i];
end;
Teraz po wywołaniu tej procedury z parametrem 'Adam'
zwróci wyraz: 'madA'
.
...poza tym taka operacja jak Result = Result + char zajmuje dużo czasu na przekopiowanie tekstu. Lepiej jest przydzielić dynamicznie pamięć dla Result'a i w pętli for przez Result[i] przydzielać znak gdyż dostęp do znaku w stringu jest szybszy.
LoL, a ReverseString() ?! :)
a nie powinno byc downto 1? ... bo string[0] zdaje sie ze kiedys mial zapisana dlugosc, ale obecnego (od kiedy domyslnie string != shortstring) przeznaczenia nie znam ... :/
nie ma obecnego przeznaczenia (sic!)
przy próbie dostępu do Str[0] wyskakuje błąd <code=:noframe>[Error] Element 0 inaccessible - use 'Length' or 'SetLength'