Sunteți pe pagina 1din 9

Laboratorul nr.

10 Mecanismele programarii n Visual FoxPro


Programarea n Visual FoxPro implica scrierea unor secvente de cod : instructiuni sub forma de comenzi, functii sau operatii pe care Visual FoxPro le poate interpreta. Acestea pot fi introduse n: - fisiere de programe; - ferestre de cod pentru evenimente sau metode n cadrul proiectantului de formulare (Form Designer) sau al proiectantului de clase (Class Designer); - ferestre procedurale n cadrul proiectantului de meniuri ( enu Designer); - ferestre procedurale n cadrul proiectantului de rapoarte (!eport Designer). Crearea de programe " #. n Project Manager se selectea$a optiunea Programs din fila Code; %. se alege comanda Ne - #. se alege comanda Ne din meniul File %. din caseta de dialog Ne se alege Program &. se alege Ne File. " n fereastra Command se foloseste comanda M!"#F$ C!MM%N" M!"#F$ C!MM%N" &FileName ' () Visual Fox Pro va desc'ide o noua fereastra( n care se pot edita instructiunile programului. *al+area programelor - din meniul File se alege *a+e - daca se salvea$a un program creat n Progect Manager ( acesta este automat adaugat proiectului. Modi,icarea programelor )nainte de a modifica un program( acesta tre*uie redesc'is prin una din urmatoarele metode: - pentru programele cuprinse ntr"un proiect( se selectea$a n Project Manager si se alege comanda Modi,- n meniul File se alege comanda !pen. Din lista Files o, .-pe se alege Program( se selectea$a fisierul de modificat si se alege comanda !pen. - +e foloseste comanda M!"#F$ C!MM%N" n care se specifica numele programului sau parametrul ,-,. /ularea programelor - daca programul este cuprins ntr"un proiect( se selectea$a din Project Manager si se alege comanda /un. - Din meniul Program se alege comanda "o - +e folose.te *utonul de execu/ie din *ara de instrumente - n fereastra de comen$i se foloseste comanda "! "! ProgramName1 ' ProcedureName &#N ProgramName2) &0#.1 ParameterList) #

Conceptele de ba2a ale program3rii


Variabile. Macrosubstitu4ia. Crearea unei +ariabile sau modi,icarea valorii acesteia se face prin una din metodele urm0toare: 516 mem+ar 7 expr 1xemplu: msal2#333 mdata2date() 586 *.!/9 expr .! lista var ! te:nica speciala de lucru cu +ariabile o repre2inta macrosubstitutia( prin care continutul unei varia*ile de tip sir de caractere este tratat ca numele altei varia*ile sau alt element FoxPro (c4mp al unei *a$e de date( denumire fi.ier). acrosu*stitu/ia functionea$0 ca .i cum n locul varia*ilei respective ar fi pus .irul de caractere con/inut de aceasta( f0r0 apostrofurile delimitatoare. 5peratorul de macrosu*stitutie este ;. ( 66 indic0 un comentariu) 9xemplu:#. a27var7 var2 7Continutul varia*ilei var7 -a 66 se afisa$a +ar - 6a 66 re$ultatul afisarii este Continutul +ariabilei +ar - var 66 re$ultatul afisarii este Continutul +ariabilei +ar !bs.< De$avanta8ul este ca apare o pro*lema de performanta pentru compilator( in sensul ca linia pe care apare( tre*uie compilata ,din mers, in momentul rularii. Comen2i pentru a,i=area +ariabilelor de memorie existente la un moment dat< L#*. > "#*PL%$ M9M!/$ &N!C!N*!L9)&.! P/#N.9/ &P/!MP.)' .! F#L9 ?,ile@)

Manipularea datelor
a6 !peratori 5peratorii utili$ati pentru a crea expresii n Visual FoxPro sunt operatori aritmeticiA operatori relationali( operatori logiciA operatori speci,ici =irurilor de caractere : concatenare (9(") apartenenta :( etc( operatori speci,ici datelor calendaristice: adunare sau scadere numar de $ile dintr"o data calendaristica( compararea a doua date. 9xemplu< 1. Fie urmatoarele valori de tip caracter stocate n varia*ilele v# si v%: v#2 ,;niv. , .i v%2,+tefan Cel are, Expresia: - v#9v% va avea ca efect afi.area pe ecran a valorii , ;niv. +tefan Cel are, 8. Daca varia*ilele v# si v% au valorile urm0toare: v#2 , +tr. ;niv. , .i v%2%# Expresia: - v#9v% va avea ca efect afisarea pe ecran a unui mesa8 de eroare. b6 Comen2i Fiecare comand0 determin0 executarea unei ac/iuni. +intaxa generala a unei comen$i este: Verb <clau$a(=< clau$a =.. ;nde: ver* indica ac/iunea ce tre*uie executat0 iar clau$ele sunt op/ionale si furni$ea$0 informa/ii suplimentare legate de modul cum se va executa actiunea "aca o comanda este scrisa pe mai mult de o linieA atunci la s,arsitul ,iecarei linii intermedare se +a plasa simbolul B;C. %

!nstructiuni "comenzi# de intrare$iesire

+unt instructiuni de afisare si instructiuni pentru citirea de la tastatura. a) #nstructiuni de a,isare. Aceasta categorie de comen$i cuprinde urmatoarele instructiuni: 516 ( Expr1 &P#C.D/9 %od&format) ' &FDNC.#!N %od&format) '&%. n%olumn) &F!N. Nume&font &A'imens&Font) 9,ect< Afisea$a( pe ecran( valorile uneia sau mai multor expresii Visual FoxPro valide sau le tipareste la imprimanta( daca +1> P!?@>1! este pe 5@ ( conform valorilor clau$elor P?C>;!1( F;@C>?5@(etc. 5*s.: " clau$a A> <exp@#= defineste coloana unde se afisea$a <expr#=; b6 #nstructiuni de citire de la tastatura. 516 %CC9P. ()cExpr* ) .! )memvar* +e afisea$a pe ecran valoarea <c1xpr= dupa care se asteapta introducerea unui sir de caractere( de la tastatura( ce se atri*uie varia*ilei de memorie <memvar=. 586 #NPD. &?cExpr* ) .! )memvar* +e afisea$a pe ecran valoarea <c1xpr= dupa care se asteapta introducerea unei expresii de la tastatura( a carei valoare se atri*uie varia*ilei de memorie <memvar=. !bs.< " comanda cere o*ligatoriu introducerea unei expresii; " pentru introducerea constantelor de tip sir sau data calendaristica se vor folosi delimitatorii specifici (,(A(B C( resp. DE). 5E6 0%#. (()cExpr* + ,- )memvar*+ +e afisea$a pe ecran valoarea <c1xpr= dupa care se asteapta apasarea unei taste (fara <C!= a carei valoare se atri*uie varia*ilei de memorie <memvar=. +e utili$ea$a pentru oprirea temporara a executiei unui program pana la apasarea unei taste. 5F6 /9%" 9,ect< Activea$a mecanismul de cititre pentru toate instructiunile F... G1> active. 5*s.: " dupa executarea instructiunii !1AD( toate instructiunile F...G1> sunt de$activate( iar noile valori introduse se atri*uie varia*ilelor sau c4mpurilor specificate;
Exemplu: CLEAR Zi=SPACE(8) @ 3,1 SAY "Ce zi este astazi ? " ; GET zi FU CT!" "# L$%i,#a&ti,#ie&'$&i,()i,*i%e&i,Sa+,ata,-$+i%i'a"; #ESSAGE "S.ati$ .e%t&$ se/e'ta&e si a.)i E%te&" REA@ 0,1 SAY "Astazi este 1 " 2 zi 2 "? 3 a.asati ) tasta444" 5A!T "" '4

!nstructiuni de cautare a inregistrarilor intr$un tabel Cautarea secventiala intr"un ta*el pentru a gasi prima inregistrare care specificata se reali$ea$a cu comanda: L!C%.9 F!/ Expr &.cope) &01#L9 cond)

respecta conditia

?n ca$ de reu.it0( indicatorul de nregistrare se va po$i/iona pe nregistrarea respectiv0( func/ia F5;@D () va returna valoarea .>. iar functia 15F() va returna valoarea .F. &

?n ca$ contrar( indicatorul de inregistrari va fi po$itionat dupa ultima inregistrare( F5;@D () va returna valoarea .F. ( iar 15F() va returna valoarea .>.. ;rmatoarele inregistrari care verifica conditia data vor fi gasite folosind comanda C5@>?@;1. >estarea reusitei sau nereusitei cautarii se face cu functiile !1C@5()( F5;@D() si 15F(). Functia: F!DN"5&n/or01rea ' c,able1lias)6 !eturnea$a valoarea adevarat in ca$ul unei cautari reusite si valoarea fals in ca$ul unei cautari nereusite.
1xemplu: Cu a8utorul urmatarei secvente de cod sunt gasiti toti clientii din +uceava si se afisea$a numarul lor: "PE -ATA6ASE Pa&te%e&i USE C/ie%ti ST"RE 7 T" t)ta/ L"CATE F"R UPPER(/)'a/itate) = 8SUCEA*A8 -" 59!LE F"U -( ) t)ta/ = t)ta/ 2 1 C" T! UE E --" 5A!T 5! -"5 8T)ta/ '/ie%ti :i% S$'ea;a1 8 ; 2 LTR!#(STR(t)ta/)) "5A!T

d Extragerea informatiilor statistice din tabele +copul principal pentru care sunt create *a$ele de date il repre$inta o*tinerea in timp cat mai scurt a unor informatii cu privire la datele continute. Aceste informatii pot fi de natura diferita( mai detaliate sau mai sinteti$ate su* forma de liste( ta*ele sau simple valori( informatii statistice sau totali$atoare. ?n acest scop sunt folosite urmatoarele comen$i: (#) C!DN. &.cope) &F!/ lExpr1) &01#L9 lExpr2) .! Variabila " comanda numara inregistrarile care respecta conditia data intr"un anumit ta*el (cel activ). 1xemplu: ;+1 Clienti CH1A! C!DN. F!/ ;PP1!(localitate) 2 A+;C1AVAA to nrcl - nrcl 586 *DM &Expr) &.cope) &F!/ 9xpr1) &01#L9 Expr2) .! variab ' .! %//%$ nume&arr " face o insumare a campurilor numerice dintr"un ta*el. 9xemplu: SET -EFA T" -1<$%i;e&sitate<=e+a
"PE -ATA6ASE st)'$&i ST"RE 7 t) t)t>i%t& USE &$/a? SU# 'a%t @)& ti.)="!" T" t)t>i%t& CLEAR ? 8T)ta/ i%t&a&i1 8, t)t>i%t& CL"SE -ATA

(&6 %V9/%G9 &Expr)&.cope)&F!/ Expr1)&01#L9 Expr2).! Var ' .! %//%$ nume&arr " calculea$a media aritmetica a valorilor expresiilor din lista de expresii. 9xemplu< CL"SE -ATA6ASES
"PE -ATA6ASE T&a%za'tii USE ')+e%zi CLEAR %V9/%G9 'a%t>')+ TO +e:ia

AA 'a/'$/eaza +e:ia t$t$&)& ')+e%zi/)& si AA +e+)&eaza +e:ia i% ;a&ia,i/a :e +e+)&ie

? +e:ia

AA A@isaza +e:ia 'a/'$/ata

(I6 .!.%L .! Nume,abel !N Nume%amp &F#9L"* lista_campuri) &.cope) &F!/ lExpr1) &01#L9 lExpr2) " se va crea un nou ta*el( cu aceeasi structura cu ta*elul activ( in care se vor incarca inregistrari totali$atoare o*tinute din ta*elul curent. 9xemplu< USE C)+e%zi
! -EB " '):>@$&% TAG @$&%iz .!.%L .! @$&%>t)t " @$&%iz USE @$&%>t)t

H?+>

Controlul ,luxului programului


?n Visual FoxPro exista comen$i care permit determinarea modului cum vor fi executate alte comen$i. Acestea permit ramificarea conditionala a programului si structurile ciclice. /ami,icarea conditionala Permite testarea unor conditii si executarea( n functie de re$ultatul testului a unor operatii diferite. Pentru aceasta sunt folosite urmatoarele comen$i: #F ..9L*9 ... 9N"#F sau "! C%*9 ... 9N"C%*9. #F lExpr &.19N) %omenzi1 &9L*9 %omenzi2) 9N"#F 9,ect< +e executa %omenzi1 daca lExpr are valoarea adevarat sau %omenzi2 daca are valoarea fals si clau$a 1H+1 este pre$enta. 5*s.: " instructiunea nu se poate folosi de la prompter (fereastra Command); " daca se utili$ea$a comen$i ?F im*ricate( tre*uie utili$at c4te un 1@D?F pentru fiecare ?F 9xemplu< +e presupune ca exista o relatie P1!+5@AH(codp( nume( functie(salar) +1> >AHJ 5FF CH1A! ?F +alar>=%K33 !1PHAC1 +alar L?>M +alarN#.3& 1H+1 !1PHAC1 +alar L?>M +alarN#.3O 1@D?F "! C%*9 C%*9 lExpr1 %omenzi1 &C%*9 lExpr2 %omenzi2 ... C%*9 lExprN %omenziN &!.19/0#*9 %omenziN21) K

9N"C%*9 9,ect< +e executa %omenzii pentru prima lExpr cu valoarea .>. sau %omenzin21 daca toate lExpr au valoarea .F. si clau$a !.19/0#*9 exista. !bs.< " instructiunea nu se poate folosi de la prompter; " la prima evaluare adevarata a lExpr se executa %omenzii si apoi executia comen$ii se inc'eie; ;n efect asemanator se o*tine prin functia: ##F5lExprA eExpr1A eExpr26 9,ect< !eturnea$a valoarea o*tinuta prin evaluarea expresiei Expr1 daca lExpr este .>. sau returnea$a Expr2 daca lExpr este .F.. Cele % expresii nu tre*uie sa fie (o*ligatoriu) de acelasi tip. #nstructiuni de ciclare Ciclarea permite executarea uneia sau mai multor linii de cod de c4te ori este nevoie. +unt: " comen$i pentru *ucle cu un numar dat de pasi; " comen$i pentru *ucle cu un numar nedefinit de pasi. 516 "! 01#L9 lExpr %omenzi &L!!P) &9H#.) 9N""! 9,ect: 1xecuta %omenzi atita timp c4t lExpr este .>. 5*s.: " dupa fiecare executie a <grup instr.= se reevaluea$a < lExpr =; " daca lExpr este .F.( se executa comanda urmatoare lui 9N""!; " daca apare L!!P are loc o revenire fortata la inceputul ciclului; " daca apare 9H#. are loc o iesire fortata din *ucla. 586 *C%N &.cope) &F!/ lExpr1) &01#L9 lExpr2) %omenzi &L!!P) &9H#.) 9N"*C%N 9,ect< Permite parcurgerea ta*elului curent in ordinea indexului curent (daca este activat)( tinind cont si de conditiile din filtru. !bs.: " se refera doar la parcurgerea unui ta*el; " pointerul de inregistrari inaintea$a automat in ta*elul care era activ in momentul intrarii in *ucla; " optiunea H55P permite reluarea fortata a interatiei; " optiunea 1P?> permite terminarea fortata a instructiunii. 9xemplu< USE C/ie%ti AA -es'Ci:e ta,e/$/ '/ie%ti
CLEAR AA Ste&=e e'&a%$/ *C%N F!/ UPPER(/)'a/itate) = 8SUCEA*A8 ? '):>'/i,%$+e, +a%a=e&

9N"*C%N !bs.< 1xemplul determina afisarea tuturor codurilor( denumirilor si managerilor pentru toti clientii din +uceava. @u este o*ligatoriu sa pun o expresie logica in +CA@( ca$ in care ,scanarea, ta*elului se face pana la intilnirea 15F().

#ntrebari si exerci4ii
+e va crea( salva .i rula un program n Fox prin care : a) +e setea$0 drept director de lucru( directorul n care s"a salvat proiectul ( Anexa %); O

*) +e setea$0 componentele mediului astfel: (ve$i Anexa%) - pentru dat0( anul va fi afi.at pe I caractere( n format D Q; (ve$i Anexa%) - se activea$0 ceasul ; - se in'i*0 afi.area re$ultatelor comen$ilor pe ecran ( +1> >AHJ 5FF); c) se vor citi de la tastatur0 dou0 valori ce se vor atri*ui unor varia*ile (un .ir de caractere .i o valoare numeric0); d) se vor afi.a valorile citite la punctul anterior; e) se desc'ide *a$a de date; f) se desc'ide un ta*el; g) se folose.te mecanismul ad0ug0rii datelor prin program ( succesiunea de comen$i APP1 RHA@J .i !1PHAC1S.) pentru a ad0uga minim & nregistr0ri n ta*elul desc'is ') se sterge prima inregistrare din ta*el i) prin intermediul unei varia*ile de memorie numit0 3opt3 introdus0 de la tastatur0( care poate lua valori n mul/imea :',d,N,n ( se va folosi oricare din variantele ACC1P>( FS +AQ S G1> .i !1AD pentru citirea acesteia)( se va crea o structur0 de ramificare condi/ional0. ( ?F) a) pe una din ramuri (de ex( pentru D respectiv d) se desc'ide nc0 un ta*el ntr"o alt0 $on0 .i se sta*ilesc leg0turi temporare ntre cele dou0 ta*ele desc'ise dup0 care se va verifica func/ionalitatea leg0turilor prin afi.are (ex. intre Materiale .i Intrri cum ati facut la*oratorul trecut)) *) pe cealalt0 ramur0 folosindu"se una din structurile de ciclare ( D5 LM?H1 sau +CA@ ) se vor se modific0 valorile unuia dintre c4mpuri (!1PHAC1) 8) se vor num0ra nregistr0rile dintr"unul din ta*elele desc'ise; T) se afi.a$0 re$ultatul ; l) se nc'ide *a$a de date.

%N9H%1 Principalele ,unc4ii prede,inite Visual FoxPro


Func4ii re,eritoare la semnul datelor numerice AR+(nExpr) U ntoarce valoarea a*solut0 a expresiei numerice furni$at0 ca parametru +?G@(nExpr) " ntoarce semnul expresiei numerice furni$at0 ca parametru Functii de aproximare a datelor numerice ?@>(nExpr) " ntoarce partea ntreag0 a expresiei numerice furni$at0 ca parametru C1?H?@G(nExpr) U ntoarce urm0torul ntreg mai mare sau cel pu/in egal cu parametrul FH55!(nExpr) " ntoarce urm0torul ntreg mai mic sau cel mult egal cu parametrul !5;@D(nExpr( nDecimalPlaces) U rotun8e.te valoarea expresiei numerice la un num0r de po$i/ii $ecimale specificat prin cel de"al doilea parametru Functii matematice elementare 1PP(nExpr) U exponentul unei expresii numerice furni$ate ca parametru H5G(nExpr) U logaritmul unei expresii numerice +V!>(nExpr) U r0d0cina p0trat0 a unei expresii numerice A+?@(nExpr)( AC5+(nExpr)( +?@(nExpr)( C5+(nExpr).." func/ii trigonometrice Functii re,eritoare la codi,icarea caracterelor din siruri W

CM!(nExpr) U ntoarce caracterul asociat codului A@+? (numeric) specificat A+C (cExpr) U ntoarce codul A@+? al primului caracter (cel mai din st4nga) din expresia tip .ir de caractere furni$at0 ca parametru.
Functii re,eritoare la subsirurile de caractere

+;R+>!(cExpr( nPosStart B( NrCharIntoarseC) U ntoarce un su*.ir al .irului cExpr( care ncepe cu caracterul aflat n po$i/ia nPosStart .i care con/ine un num0r de caractere dat de NrCharIntoarse. Variante: H1F>(cExpr nExpr)Untoarce primele nExpr caractere din .irul cExpr (cele mai din st4nga) !?GM>(cExpr nExpr) " ntoarce ultimele nExpr caractere din .irul cExpr (cele mi din dreapta) %lte ,unctii: !1PH?CA>1(cExpr nExpr) U multiplic0 .irul de caractere cExpr de nExpr ori +PAC1(nExpr) U ntoarce un .ir de caractere compus din num0rul specificat de spa/ii Functii de eliminare a blancurilor: AHH>!? (cExpr) U elimin0 at4t spa/iile din st4nga .irului specificat( c4t .i pe cele din dreapta acestuia H>!? (cExpr) U elimin0 spa/iile din st4nga .irului specificat !>!? (cExpr) U elimin0 spa/iile din dreapta .irului specificat Functii re,eritoare la in,ormatii despre un sir de caractere H1@(cExpr) " ntoarcre lungimea .irului specificat ca parametru ?+D?G?>(cExpr) U ntoarce valoarea logic0 .>. dac0 cel mai din st4nga caracter din .irul specificat ca parametru este o cifr0 (3"X) ?+HAHPMA(cExpr) " ntoarce valoarea logic0 .>. dac0 cel mai din st4nga caracter din .irul specificat ca parametru este o liter0 ?+H5L1!(cExpr) " ntoarce valoarea logic0 .>. dac0 cel mai din st4nga caracter din .irul specificat ca parametru este o liter0 mic0 ?+;PP1!(cExpr) ntoarce valoarea logic0 .>. dac0 cel mai din st4nga caracter din .irul specificat ca parametru este o liter0 mare Functii re,eritoare la trans,ormarea sirurilor de caractere H5L1!(cExpr) " ntoarce .irul cExpr scris n ntregime cu litere mici ;PP1!(cExpr) " ntoarce .irul cExpr scris n ntregime cu litere mari P!5P1!(cExpr)3 ntoarce .irul cExpr scris su* forma unui nume propriu
Functii re,eritoare la date calendaristice

DA>1() " furni$ea$0 data curent0 a sistemului; D5L(dExpr) " returnea$0 num0rul $ilei din cadrul s0pt0m4nii pentru data specificat0; CD5L(dExpr) " returnea$0 numele $ilei din saptamana pentru data specificata; DAQ(dExpr) " returnea$0 num0rul $ilei din cadrul lunii pentru data specificata; 5@>M(dExpr) C 5@>M(dExpr) " returnea$0 num0rulYnumele lunii pentru data specificat0; Q1A!(dExpr) " returnea$0 anul pentru data specificata; Func4ii pentru controlul timpului< >? 1(!nExpr") " returnea$0 un sir de caractere de lungime Z( in formatul MM: :++ ce repre$inta ora exacta a sistemului; Functie care +eri,ica daca o expresie e+aluata este +ida sau nu 1 P>Q(eExpression) Functii de con+ersie " din grade n radiani si invers D>5!(nExpr) !>5D(nExpr) Z

" transformarea unei date calendaristice intr"un sir de caractere D>5C (dExpr) D>5+ (dExpr) DQ (dExpr); D Q (dExpr) " transformarea unui sir de caractere in data calendaristica C>5D (c1xpr) "transformarea valorilor numerice in .iruri de caractere +>!(nExpr B( n#en$th B( nDecimalPlacesCC) "transformarea .irurilor de caractere in valori numerice VAH(cExpr)

ANEXA 2 #nstruc4iuni 5comen2i6 de con,igurare


#nstructiuni pentru controlul ,ormatului datei calendaristice +1> C1@>;!Q 5@Y5FF Y validea$0( respectiv invalidea$0 afi.area anului pe patru digi/i +1> DA>1 >5 D Q[ DQ[ R!?>?+M[F!1@CM[ G1! A@ U sta*ile.te formatul de afi.are a datei calendaristice #nstructiuni pentru controlul ,ormatului de a,i=are al ceasului sistem< +1> CH5CJ 5@ [ 5FF U validea$0Yinvalidea$0 afi.area ceasului +1> CH5CJ >5 B<!5L=(<C5H=C" sta*ile.te po$i/ia pe ecran n care se va afi.a ceasul +1> M5;!+ >5 B#% [ %IC U sta*ile.te formatul de afi.are al orei "i+erse instruc4iuni de con,igurare +1> R1HH 5@Y5FF U validea$0Yinvalidea$0 alarma sonor0 a mediului +1> CA!!Q 5@Y5FF U validea$0Yinvalidea$0 p0strarea valorilor din nregistrarea curent0 pentru o nou0 nregistrare introdus0 prin una din comen$ile ?@+1!>( APP1@D sau R!5L+1 +1> DA>ARA+1 >5 BNume%DC U sta*ile.te *a$a de date curent0 +1> D1FA;H> >5 BSpecificator_directorC U sta*ile.te directorul curent +1> D1H1>1D 5@Y5FF U invalidea$0Yvalidea$0 utili$area nregistr0rilor marcate pentru .tergere n comen$i ulterioare +1> 1+CAP1 5@Y5FF U validea$0Yinvalidea$0 ntreruperea execu/iei unui program sau a unei comen$i la ap0sarea tastei 1+CAP1 +1> 1PCH;+?V1 5@Y5FF U sta*ile.te dac0 fi.ierele ta*el vor fi desc'ise pentru u$ul exclusiv sau parta8at ntr"o re/ea +1> H5CJ 5@Y5FF U validea$0Yinvalidea$0 *locarea automat0 a ta*elelor pentru anumite comen$i. +1> PA>M >5 Blista_cai_de_cautareC U sta*ile.te o list0 a c0ilor de c0utare pentru fi.iere +1> >AHJ 5@Y5FF U validea$0Yinvalidea$0 afi.area re$ultatelor comen$ilor Visual FoxPro

S-ar putea să vă placă și