Teksti- ehk stringifunktsioonid

Free Pascal’is, kasutatavate tekstifunktsioonide kirjeldused. Töötavad ainult uses Strings puhul.

Tekstifunktsioonid:

StrAlloc Eraldab mälus uuele stringile ruumi ja seab sellele stringile viida.

Deklareerimine: function stralloc(L: SizeInt) : pchar;

Kasutusnäide: Txt2:=StrAlloc(StrLen(Txt1)+1); // Txt1 ise peab olema Pchar tüüpi muutuja

 

StrCat Liidab kaks 0-lõppevat stringi. Lisab allikstrikgi sihtstingile ja väljastab sihtstringi

Deklareerimine: function strcat(sihtstring: pchar; allikstring: pchar) : pchar;

Kasutusnäide: StrCat(Txt1, Txt2); // lisab Txt1-le Txt2, mõlemad peavad olema Pchar tüüpi muutujad ja Txt1-s peab olema piisavalt ruumi

 

StrComp Võrdleb kahte 0-lõpuga stringi S1 ja S2, väljastab tulemuse pika täisarvuna (LongInt): kui S1<S2, siis negatiivne täisarv; kui S1=S2, siis 0; kui S1>S2, siis positiivse täisarvu

Deklareerimine: function strcomp(str1: pchar;str2: pchar) : SizeInt;

Kasutusnäide: y:=StrComp(Txt1, Txt2); // y peab olema defineeritud LongInt tüüpi muutujana

 

StrECopy Teeb sama, mis StrCat (llidab stringid) kuid paigutab viida kopeeritud stringi lõpu peale (lõpus asuva 0 peale)

Deklareerimine: function strecopy(sihtstring: pchar; allikstring: pchar) : pchar;

 

StrEnd Väljastab viida 0-lõpuga stringi lõpule

Deklareerimine: function strend(p: pchar) : pchar;

 

StrIComp võrdleb kahte 0-lõpuga stringi, tõstetundetu, väljastab tulemuse pika täisarvuna (LongInt): kui S1<S2, siis negatiivne täisarv; kui S1=S2, siis 0; kui S1>S2, siis positiivse täisarvu

Deklareerimine: function stricomp(str1: pchar;str2: pchar) : SizeInt;

 

StrLCat liidab kaks 0-lõpuga stringi pikkused. Lisab MaxLen arvu sümboleid allikstringist sihtsringile, lisab lõppu 0 ja väljastab sihtstringi

Deklareerimine: function strlcat(sihtstring: pchar; allikstring: pchar; l: SizeInt) : pchar;

 

StrLComp võrdleb etteantud L sümboli ulatuses kahte 0-lõpuga stringi, väljastab tulemuse pika täisarvuna (LongInt): kui S1<S2, siis negatiivne täisarv; kui S1=S2, siis 0; kui S1>S2, siis positiivse täisarvu.

Deklareerimine: function strlcomp(str1: pchar; str2: pchar; L: SizeInt) : SizeInt;

Program Stringinaide1;
Uses strings;
(* Programm StrCat funktsiooni demonstreerimiseks *)
Const Pstr1:PChar = ’ See on PChar string. ’;
Var Pstr2:PChar;
begin
Pstr2:= StrAlloc(StrLen (Pstr1)*2+1); (* stralloc - m2lu reserveerimine uuele stringile *)
StrMove (Pstr2 ,Pstr1, StrLen(Pstr1 )+1); (* Pstr2=Pstr1 *)
StrCat(Pstr2 ,Pstr1); (* Liidame Pstr2 veelkord *)
Writeln(’Pstr2: ’ ,Pstr2);
StrDispose(Pstr2);
end.

StrLCopy Kopeerib piiratud arvu (MaxLen) sümboleid allikstringist sihtstringi ja lõpetab viimase 0-ga

Deklareerimine: function strlcopy(sihtstring: pchar; allikstring: pchar; maxlen: SizeInt) : pchar;

 

StrLen Väljastab 0-lõpuga Pstr-nimelise stringi pikkuse

Deklareerimine: function strlen(Pstr: pchar) : sizeint;

StrLIComp võrdleb etteantud L sümboli ulatuses kahte 0-lõpuga stringi (tõstutundetu!), väljastab tulemuse pika täisarvuna (LongInt): kui S1<S2, siis negatiivne täisarv; kui S1=S2, siis 0; kui S1>S2, siis positiivse täisarvu

Deklareerimine: function strlicomp(str1: pchar; str2: pchar; l: SizeInt) : SizeInt;

StrLower Teisendab 0-lõpuga Pstr-nimelise stringi väiketähtedega stringiks ja väljastab Pstr

Deklareerimine: function strlower(Pstr: pchar) : pchar;

 

StrMove Teisaldab 0-lõpuga stringi uude sihtstringi ja ei kopeeri stringi lõppu tähistavat 0, väljastab sihtstringi viida

Deklareerimine: function strmove(sihtstring: pchar; allikstring: pchar; l: SizeInt) : pchar;

 

StrNew Eraldab mälu uuele 0-lõpuga Pstr-nimelisele stringile. Väljastb Nil, kui mälu ei jätku

Deklareerimine: function strnew(Pstr: pchar);

 

StrPas Teisendab 0-lõpuga stringi Shortstring tüüpi stringiks, stringi pikkus lõigatakse 255 sümboli pikkuseks, kui juhtus pikem olema

Deklareerimine: function strpas(Pstr: pchar) : shortstring;

 

StrPCopy Teisendab Pascal allikstringi ja kopeerib ta 0-lõpuga sihtstringi (ei kontrolli sihtstringi pikkust), programmeerija peab eelnevalt kontrollima, kas sihtstringi pikkus on sobiv (allikstringi pikkus+1 bait)

Deklareerimine: function strpcopy(sihtstring: pchar; const allikstring: String) : pchar;

 

StrPos Otsib 0-lõpuga alamstringi 0-lõpuga stringist. Väljastab viida esimesele Str2 esinemiskohale Str1-s. Kui Str2 ei leita Str1 seest, siis väljastab Nil.

Deklareerimine: strpos(Str1: pchar; Str2: pchar) : pchar;

 

StrRScan Otsib 0-lõpuga alamstringist etteantud sümbolit C. Väljastab viida esimesele C esinemiskohale Str-s. Kui C ei leita Str seest, siis väljastab Nil. (vt StrScan)

Deklareerimine: function strrscan(Str: pchar; C: Char) : pchar;

 

StrScan Otsib 0-lõpuga alamstringist etteantud sümbolit C. Väljastab viida esimesele C esinemiskohale Str-s. Kui C ei leita Str seest, siis väljastab Nil. (vt StrRScan)

Deklareerimine: function strscan(Str: pchar; C: Char) : pchar;

 

StrUpper Teisendab 0-lõpuga alamstringi suurtähtedega stringiks ja väljastab viimase

Deklareerimine: function strupper(PStr: pchar) : pchar;

program Stringinaide2;  // üks näide veel
uses strings, strutils,crt; // Kasutame kõiki stringifunktsioone
var
s:string;
spchar:Pchar;
begin
clrscr;
writeln('Sisestage oma nimi!');
readln(s);
spchar:=StrAlloc(Length(s)+1);  // Tavaliste stringide pikkuse saab funktsiooniga Length !
StrPCopy(spchar,s);    //Kopeerime küsitud teksti PChar tüüpi strigi
textcolor(3);
writeln('Nimeks oli: ',AnsiProperCase(s,stdWordDelims));
textcolor(5);
writeln('Nimi suurt2htedes on: ',StrUpper(spchar));
writeln('Nime pikkus on: ',StrLen(spchar));
readln;
end.

Teksti ja stringiprotseduurid:

StrDispose vabastab StrAlloc funktsiooniga stringile tellitud mälu

Deklareerimine: procedure strdispose(p: pchar);

Kasutusnäide: StrDispose(Txt1); // Vabastab Txt1 eraldatud mälupiirkonna