Tipul sir de caractere
Sirul vid
se reprezinta astfel: “”, ‘’, [].
Sirul ion”ana
poate fi reprezentat in doua moduri: ‘ion”ana’ sau [ion”ana]
Astfel,
prin combinatii de caractere terminale putem include in sir orice caracter.
Operatori
de concatenare:
Operator |
Semnificatie |
+ |
Concatenare
simpla- alipeste al doilea sir la sfarsitul primului |
- |
Concatenare
speciala- blancurile de la sfarsitul primului sir sunt trecute la sfarsitul
sirului final |
Exemple:
?
’strada**’ + ‘George Cosbuc’
strada**George
Cosbuc
?
’strada** ’ + ‘George Cosbuc’
?
’strada**’ - ‘George Cosbuc’
strada**George
Cosbuc
?
’strada** ’ - ‘George Cosbuc’
strada**George
Cosbuc___
Operatori
relationali:
Operator |
Semnificatie |
$ |
Inclus in |
< |
Mai mic
decat |
> |
Mai mare
decat |
<>,
#, != |
Diferit
de |
<= |
Mai mic
sau egal |
>= |
Mai mare
sau egal |
= = |
Identic |
Exemplu:
? ‘ion’
$ ‘minion’
.T.
Functii
siruri caractere:
Functie |
Efect |
LEN(sir) |
Returneaza
lungimea sirului sir ?
LEN(‘Bucuresti’) 9 |
SUBSTR(sir,
nr_nat1, [nr_nat2]) |
Extrage un
subsir din sirul sir incepand cu caracterul de pe pozitia nr_nat1 de lungime nr_nat2 ? SUBSTR(‘ABCDEF’, 2, 3) BCD ?
SUBSTR(‘ABCDEF’, 3) CDEF |
REPLICATE(sir,
nr_nat) |
Multiplica
sir de nr_nat ori ?
REPLICATE(‘Ana’, 3) AnaAnaAna |
LEFT(sir,
nr_nat) |
Extrage
primele nr_nat caractere din sir ?
LEFT(‘ABCD’, 3) ABC |
RIGHT(sir,
nr_nat) |
Extrage
ultimele nr_nat caractere din sir ?
RIGHT(‘ABCD’, 2) CD |
LTRIM(sir) |
Elimina
spatiile de la stanga sirului sir ?’abc’
+ LTRIM(‘ LEI’) abcLEI |
RTRIM(sir) TRIM(sir) |
Elimina
spatiile de la dreapta sirului sir ?
RTRIM(‘LEI ’) +’abc’ LEIabc |
ALLTRIM(sir) |
Elimina
spatiile din stanga si din dreapta sirului sir ?
‘abc’ + ALLTRIM(‘ LEI ’) + ‘xyz’ abcLEIxyz |
LOWER(sir) |
Transforma
caracterele sirului sir in minuscule ?
LOWER(‘VArA’) vara |
UPPER(sir) |
Transforma
caracterele sirului sir in majuscule ?
UPPER(‘vAra’) VARA |
PROPER(sir) |
Transforma
sir in format titlu ?
PROPER(‘vArA’) Vara |
AT(sir1,
sir2) |
Intoarce
pozitia sirului sir1 in sir2 facand diferenta intre minuscule
si majuscule (pozitia primei aparitii a unui subsir (sir1) intr-un text(sir2) ?
AT(‘NR’, ‘str. Ploii nr. 5’) 0 |
ATC(sir1,
sir2) |
Intoarce
pozitia sirului sir1 in sir2 ignorand tipul literelor ? ATC(‘NR’,
‘str. Ploii nr. 5’) 12 |
OCCURS(sir1,
sir2) |
Numara aparitiile
sirului sir1 in sir2 ?
OCCURS(‘bra’, ‘abracadabra’) 2 ?
OCCURS(‘bra’, ‘abracadaBra’) 1 |
STR(ex_nu,
[nr_nat1 [, nr_nat2] ]) |
Conversie
la sir a ex_nu; nr_nat1 reprezinta lungimea totala a sirului
obtinut, nr_nat2 reprezinta numarul de cifre pentru partea zecimala.
Punctul reprezinta si el un caracter. ?
STR(1432.456, 12, 4) 1432.4560 ?
STR(1432.456, 3, 2) *** ?
STR(1432.456, 7, 2) 1432.46 ?
STR(1432.456, 4) 1432 ?
STR(1432.456, 7) 1432 ?
STR(1432.456) 1432 |
VAL(sir) |
Converteste
sir la numar ?
VAL(‘ 1433.44’) 1433.44 ?
VAL(‘23CG’) 23.00 ?
VAL(‘nj98’) 0.00 |
SPACE(nr_nat) |
Intoarce
un sir de nr_nat spatii ? ‘a’+
SPACE(2) + ‘b’ a b |
PADR(sir,
nr_nat, [caracter]) |
Completeaza
sirul sir cu caracterul caracter la dreapta pana cand lungimea acestuia
devine nr_nat ?
PADR(‘Aliniat dreapta’, 20,’*’) Aliniat
dreapta***** ?
PADR(‘Aliniat dreapta’, 20) +’zzz’ Aliniat
dreapta zzz |
PADL(sir,
nr_nat, [caracter]) |
Completeaza
sirul sir cu caracterul caracter la stanga pana cand lungimea acestuia
devine nr_nat ?
PADL(‘Aliniat stanga’, 20,’*’) ******Aliniat
stanga ? ‘zzz’ + PADL(‘Aliniat stanga’, 20) zzz Aliniat stanga |
PADC(sir,
nr_nat, [caracter]) |
Completeaza
sirul sir cu caracterul caracter la stanga si la dreapta pana
cand lungimea acestuia devine nr_nat, iar sirul initial este centrat ?
PADC(‘Aliniat centru’, 20,’*’) ***Aliniat
centru*** ? ‘zzz’ + PADL(‘Aliniat centru’, 20) + ‘hhh’ zzz Aliniat centru hhh |
CHRTRAN(sir1,
sir2, sir3) |
Transforma
sir1 astfel: -din sir1
se ia primul caracter c, se cauta in sir2, in caz ca se gaseste
pe pozitia p, caracterul c este inlocuit cu caracterul de pe
pozitia p din sir3, daca aceasta pozitie exista, altfel
c este sters din sir1; daca c nu este gasit in sir2
va ramane neschimbat -analog restul caracterelor din sir1 ?
CHRTRAN(‘bomba’, ‘ba’, ‘pe’) pompe ?
CHRTRAN(‘compuse’, ‘mpse’, ‘nfz’) confuz |
STRTRAN(sir1,
sir2, [sir3], [nr_nat1], [nr_nat2]) |
Inlocuieste
aparitiile subsirului sir2 in sir1 cu sir3 astfel: se
fac nr_nat2 inlocuiri incepand cu aparitia nr_nat1 a lui sir2
in sir1. ?
STRTRAN(‘mers personal si vers
personal’,’ers’,’***’,2,1) mers
p***onal si vers personal |
STUFF(sir1,
nr_nat1, nr_nat2, sir2) |
In sirul sir1, incepand cu pozitia nr_nat1
se inlocuiesc nr_nat2 caractere cu sirul sir2 ? STUFF(‘paralelogram’,3,2,’*****’) pa*****lelogram |