Cum se stochează o imagine de fișier în memorie

Cum se stochează o imagine de fișier în memorie?

În general, problema, așa că am scris componenta, prototipul care a fost TIniFile, astfel încât este singura diferență (și principala diferență), este că fișierul .ini în fiecare opțiune, există doar o singură valoare, și am două dintre ele, și mai mult, plus aceste date sunt criptate, destul de bine. Deci aici. problema constă în faptul că, pentru a lucra cu fișierul, este necesar ca la începutul oricărei funcții pentru a decripta și apoi cripta fișierul, desigur, acest lucru este tot făcut în mod automat, și anume în interiorul componentei, totul trece neobservat "pentru ochii" programatorului, adică la începutul fiecărui fișier funcție decriptat și apoi criptate (ceva ce povotryayus) Ei bine, asta e tot ce e bine atunci când computerul funcționează normal, iar în cazul în care cererea este completată în mod corect, dar în cazul în care cererea este ucis folosind TerminateProcess, sau pur și simplu tăiat în jos computerul există o șansă ca în acest moment componenta se va schimba nimic în dosar, decriptează și nu au timp pentru a cripta.






Așadar, am avut ideea că atunci când programul a început, componenta va face o imagine a fișierului în memorie, va lucra cu ea în memorie și în fiecare secundă ar elimina fișierul criptat de pe hard disk, adică Probabilitatea ca un fișier decriptat să fie pe disc este aproape zero. totul ar fi bine, dar nu știu cum să o fac :( .mozh cine știe și va ajuta? Trebuie doar să-l aducem în minte.

pentru a răspunde prea mult, trebuie să știți de ce este folosit un astfel de fișier, pentru stocarea datelor, cât de des se schimbă.

> prototipul a fost TIniFile
> decriptați-l și nu aveți timp să-l criptați

Faceți un prototip de TMemIniFile și păstrați-l în memorie. -) Decriptați o dată când citiți de pe disc și o criptați o dată în timp ce salvați.

Odată o secundă să aruncați fișierul (așa cum am înțeles, nu unul mic) - milă pentru utilizatorul sărac. Și dacă fișierul este mic, atunci de la pierderea de date în cazul unei întreruperi de curent nu va economisi.






În sfârșit, oamenii au rezolvat astfel de probleme când au creat sisteme de procesare a tranzacțiilor în baza de date pentru a asigura integritatea și coerența bazei de date în cazul unor defecțiuni hardware și așa mai departe. După cum înțeleg, soluțiile nu sunt cele mai simple.

>> panov
Schimbă foarte des - de câteva ori pe secundă.

>> YuYu
Faptul este că componenta nu este un prototip direct, ci o componentă complet nouă, scrisă de la zero, doar că am privit câteva momente în TIniFile și concepte de bază. și nu sunt familiarizat cu TMemIniFile. într-un fel. va trebui să privească din nou.

>> TUser
Fișierul pe care îl încarc nu trebuie să depășească. megabyte 5-10. da, dacă nu în fiecare secundă, apoi la fiecare secundă. și dacă întreruperea bruscă a alimentării, ultima actualizare va fi acum 2 secunde - și nu este la fel de înfricoșător ca fișierul complet decriptat.

La naiba, încă nu înțeleg de ce ai o versiune decriptată pe disc. Păstrați numai criptat. Când decriptați decripta.

Nu, faptul este că versiunea decriptate a discului nu am nevoie, dar din moment ce fiecare procedură (de exemplu, ReadSection) la începutul acestei proceduri, fișierul pe disc standuri, apoi citiți Infa și apoi înapoi este criptat, dar problema este cum să dacă în mijlocul acestei operații, adică citirea din fișierul decriptat, reporniți computerul, fișierul pe disc este decriptat, așa că vreau să fac acest lucru, care ar fi atunci când „descărcarea unui fișier în componenta“, a făcut-o „imagine“ lui în memoria descifrat acolo, și a lucrat cu el ca un fișier normal, și doar o singură dată la fiecare 2 secunde (adică, la cerere de programare) răsturnat versiunea criptat din memorie pe disc. aici. dar nu știu cum să o pun în aplicare. (

Deci nu pot fi ajutat?


> La începutul acestei proceduri, fișierul de pe disc este decriptat,
> atunci infa este citit și apoi înapoi criptat,

Și structura este, de asemenea, necesară pentru ao cripta sau ce? Ce împiedică criptarea numai a parametrilor și a valorilor acestora?

100% Aceasta este o nevoie extraordinară de a salva versiunea decriptată pe disc. Care este utilizarea? În ce scopuri? Sunt sigur că ați făcut o greșeală atunci când planificați aplicația.


> Dima_dvp

Sunt de acord cu 100%.
De ce să decriptați discul.
Acest lucru, ca să spunem cu blândețe, este prost.
Trebuie să decodați valorile citirea fișierului și să le puneți imediat în memorie.
Cel puțin într-o serie de unii, nu știu.

Acesta este doar punctul, că într-o matrice pentru a stoca aceste informații nu este deloc convenabil. (.

Și cum să-l stochez într-o altă formă în memorie, încă nu știu încă.

Asta e tot. în general, sunt recunoscător tuturor. și în special YuYu
deoarece fără ea n-aș fi observat o componentă ca Meminifile%) acum mi-am remodelat componenta și după cum am observat am început să lucrez de 9 ori mai repede :) salvez din nou







Trimiteți-le prietenilor: