4.8. INSTRUCŢIUNI DE ATRIBUIRE
Atribuirea unei valori la o variabilă de memorie se poate efectua prin instrucţiunile:
Let - pentru valori atribuite variabilelor şi proprietăţilor;
Set - pentru atribuirea de obiecte la o variabilă de tip obiect;
Lset şi Rset - pentru atribuiri speciale de şiruri.
Instrucţiunea Let
Atribuie valoarea rezultată din evaluarea unei expresii la o variabilă sau proprietate. Instrucţiunea are sintaxa:
[Let] numevar = expresie
unde:
numevar este numele variabilei sau al proprietăţii căreia i se atribuie o valoare.
expresie este expresia din evaluarea căreia rezultă valoarea ce se va atribui variabilei precizate (în partea stângă a semnului =).
Se observă că Let este opţional, deci poate lipsi din comandă. De fapt instrucţiunea de atribuire se foloseşte aşa în cele mai multe cazuri.
Observaţie.
Valoarea expresiei trebuie să fie compatibilă ca tip cu variabila (sau proprietatea): valori numerice nu pot fi atribuite variabilelor de tip String şi nici invers.
Variabilele Object pot primi valori numerice sau String, reciproc nu este valabil decât dacă valoarea expresiei Object poate fi interpretată compatibilă cu tipul variabilei. Astfel, orice Object poate fi atribuit unei variabile de tip String (cu excepţia Null). Doar Variant care poate fi interpretat numeric poate fi atribuit unei variabile de tip numeric.
La atribuirea valorilor numerice pot avea loc conversii la tipul numeric al variabilei.
Atribuirea valorilor de tip utilizator poate fi efectuată doar dacă ambii termeni au acelaşi tip definit.
Observaţie:
Pentru legarea de obiecte la variabile obiect nu se poate utiliza instrucţiunea de atribuire Let (cu sau fără cuvântul Let), ci se va utiliza instrucţiunea Set.
Instrucţiunea LSet
Copiază, cu aliniere la stânga, şirul de caractere specificat ca atare sau valoarea expresiei din dreapta într-o variabilă de tip String specificată în stânga semnului =. Deoarece copierea este binară, poate fi utilizată pentru atribuiri între tipuri utilizator diferite (rezultatul este imprevizibil deoarece nu se face nici o verificare de tipuri/componente ale valorilor de tip record).
Sintaxa este:
varstring = LSet(string, dimensiune_sir_dorita)
unde:
varstring şi string reprezintă variabila de tip String şi respectiv expresia de acelaşi tip implicate într-o atribuire de valori de tip string.
Conţinutul zonei de memorie alocată celei de a doua variabile este copiată, cu aliniere la stânga, în zona de memorie a primei variabile.
La atribuire se respectă regulile cunoscute pentru transferul datelor în alte limbaje de programare, cum sunt: caracterele care rămân neocupate se completează cu spaţii, iar dacă zona sursă (de unde se copiază) este mai mare, caracterele din dreapta se pierd (datele sunt trunchiate).
Instrucţiunea RSet
Copiază, cu aliniere la dreapta, şirul de caractere specificat ca atare sau valoarea expresiei din dreapta într-o variabilă de tip String specificată în partea stângă a semnului =.
Sintaxa comenzii este:
varstring = RSet(string, dimensiune_sir_dorita)unde:
varstring este variabila destinaţie de tip String .
Caracterele rămase neocupate în variabila destinaţie sunt completate cu spaţii. Instrucţiunea RSet nu se poate utiliza (analog lui LSet) pentru tipuri definite de utilizator.
4.9. INSTRUCŢIUNI DE TERMINARE SAU OPRIRE A PROGRAMULUI
Terminarea execuţiei unui program sau oprirea temporară a acestuia (pauza) se pot realiza prin instrucţiunile: DoEvents, End, Exit, Stop.
Procedura DoEvents
Deşi nu este practic o instrucţiune Visual Basic ci o procedură, includerea ei este naturală prin aceea că permite cedarea controlului către sistemul de operare, care poate astfel sa funcţioneze în regim de multitasking. Acţiunea poate fi realizată şi prin alte tehnici (de exemplu utilizarea unui Timer etc.). Sintaxa este:
DoEvents( )
Controlul este redat programului după ce sistemul de operare a terminat procesarea evenimentelor din coada de evenimente, ca şi procesarea tuturor caracterelor din coada SendKeys.
Instrucţiunea End
Această instrucţiune termină execuţia unei proceduri sau indică sfârşitul codului unei structuri de tip bloc (cum ar fi End Function, End If etc., prezentate la structurile respective).
În cazul opririi execuţiei unei proceduri sintaxa instrucţiunii este:
End
Prin aceasta instrucţiune, care poate fi plasată oriunde în program, execuţia este terminată imediat, fără a se mai executa eventualele instrucţiuni scrise pentru tratarea unor evenimente specifice sfârşitului de program (Dispose, Finalize etc.).
Fişierele deschise prin Open sunt închise şi toate variabilele sunt eliberate. Obiectele create din modulele clasa sunt şterse, iar referinţele din alte aplicaţii la asemenea obiecte sunt invalidate. Memoria este astfel eliberată.
Instrucţiunea Exit
Instrucţiunea Exit, în una din multiplele sale formate, întrerupe forţat o ramură de execuţie (cum ar fi o procedură, o funcţie, o structură iterativă etc.) pentru a se continua nivelul apelant. Sintaxa instrucţiunii este:
Exit Do
Exit For
Exit Function
Exit Property
Exit Sub
Aşa cum se poate observa, efectele comenzii se referă la o structură repetitivă de tip Do, la o structură alternativă de tip For, la o procedură de tip funcţie, subrutină sau tip de proprietate. Instrucţiunea Exit nu trebuie confundată cu instrucţiunea End.
Dostları ilə paylaş: |