Tipul sir de caractere

 

 

Exemple de siruri de caractere: ‘Ion’, “carte”, [25 lei].

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’

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

?AT(‘nr’, ‘str. Ploii nr. 5’)

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