

Delphi - zapis do stringu
...
var PomocnyString : string;
i : integer;
begin
for i:= 1 to StrLen(PChar(s)) do
begin
if (s[i] <> ' ') then
!!! PomocnyString[i] := s[i]
else
break;
end;
end;
Na radku s temi vykricniky mi vzdycky vyhodi Range check error, ale nechapu proc. s je parametr typu string a mezera v nem urcite je. Co chci ,aby to delalo: Do promenne PomocnyString potrebuju zkopirovat cast retezce s az po mezeru. Nebo se to snad dela uplne jinak? Pls, poradte mi.
jestli chceš z jednoho stringu do druhého od začátku do mezery:
Diky, ja vedel, ze to pujde nejak elegantneji, ale v helpu porad ne a ne najit tu spravnou funkci. Porad sem totiz hledal neco jako StrCopy nebo SubstrCopy.
Doporucuji v indexu najit: string handling routines
dostanes seznam vsech funkci pro praci s retezci
Chybu ti o zakrici, protoze pristupujes k prvku retezce, ktery neexistuje. PomocnyString je prazdny.
Pokud chces znat delku retezce, pouzij funkci Length(), nebudes muset retezec pretypovavat na PChar.
Tvuj puvodni upraveny priklad:
Samozrejme reseni od Azora je mnohem efektivnejsi...
Ešte dodám že dĺžka reťazca sa nastavuje prcedúrou SetLength.
AZORov príklad ti spraví kópiu reťazca aj s medzerou. Bez medzery by to malo byť takto: