Основы языка Delphi
79b4045b

Чтение из файла



Листинг 7.5. Чтение из файла

unit rd_;

interface

uses

Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;

type

TForm1 = class(TForm)


Button2: TButton;

Edit1: TEdit;

Memo1: TMemo;

Button1: TButton;

procedure Button2Click(Sender: TObject);

procedure ButtonlClick(Sender: TObject);
private

{ Private declarations ) public

{ Public declarations } end;

var

Form1: TForml;

implementation

{$R *.dfm}

// щелчок на кнопке Открыть

procedure TForm1.Button1Click(Sender: TObject);

var

f: TextFile; // файл fName: String[80]; // имя файла

buf: String[80]; // буфер для чтения из файла

begin

fName := Edit1.Text; AssignFile(f, fName);
{$!-}

Reset(f);
// открыть для чтения {$I+}

if IOResult <>
0 then begin

MessageDlgt'Ошибка доступа к файлу ' + fName,

mtError,[mbOk],0);
exit; end;

// чтение из файла

while not EOF(f) do begin

readln(f, buf);
// прочитать строку из файла

Memo1.Lines.Add(buf);
// добавить строку в поле Memo1

end;

CloseFile(f);
// закрыть файл

end;

// щелчок на кнопке Сохранить — запись в файл

procedure TForml.Button2Click(Sender: TObject);

var

f: TextFile; // файл

fName: String[80]; // имя файла

i: integer/; begin

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

Rewrite(f);
// открыть для перезаписи

// запись в файл

for i:=0 to Memo1.Lines.Count do // строки нумеруются с нуля

writeln(f, Memo1.Lines[i]);

CloseFile(f);
// закрыть файл

MessageDlg('Данные записаны в файл ',mtlnformation,[mbOk],0);

end;

end.

Для организации обработки файла использована инструкция цикла while, которая обеспечивает проверку значения функции EOF перед каждым чтением, в том числе и перед первым.

Наличие кнопки Сохранить и соответствующей ей процедуры позволяет сохранить содержимое поля Memo в файле, т. е. программа чтение из файла представляет собой примитивный редактор текста.

Добавление очередной прочитанной из файла строки в поле Memo выполняется применением метода Add к свойству Lines.



Содержание раздела