Bibliotecile RUNTIME ale sistemului DELPHI
Biblioteca RUNTIME (RTL) a sistemului DELPHI consta din trei unit-uri compilate separat: System, SysUtils, Math. Capabilitatile acestor unit-uri pot fi utilizate în programele utilizator implicit sau daca în unit-urile asociate acestora sunt referite cu ajutorul clauzei uses.
4.1 Unit-ul System
Acest unit este partea fundamentala a bibliotecii RTL Delphi. El implementeaza rutinele low-leve 424j93e l necesare compilatorului pentru solutionarea tuturor proprietatilor predefinite ale unei aplicatii Delphi, precum:
operatii input/output cu fisiere;
manipulare siruri de caractere;
rutine pentru calcul numeric în virgula mobila;
rutine pentru managementul si alocarea dinamica a memoriei.
De asemenea, unit-ul System defineste o serie de tipuri de date si variabile utile în numeroase aplicatii utilizator sau în scrierea de componente.
Unit-ul System este automat utilizat de catre programele Delphi.
Unit-ul System defineste o serie de tipuri de date care pot fi utilizate în diferite contexte ale aplicatiilor utilizator. Astfel avem, de exemplu, tipul TdateTime , declarat ca un o varietate speciala de virgula mobila, astfel:
:
type
TdateTime =double;
:
Acest gen de redeclarare a tipului double ofera programatorilor posibilitatea de a distinge variabilele virgula mobila utilizate pentru a pastra valori timp/data de variabilele virgula mobila folosite în alte scopuri.
Exista o serie de alte tipuri de date, mult mai complexe, strict necesare pentru accesul la tipuri de date uzuale. De exemplu, tipul TvarData declara structura interna a tipului predefinit "Variant". De asemenea, tipul TvarRec declara structura interna a variabilelor care sunt transmise rutinelor ca parametri formali de tip "array of const".
Totodata, unit-ul System defineste o serie de variabile globale utilizate în diferite situatii de alte rutine, ca de exemplu:
CmdLine: pchar=nil; //Pointer linie de comanda
CmdShow: integer=0; //Parametru ShowWindow
FileMode: byte=2; //Mod implicit deschidere fisier
Hinstance: longint=0; //Handler-ul instantei curente în mediul Windows
InOutRes: integer=0; //Bufer reszultat operatii I/O
Input: text; //Fisierul standard de intrare
IsConsole: boolean; //Returneaza daca sau nu un modul este o aplicatie
//consola
Null: variant=nil; //Constanta de tip variant care indica ca o variabila
//variant nu are valoare.
Output: text; //Fisierul output standard
RandSeed: longint; //Samânta generator de numere aleatoare
:
Dintre rutinele cele mai mult folosite ale unit-ului System, care pot fi apelate direct amintim:
BlockRead(F, Buffer, Count, Res);
Procedura permite transferul a Count înregistrari din fisierul fara tip asociat cu variabila F în variabila Buffer. Tipul variabilei Buffer este neimportant dar trebuie sa fie suficient de încapator pentru a pastra Count records. Numarul efectiv de înregistrari citite este pastrat în variabila întreaga Res.
BlockWrite(F, Buffer, Count, Res);
Procedura permite transferul a Count înregistrari din variabila Buffer, în fisierul fara tip asociat cu variabila F. Numarul efectiv de înregistrari scrise în fisier este pastrat în variabila întreaga Res.
ChDir(S);
Schimbare director curent în directorul S.
GetDir(N,S);
Procedura returneaza în S directorul curent al unui drive specificat prin parametrul N. Valorile pentru N sunt:
Drive-ul implicit;
Drive-ul A
Drive-ul B
Drive-ul C.
Exemplu:
var
s : string;
begin
GetDir(0,s);
MessageDlg('Current drive and directory: ' + s, mtInformation, [mbOk] , 0);
end;
:
MkDir(S);
Procedura permite crearea unui director de cale S..
ParamCount
Functia returneaza numarul de parametri transmisi programului prin linia de comanda.
ParamStr(N);
Functia returneaza al N-le parametru transmis prin linia de comanda.
Random;
Functia returneaza un numar pseudoaleator. Fara parametru, functia returneaza un numar pseudoaleator cuprins între 0 si 1. Când este apelata sub forma:
Random(N)
functia returneaza un numar pseudoaleator cuprins între 0 si N-1.
Randomize;
Procedura initializeaza generatorul de numere aleatoare cu o valoare aleatoare dependenta de ceasul sistem.
RmDir(S);
Procedura sterge direcorul specificat prin calea S.
Append VF
Procedura deschide un fisier text existent pentru operatii de adaugare.
AssignFile(VF,FileName);
Procedura permite asignarea unui nume extern de fisier la o variabila fisier compatibila ca tip.
CloseFile(VF);
Procedura închide fisierul deschis referit de variabila VF.
Eof(VF)
Functia returneaza True daca pointerul de fisier repereaza marcajul de sfârsit de fisier.
Eoln(VF)
Functia returneaza True daca pointerul de prelucrare a unui fisier text detecteaza marcajul de sfârsit de linie.
Erase(VF)
Procedura sterge fisierul extren asociat cu variabila VF.
FilePos(VF)
Functia returneaza pozitia curenta într-un fisier cu tip sau fara fip.
FileSize (VF)
Functia returneaza numarul de înregistrari într-un fisier Pascal cu tip sau fara tip.
Flush (VF)
Procedura goleste buffer-ul unui fisier text.
IOResult
Functia returneaza un întreg care codifica rezultatul ultimei operatii I/O.
Read (VF,V1,V2, .,Vn)
Procedura permite citirea din fisierul specificat de cvariabila VF a valorilor variabilelor V1,V2,.,Vn.
Readln (VF,V1,V2,.,Vn)
Procedura permite citirea din fisierul text asociat cu variabila VF a valorilo variabilelor V1,V2,.,Vn, urmata de retur de car si salt la linie noua.
Rutinele:
Rename
Reset
Rewrite
Seek
SeekEof
SeekEoln
SetTextBuf
Truncate
Write
Writeln
au valoarea de întrebuintare cunoscuta de la limbajul Pascal.
4.1 Unit-ul SysUtils
Unit-ul SysUtils extinde capabilitatile unit-ului System, adaugând declaratii de tipuri de date, constante si rutine necesare pentru rezolvarea unor probleme precum: tratarea exceptiilor, rutine pentru lucru la nivel de stringuri, rutine pentru manipularea orei si a datei, rutine pentru asistarea gestiunii fisierelor,etc.
Semnalând faptul ca în unit-ul SysUtils sunt declarate o serie de constante de maxim interes pentru manipularea fisierelor (constante atribute fisiere, constante mod deschidere fisiere) precum si o serie de tipuri de date si variabile de utilitate extrem de diversa, prezentam în continuare cele mai importante rutine ale unit-ului SysUtils, din punctul de vedere al programatorului de nivel mediu.
Rutine ale unit-ului SysUtils
Rutinele declarate în unit-ul SysUtils au diferite valori de întrebuintare.
Rutine ale unit-ului SysUtils pentru lucru la nivel de sir de caractere
AdjustLineBreaks(S)
Functie. Returneaza sirul S concatenat cu <CR>/<LF> daca a avut în coada <CR> sau <LF> sau secventa <LF>/<CR>.
AnsiLowerCase(S)
Functie. Returneaza sirul ANSI S convertit la litere mici.
AnsiUpperCase(S)
Functie. Returneaza sirul ANSI S convertit la litere mari.
LowerCase(S)
Functie. Returneaza sirul ASCII S convertit la litere mici.
UpperCase(S)
Functie. Returneaza sirul ASCII S convertit la litere mari.
Trim(S)
Functie. Curata sirul S de spatiile sau caracterele de control care îl preced sau postced.
TrimLeft(S)
Functie. Curata sirul S de spatiile sau caracterele de control care îl preced.
TrimRight(S)
Functie. Curata sirul S de spatiile sau caracterele de control care îl postced.
AnsiCompareStr(S1,S2)
Compara ANSI sirurile S1 si S2 facând diferenta între litere mari si litere mici.
AnsiCompareText(S1,S2)
Compara ANSI sirurile S1 si S2 fara a face diferenta între litere mari si litere mici.
Rutine ale unit-ului SysUtils pentru lucru la nivel de directoare
CreateDir(NumeDirector)
Functie. Returneaza TRUE daca s-a creat un director cu numele NumeDirector si FALSE în caz contrar.
RemoveDir(NumeDirector)
Functie. Returneaza TRUE daca s-a sters directorul cu numele NumeDirector si FALSE în caz contrar.
Rutine ale unit-ului SysUtils pentru lucru cu ora si data
Date
Functie. Returneaza data curenta.
Now
Functie. Returneaza data si ora curenta. Se poate utiliza functia DateToStr pentru a converti valoarea returnata de functia Now din format TdateTime în format string.
Time
Functie. Returneaza ora curenta. Se poate utiliza functia TimeToStr pentru a converti valoarea returnata din format TdateTime în format string.
DateTimeToStr(DT)
Functie. Converteste valoarea variabilei DT, de tip TdateTime, la format sir de caractere.
DateTimeToString( ResultStr, FormatStr,DT)
Procedura. Converteste valoarea variabilei DT de tip TdateTime la format sir de caractere utilizând formatul de conversie FormatStr. Rezultatul conversiei se obtine în ResultStr.
DateToStr(DT)
Functie. Converteste valoarea variabilei DT de tip TdateTime la sir de caractere.
FormatDateTime(Format,DT)
Functie. Returneaza ca sir de caractere valoarea variabilei de tip DT, utilizând formatul specificat.
TimeToStr(DT)
Functie. Converteste valoarea variabilei DT, de tip TdateTime, la sir de caractere.
Rutine ale unit-ului SysUtils pentru lucrul cu fisiere si periferice
DeleteFile(FileName)
Functie. Returneaza True daca stergerea fisierului FileName a decurs cu succes. FileName este nume extern de fisier. Fals în caz contrar.
FileAge(FileName)
Functie. Returneaza un numar întreg care pastreaza informatii cu privire la vârsta fisierului. Valoarea returnata poate fi convertita la format TdateTime cu rutina FileDateToTime. Daca fisierul nu exista, rutina returneaza -1.
FileCreate(FileName)
Functie. Creaza un fisier de nume specificat returnând un întreg, care este handle-rul fisierului. Rutina este utilizata pentru rezolvarea unor probleme de comunicare cu Windows API. Nu este recomandata pentru fisiere native Pascal.
FileGetAttr(FileName)
Functie. Returneaza un întreg care încapsuleaza atributele fisierului specificat.
FileSetAttr(FileName, NewAttr)
Functie. Seteaza atributele fisierului. Returneaza zero în caz de succes.
RenameFile(OldName,NewName)
Functie. Redenumeste fisierul de nume OldName. Returneaza 0 în caz de succes.
FileExists(FileName)
Functie. Returneaza True daca fisierul de nume specificat exista.
FileSearch(FileName, DirList)
Functie. cauta fisierul FileName în lista de directoare DirList. Returneaza calea completa catre fisier daca gaseste fisierul sai stringul vid în caz contrar. FileSearch function. Lista de directoare este specificata ca în exemplul de mai jos.
Gasit := FileSearch('Test.dbf', 'c:\fpd26';'c:\fpw26');
FindClose(SearchRec)
Procedura. Termina o secventa FindFirst/FindNext.
FindFirst(FileSpec,Attr,Searchrec);
FindNext(Searchrec);
Proceduri. Au aceeasi valoare de întrebuintare pe care o aveau înPascal.
ExtractFileName(FileName)
Functie. Extrage numele fisierului din specificatorul FileName.
ExtractFilePath(FileName)
Functie. Extrage calea catre fisierul indicat de specificatorul FileName.
ExtractFileExt(FileName)
Functie. Extrage extensia unui fisier indicat de specificatorul FileName.
|