logo

.
Wednesday 08th of September 2010    

Ankety

Co tu není dobré ?
 

Přihlášení



Provoz stránek

návštěv dnes: 59
návštěv včera: 62
návštěv za měsíc: 486
návštěv celkem: 17790

Home Škola PASCAL 25 unita "Strings"
25 unita "Strings" Tisk Email
Hodnocení uživatelů: / 0
NejhoršíNejlepší 
Napsal uživatel Administrator   
Čtvrtek, 05 Listopad 2009 09:23

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

 
bottom

top

kolik vás je ?

Právě připojeni - hostů: 10 

bottom

Založeno na Joomla!. Designed by: Free Joomla 1.5 Template, dns. Valid XHTML and CSS.