End Fayla, Capitolul 7

Funcția Valoarea EOF poate fi verificată imediat după deschiderea fișierului. În cazul în care acest lucru este să fie egală cu adevărat, ceea ce înseamnă că fișierul nu conține nici un element de date, de ex., E. este gol (dimensiunea fișierului este zero).

Listarea 7.5 arată procedura care îndeplinește sarcina. Se citește linii dintr-un fișier al cărui nume este utilizatorul a intrat în timpul programului și afișează aceste linii în câmpul memo. Fereastra programului este prezentată în Fig. 7.6.

Fig. 7.6. Fereastra programului Citirea dintr-un fișier

Listarea 7.5. Citirea dintr-un fișier

Ferestre, Mesaje, SysUtils, variante, clasele,

Grafica, Controale, Formulare, Dialoguri, StdCtrls, butoane;

Procedura Button2Click (Expeditor: TObject);

Procedura ButtonlClick (Expeditor: TObject); privat

// click pe butonul Open

Procedura TForm1.Button1Click (Expeditor: TObject);

f: Textfile; // fname fișier: String [80]; // numele fișierului

buf: String [80]; // tampon pentru a citi din fișierul

fname: = Edit1.Text; AssignFile (f, fname);

Reset (f); // deschide pentru citire

dacă IOResult <> 0 apoi începe

acces MessageDlgt'Oshibka la dosar „+ fname,

mtError [MBOK], 0); ieșire; se încheie;

// citit din fișier

readln (f, buf); // citit o linie dintr-un fișier

Memo1.Lines.Add (buf); // adăugați această linie la câmpul Memo1

CloseFile (f); // închide fișierul

// click pe butonul Save - scrie într-un fișier

Procedura TForml.Button2Click (Expeditor: TObject);

f: Textfile; // fișier

fname: String [80]; // numele fișierului

fname: = Edit1.Text; AssignFile (f, fname);

Rescriem (f); // deschide pentru dublaj

pentru i: = 0 până la Memo1.Lines.Count face // siruri de caractere sunt numerotate de la zero

CloseFile (f); // închide fișierul

MessageDlg ( 'datele sunt scrise într-un fișier', mtlnformation, [MBOK], 0);

Pentru organizarea utilizat ciclul de fișier de instrucțiuni de procesare în timp, care oferă o funcție EOF valoarea de verificare înainte de fiecare citire, inclusiv înainte de prima.