CATEGORII DOCUMENTE |
In FOXPRO expresiile pot fi formate din:
campuri ale bazei de date;
variabile de memorie;
constante - caracterizate prin aceea ca au valoare invariabila; pot fi de urmatoarele tipuri:
o numerice: intregi sau zecimale;
o logice: T sau F;
o siruri de caractere: orice caracter imprimabil inchis intre " " .
operatori;
functii.
Operatorii pot fi de urmatoarele tipuri:
aritmetici: +, -, *, /, %, **, ^, ( ). Rezultatul folosirii unui astfel de operator este o valoare numerica.
relationali: <, >, =, <>, #, != , <=, >=, $. Rezultatul folosirii unui astfel de operator este o valoare logica. Operatorul "$" este valabil numai pentru siruri de caractere, iar semnificatia sa este ca returneaza "true" daca o expresie de tip sir de caractere este continuta in alta expresie de tip sir de caractere. Operatorii relationali pot fi aplicati si asupra operanzilor de tip data calendaristica.
logici: Se aplica numai operanzilor logici si genereaza rezultate logice. Aceasta categorie contine urmatorii operatori:
o !, NOT - negatia logica;
o AND - conjunctia logica;
o OR - disjunctia logica.
operatori pentru siruri de caractere: Se aplica numai asupra sirurilor de caractere, iar rezultatul lor este tot un sir de caractere. Din aceasta categorie fac parte doi operatori, si anume:
o + : operatorul de concatenare - alipeste al doilea sir de caractere la sfarsitul primului, fara nici un fel de transformari;
o - : concatenare cu anexarea spatiilor dintre cele doua siruri de caractere la sfarsitul sirului rezultat.
Precedenta operatorilor:
Operatorii relationali si operatorii pentru siruri de caractere au un singur nivel de precedenta: operatiile se executa in ordine, de la stanga la dreapta.
Operatorii aritmetici au urmatoarea ordine de precedenta:
+, - : operatori unari;
: operatorul de ridicare la putere;
+, - : operatori binari.
Operatorii logici au urmatoarea ordine de precedenta:
.NOT.
.AND.
.OR.
Daca intr-o expresie apar mai multe tipuri de operatori, ordinea de evaluare a acestora va fi:
Operatorii aritmetici si pentru siruri de caractere;
Operatorii relationali;
Operatorii logici.
Functiile: sunt un instrument foarte puternic pentru construirea de expresii in FOXPRO. In functie de rezultatul aplicarii lor, functiile se grupeaza in trei clase.
Functii cu rezultat numeric:
care au ca argument expresii numerice:
INT (<expN>) - Afiseaza partea intreaga a expresiei numerice specificata.
Exemplu:
STORE 999.99 TO R1
? R1
(se afiseaza pe ecran valoarea 999.99)
STORE INT(R1) TO I1
? I1
(se afiseaza pe ecran valoarea 999)
STORE INT(999.99) TO I2
? I2
(se afiseaza pe ecran aceeasi valoare, 999.99)
MOD (<expN1>, <expN2>) - Imparte expresia numerica <expN1> la expresia numerica <expN2> si returneaza restul impartirii.
ABS (<expN>) - Afiseaza valoarea absoluta a expresiei numerice specificate, <expN>.
SIGN (<expN>) - Afiseaza semnul expresiei numerice specificate (adica -1 daca <expN> < 0, 1 daca <expN> > 0 si 0 daca <expN> = 0).
CEILING (<expN>) - Afiseaza cel mai mic intreg care este mai mare sau egal cu expresia numerica specificata.
FLOOR (<expN>) - Afiseaza cel mai mare intreg care este mai mic sau egal cu expresia numerica specificata.
ROUND (<expN1>, <expN2>) - Afiseaza expresia numerica <expN1>, rotunjita la un numar bine determinat de cifre zecimale, precizat de <expN2>.
EXP (<expN>) - Afiseaza valoarea lui e<expN> , unde <expN> este o expresie numerica specificata.
LOG (<expN>) - Afiseaza logaritmul natural (de baza e) din expresia numerica specificata, <expN>.
LOG10 (<expN>) - Afiseaza logaritmul zecimal (de baza 10) din expresia numerica specificata, <expN>.
SQRT (<expN>) - Afiseaza radicalul din expresia numerica specificata, <expN>.
PI ( ) - Afiseaza constanta numerica p
care au ca argument siruri de caractere:
LEN (<expC>) - Returneaza lungimea unui sir de caractere (numarul de caractere din acel sir).
Exemplu:
? LEN ("PLATINA")
(se afiseaza pe ecran valoarea 7)
STORE "PLATINA" TO MP
? LEN(MP)
(se afiseaza pe ecran valoarea 7)
? LEN("INEL DE"+MP)
(se afiseaza pe ecran valoarea 15)
AT (<expC1>, <expC2> [, <expN>] ) - Cauta prima aparitie a sirului de caractere <expC1> in sirul de caractere <expC2> . Folosirea expresiei numerice <expN> permite sa precizam a cata aparitie a sirului de cautat incheie actiunea de cautare - adica, se cauta a <expN>-a aparitie a sirului <expC1> in sirul <expC2>.
Exemplu:
STORE "LACRIMA" TO SIR
? SIR
(se afiseaza pe ecran valoarea "LACRIMA")
STORE "ACR" TO SUBSIR
? SUBSIR
(se afiseaza pe ecran valoarea "ACR")
? AT(SUBSIR, SIR)
(se afiseaza pe ecran valoarea 2)
STORE AT("RACI", "MIRACOL") TO I
? I
(se afiseaza pe ecran valoarea 0)
OCCURS (<expC1>, <expC2>) - Indica numarul de aparitii ale subsirului de caractere <expC1> in sirul de caractere <expC2>.
VAL (<expC>) - Realizeaza conversia unui sir de caractere in numarul intreg corespunzator.
Exemplu:
STORE VAL ("123") TO I1
? I1
(se afiseaza pe ecran valoarea 123.00)
STORE VAL ("12.345") TO I2
? I2
(se afiseaza pe ecran valoarea 12.35)
STORE VAL ("12"+"123.4") TO I3
? I3
(se afiseaza pe ecran valoarea 12123.4)
STORE "1APR1988" TO REX
? REX
(se afiseaza pe ecran valoarea "1APR1988")
? VAL(REX)
(se afiseaza pe ecran valoarea 1.00)
STORE VAL("APR1988")TO S1
? S1
(se afiseaza pe ecran valoarea 0.00)
aplicate la nivelul inregistrarilor unei baze de date:
RECNO ( ) : Returneaza numarul inregistrarii curente din baza de date curenta sau cea specificata. In plus, RECNO( ) returneaza o valoarea mai mare cu 1 decat numarul inregistrarilor din baza de date, daca pointerul de inregistrari este pozitionat dupa ultima inregistrare din baza de date curenta, si returneaza 1 daca pointerul de inregistrari este pozitionat pe prima inregistrare din baza de date curenta. Daca baza de date nu are nici o inregistrare, pointerul de inregistrari returneaza 1.
RECCOUNT( ) : Returneaza numarul de inregistrari in baza de date curenta sau in cea specificata.
RECSIZE( ) : Returneaza dimensiunea unei inregistrari din baza de date curenta (numarul total de caractere alocat pentru memorarea acelei inregistrari). RECSIZE( ) returneaza 0 daca nici o baza de date nu este deschisa in zona de lucru curenta.
Functii cu rezultat sir de caractere:
care au ca argument siruri de caractere:
SUBSTR ( <expC>, <expN1> [, <expN2>] ) - Extrage si returneaza un subsir de caractere dintr-un sir de caractere precizat, <expC>, avand urmatoarele caracteristici: incepe la caracterul cu numarul <expN1> din sirul de caractere initial si contine <expN2> caractere.
Exemplu:
? SUBSTR ("IREVERSIBIL", 2, 6)
(se afiseaza pe ecran valoarea "REVERS")
STORE SUBSTR("IREVERSIBIL", 4, 4) TO C
? C
(se afiseaza pe ecran valoarea "VERS")
? SUBSTR(C+ "URI", 6, 4)
(se afiseaza pe ecran valoarea "RI")
REPLICATE (<expC>, <expN>) - Returneaza un sir de caractere care contine o expresie de tip caracter specificata prin <expC>, repetata de un numar specificat de ori, <expN>.
ALLTRIM (<expC>) - Elimina blancurile (spatiile goale) de la inceputul si de la sfarsitul sirului de caractere specificat prin <expC>.
LOWER (<expC>) - Transforma toate majusculele unui sir de caractere <expC> in litere mici, restul caracterelor ramanand nemodificate.
UPPER (<expC>) - Transforma toate literele mici ale unui sir de caractere <expC> in majusculele corespunzatoare, restul caracterelor ramanand nemodificate.
PROPER (<expC>) - Transforma primul caracter dintr-un cuvant in majuscula, iar restul in litere mici (cautand in sirul de caractere <expC>).
care au ca argument o valoare numerica:
STR (<expN1> [, <expN2> [, <expN3>]]) - Converteste o expresie numerica <expN1> in sir de caractere. Lungimea sirului de caractere returnat este specificata prin <expN2> (lungimea va include un caracter pentru punctul zecimal, si cate un caracter pentru fiecare cifra de la partea zecimala).
<expN3> : indica numarul de cifre de la partea zecimala care vor
fi luate in calcul la conversia in sir de caractere.
Exemplu:
STORE STR(123.456,7) TO S1
? S1
(se afiseaza pe ecran "____123")
STORE STR(123.456,7,1TO S2
? S2
(se afiseaza pe ecran "__123.4")
CHR (<expN>) - Returneaza caracterul ASCII corespunzator expresiei numerice introduse (care trebuie sa fie un numar cuprins intre 0 si 255).
Exemplu:
STORE CHR(36) TO CR
? CR
(se afiseaza pe ecran "$")
TYPE (<expr>) - Returneaza tipul expresiei introduse, si anume:
N - pentru expresie numerica;
C - pentru expresie sir de caractere;
L - pentru expresie logica;
D - pentru expresie de tip data calendaristica, etc.
Exemplu:
STORE 1 TO A
STORE "AA" TO B
STORE A < 100 TO C
? TYPE ("A"), TYPE ("B"), TYPE ("C")
(se afiseaza pe ecran N C L)
Functii cu rezultat logic.
BOF( ) : Testeaza daca pointerul de inregistrari este pozitionat sau nu la inceputul bazei de date.
EOF( ) : Testeaza daca s-a detectat sau nu sfarsitul de fisier.
DELETED( ) : Testeaza daca o inregistrare a fost marcata pentru stergere sau nu.
FILE((<nume fisier>) : testeaza daca fisierul cu numele specificat exista sau nu.
Functii care lucreaza cu date calendaristice:
DATE ( ) - Returneaza data curenta a sistemului.
DAY (<expD>) - Returneaza ziua in cadrul lunii, corespunzatoare unei anumite date calendaristice introduse, <expD> (numarul corespunzator zilei).
DOW (<expD>) - Returneaza ziua in cadrul saptamanii, corespunzatoare unei anumite date calendaristice introduse, <expD> (numarul corespunzator zilei).
CDOW (<expD>) - Returneaza ziua in cadrul saptamanii, corespunzatoare unei anumite date calendaristice introduse, <expD> (numele corespunzator zilei).
MONTH (<expD>) - Returneaza luna corespunzatoare unei anumite date calendaristice introduse, <expD> (numarul corespunzator).
CMONTH (<expD>) - Returneaza luna corespunzatoare unei anumite date calendaristice introduse, <expD> (numele corespunzator).
YEAR (<expD>) - Returneaza anul corespunzator unei anumite date calendaristice introduse, <expD>.
Exemplu:
? DATE( )
? DAY ( DATE( ))
? CDOW ( DATE( ))
? MONTH ( DATE( ))
? YEAR ( DATE( ))
DTOC (<expD>) - Converteste o expresie de tip data calendaristica <expD> in sirul de caractere corespunzator.
CTOD (<expD>) - Functia inversa.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 5100
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved