Salvarea și încărcarea datelor în obiecte utilizând colecțiile ca exemplu.
Dacă programul dvs. utilizează clase pentru a descrie obiectele unui anumit domeniu, atunci datele care le inițiază pot fi stocate în baza de date. Dar puteți alege o abordare mult mai productivă, disponibilă în Delphi / C ++ Builder. Mediul de dezvoltare Delphi / C ++ Builder stochează resursele tuturor formelor în fișiere binare sau text și această opțiune este disponibilă pentru programele dezvoltate împreună cu aceasta. În acest caz, pentru a evalua comoditatea acestei abordări, este mai bine să luați în considerare un exemplu specific.
Colecția cu abonați va trebui să fie plasată într-o anumită clasă de bază, pe care o vom salva și încărca. Clasa TMailer este folosită pentru acest rol. Este un client de poștă electronică.
Să începem cu TMailClient.
Acum puneți clasa TMailList în clasa TMailer. Va fi apoi posibilă includerea datelor privind parametrii de acces la serverul de e-mail pentru trimiterea de e-mailuri. Ar putea trimite e-mail, dar în acest exemplu nu a fost folosit, pentru a nu supraîncarca codul.
Adică, în exemplul nostru, acesta îndeplinește numai rolul unui operator de transport de date despre abonați și abonamentul acestora. Clasa TComponent din care este moștenită poate fi salvată într-un fișier, în timp ce TClecția în sine nu va fi salvată. Numai dacă este agregată în TComponent. Aceasta este ceea ce am implementat.
Voi repeta. În acest caz, moștenim din clasa TComponent, pentru a putea scrie date obiect într-un fișier. Proprietatea MailList conține deja un obiect TMailList.
Punerea în aplicare a tuturor claselor de mai sus este prezentată mai jos.
Funcția CreateFileList creează o listă de fișiere prin anumite reguli bazate pe lista directoarelor care le sunt transmise, ocolind-o recursiv. De exemplu, acesta poate fi implementat după cum urmează.
Ca rezultat, avem o clasă TMailer care conține toate informațiile de care avem nevoie. Acum, să începem să creăm un obiect, să îl salvăm și să îl încărcăm.
După încărcarea datelor, putem lucra cu datele din colecția noastră de abonați. Adăugați și ștergeți-le (Mailer.MailList.Add; Mailer.MailList.Delete (Index);). La sfârșitul programului, este necesar să salvați datele noi în același fișier.
Stocarea datelor într-un fișier vă permite să vă îndepărtați de la utilizarea bazei de date dacă cantitatea de date nu este prea mare și nu este necesară partajarea datelor.
Cel mai important lucru este să organizăm toate datele sub forma unui set de clase ușor de utilizat și să nu pierdem timpul de economisire și să le inițializăm din baza de date.
Exemplul de mai sus ilustrează doar această abordare. Pentru implementarea sa, pot apărea și două tabele din baza de date. Cu toate acestea, această abordare este convenabilă, cu condiția ca datele să aibă o ierarhie complexă. De exemplu, colecțiile imbricate de diferite tipuri sunt mult mai greu de descompus în baza de date, ele necesită SQL pentru a le extrage. Decide pentru tine, judecând după sarcina ta specifică.
Următorul este un cod de funcții pentru salvarea / citirea unei componente.