Determinarea dimensiunii fișierului delphi

Înainte de mine nu era niciodată sarcina de a determina mărimea dosarului Delphi. Dar după ce am văzut întrebarea "cum să determinăm dimensiunea fișierului" undeva, m-am interesat de asemenea.







Determinarea dimensiunii fișierului este identică cu determinarea boa de creștere într-un desen animat celebru! Câte octeți se potrivesc, la fel și dimensiunea sa. Planul este următorul:
  1. Setați tipul de date la 1 octet. Aceasta va fi o înregistrare.
  2. Definiți o variabilă de fișier de acest tip.
  3. Începem de la începutul fișierului și trecem la sfârșit. Câte tranziții - atât de multe octeți în fișier!
Programul va consta într-o formă. la care renunțăm la componenta selecției fișierelor - OpenDialog și Button. dând clic pe care vom selecta fișierul. De aici, de fapt, și de manipulatorul acestui buton:

procedura TForm1.ButtonClick (expeditor: TObject);
tip TSize = înregistrare
Momeală: octet;
se încheie;
var F: fișierul TSize;
Dimensiune: Integer;
începe
Dimensiune: = 0;
cu OpenDialog1 face
dacă Execute atunci
începe
Atribuiți fișierul (F, Nume de fișier);
Resetați (F);
(nu EOF (F))
începe
Dimensiune: = Dimensiune + 1;






căuta (F, Dimensiune);
se încheie;
Form1.Caption: = IntToStr (Dimensiune); // Afișați informațiile despre mărime în antetul de formular
CloseFile (F);
se încheie;
se încheie;

Programul a fost scris în cinci minute, după cum se spune, "pe genunchi". Funcționează, iar pentru fișiere de până la mai multe megabytes în mărime, timpul de așteptare pentru rezultat este mic, câteva secunde. Pentru fișierele mari, așteptarea este întârziată, iar programul pare "agățat". Puteți schimba programul astfel încât să numere kilobyte (înlocuiți căutați (F, Dimensiune) cu căutați (F, Dimensiune * 1024)). Viteza muncii va crește cu 1024 de ori și va fi acceptabilă.

A fost o altă demonstrație a metodelor de lucru cu dosarele. Dar, de fapt, totul este mult mai ușor! Dimensiunea fișierului este returnată de funcția încorporată FileSize. Și este suficient să descriem fișierul ca având octetul de tip:

procedura TForm1.ButtonClick (expeditor: TObject);
var F: Fișier de octet;
Dimensiune: Integer;
începe
cu OpenDialog1 face
dacă Execute atunci
începe
Atribuiți fișierul (F, Nume de fișier);
Resetați (F);
Dimensiune: = Dimensiunea fișierului (F);
Form1.Caption: = IntToStr (Dimensiune); // Afișați informațiile despre mărime în antetul de formular
CloseFile (F);
se încheie;
se încheie;

Există o modalitate alternativă de a lucra cu fișierele Delphi. în care fișierul este tratat ca obiect. Există, de asemenea, metode construite pentru a determina dimensiunea fișierului. De asemenea, vă voi da întreaga procedură:

procedura TForm1.ButtonClick (expeditor: TObject);
var F: TFileStream;
începe
cu OpenDialog1 face
dacă Execute atunci
începe
F: = TFileStream.Create (numele fișierului, fmOpenRead);
Subtitrare: = IntToStr (F.Size);
F.Free;
se încheie;
se încheie;

Această procedură arată mai compactă, funcționează mai repede, dar necesită și o pregătire suplimentară.







Articole similare

Trimiteți-le prietenilor: