Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

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

Читайте также:
  1. I. Чтение
  2. Адрес файла включает в себя способ доступа к файлу и имя сервера Интернета, на котором находится файл.
  3. В каких типах простого файла поиск осуществляется последовательным просмотром?
  4. Во фя предпочтение в целом отдается косв способу именования, в рус- прямому.
  5. Вопрос 18. Виды и порядок бухгалтерских записей в учетных регистрах.
  6. Вопрос 22. Виды и порядок бухгалтерских записей в учетных регистрах.
  7. Вопрос № 37. Опишите работу с файлами на диске в СИ
  8. Вопрос № 38. Приведите пример создания файла записей (бд) сведений о учащихся гр. ПК-21
  9. Если размер кластера 512 байт, а размер файла 784 байт, то файл займет на диске
  10. Задание пути файла

unit rdrec_;

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;

procedure Button1Click(Sender: TObject);

procedure RadioButton2Click(Sender: TObject);

procedure RadioButton1Click(Sender: TObject);

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

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

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

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

private { Private declarations }

public { Public declarations }

end;

var Form1: TForm1;

Implementation

{$R *.DFM}

procedure TForm1.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; Memo1.Clear; // очистить список поля Memo

While notEOF(f) do begin

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

if RadioButton1.Checked or (rec.country = ComboBox1.Text)

Then begin

n:= n + 1;

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

IfRadioButtonl.Checked then

st:= st + ', '+ rec.country;

case rec.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;

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

procedure TForm1.RadioButton2Click(Sender: TObject);

Begin

Label1.Enabled:= True;

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

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

end;

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

procedure TForm1.RadioButton1Click(Sender: TObject);

Begin

Label1.Enabled:= False;

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

end;

End.

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

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




Дата добавления: 2015-02-16; просмотров: 24 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав