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

unitrdrec_;

Interface

Uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls;

Type

TForm1 = class(TForm)

RadioButton1: TRadioButton; // переключатель Все

RadioButton2: TRadioButton; // переключатель Выбрать

// текст Страна

Button1: TButton;

GroupBox1: TGroupBox;

Label1: TLabe1;

procedureButton1Click(Sender: TObject);

procedureRadioButton2Click(Sender: TObject);

procedureRadioButton1Click(Sender: TObject);

ComboBox1: TComboBox; // комбинированный список

// для ввода названия страны

Memol: TMemo; // поле вывода записей, удовлетворяющих

// условию запроса

private

{ Private declarations } public

{ Public declarations } end;

Var

Form1: TForm1;

Implementation

{$R *.DFM}

procedureTForm1.Button1Click(Sender: TObject) ;

Type

// тип медали

TKind = (GOLD,SILVER,BRONZE);

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

TMedal = record

country:string[20]; sport:string[20];

person:string[40]; kind:TKind;

End;

Var

f: file of TMedal; // файл записей

rec: TMedal; // запись, прочитанная из файла

n: integer; // кол-во записей, удовлетворяющих запросу

st: string[80];

Begin

AssignFile(f,'a:\medals.db');

{$I-}

Reset (f); // открыть файл для чтения

{$I-}

ifIOResult <>0 then begin

ShowMessage('Ошибка открытия файла БД.');

Exit;

End;

// обработка БД

ifRadioButton2.Checked then

Memo1.Lines.Add('*** ' + ComboBox1.Text + ' ***'); n := 0;

Memol.Clear; // очистить список поля Memo

while notEOF(f) do begin

read(f, rec); // прочитать запись

if RadioButton1.Checked or

(rec.country = ComboBoxl.Text) then begin

n := n + 1;

st := rec.person+ ', ' + rec.sport;

ifRadioButtonl.Checked then

st := st + ', '+ rec.country; caserec.kind of

GOLD: st := st+ ', золото';

SILVER:st := st+ ', серебро';

BRONZE:st := st+ ', бронза';

End;

Memo1.Lines.Add(st); end;

End;

CloseFile(f); if n = 0 then

ShowMessage('В БД нет запрашиваемой информации.');

End;

// переключатель Выбрать

procedureTForm1.RadioButton2Click(Sender: TObject);

Begin

Label1.Enabled := True;

ComboBox1.Enabled := True; // теперь поле Страна доступно

ComboBox1.SetFocus; // курсор в поле Страна

End;

// переключатель Все

procedureTForm1.RadioButton1Click(Sender: TObject);

Begin

Label1.Enabled := False;

ComboBox1.Enabled := False; // теперь поле Страна не доступно

End;

End.

Процедура TForm1.Button1Click открывает файл и последовательно считывает находящиеся в нем записи. Содержимое записи добавляется в поле Memol, если прочитанная запись удовлетворяет условию запроса, т. е. содержимое поля country совпадает с названием страны, введенным пользователем в поле редактирования компонента ComboBox1, или если выбран переключатель RadioButton1.

Информация в поле Memo добавляется инструкцией Memo1.Lines.Add(st), которая является инструкцией применения метода Add (Добавить) к компоненту Memo1.








Дата добавления: 2014-12-01; просмотров: 780;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.