|
Jednotka Strings
Tradiční typ string má jednu velkou nevýhodu, jeho maximální délka je omezena na 255 znaků. Využijeme-li jednotky strings, můžeme tuto nesnáz obejít (ale zase máme jiné...)
Jednotka strings ovšem využívá některé nestandardní postupy, a proto při jejím použití musíme mít zapnutou volbu Compiler Options / Extended Syntax (nebo stačí na začátek programu, před samotné slovo program napsat {$X+} )
Jednotka strings zavádí tzv. ASCIIZ řetězce - řetězce, který jsou ukončeny znakem #0. Nikde tedy nemáme napsanou skutečnou délku řetězce. A ten může být libovolně dlouhý (maximum je cca. 65 000 písmen, ale my nepoužíváme proměnné k psaní románů, že...)
Jednotka strings zavádí nový typ (PChar), který nám umožňuje pracovat s ASCIIZ řetězci. type PChar = ^char; Tato jednotka obsahuje pouze funkce. Ale téměř všechny lze volat i jako procedury (nemusíme se jich ptát na výsledek).
Takže jdeme na to:
StrCopy(Dest,Source:PChar) :PChar; Zkopíruje Source do Dest (a vrací Dest) StrPCopy(Dest:PChar, Source : string) :PChar; Zkopíruje Source do Dest (a vrací Dest) StrLCopy(Dest,Source:PChar,L) :PChar; Zkopíruje Source do Dest (kopíruje maximálně L znaků) StrCat(Dest,Source:PChar) :PChar; Připojí Source k Dest StrLCat(Dest,Source:PChar,L) :PChar; Připojí Source k Dest, ale připojí max. L znaků StrLen(S:PChar):Word; Udává počet znaků v daném řetězci StrLower(S:PChar):PChar; Mění všechna velká písmena na malá. StrUpper(S:PChar):PChar; Mění všechna malá písmena na velká. StrPas(S:PChar) : string; Mění ASCIIZ řetězec na obyčejný string (maximálně prvních 255 znaků) StrComp(s1,s2:PChar) : Integer; Porovná dva řetězce. Výsledek je 0, jsou-li stejné. Záporné číslo, je-li s1 < s2 a číslo kladné znamená, že s1 > s2 StrIComp(s1,s2:PChar) : Integer; Pracuje stejně, ale nerozlišuje velká a malá písmena StrLComp(s1,s2:PChar,L) : Integer; Pracuje stejně jako StrComp, ale porovná pouze prvních L znaků. StrLIComp(s1,s2:PChar,L) : Integer; Stejně jako StrLComp porovná první L znaků dvou řetězců. Nerozlišuje velká a malá písmena.
To by bylo vše. Pokud se rozhodnete v některém programu zpracovávat delší řetězce, představuje toto naprosté minimum. Jinak se naučte pouze to, co vás zaujme. Pokud vás dané téma zajímá víc, podívejte se do Helpu a pročtěte si všechno o dynamicky alokovaných řetězcích.
Zdroj: http://programar.webpark.cz
|