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

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

Листинг 8.1. Добавление записей в файл

Читайте также:
  1. Вопрос 18. Виды и порядок бухгалтерских записей в учетных регистрах.
  2. Вопрос 22. Виды и порядок бухгалтерских записей в учетных регистрах.
  3. Вопрос № 38. Приведите пример создания файла записей (бд) сведений о учащихся гр. ПК-21
  4. Добавление Заклинаний в Книгу Заклинаний
  5. Добавление костей к символам
  6. Добавление костей к фигурам
  7. Добавление упругости костям
  8. Добавление элемента в список
  9. Запрос на добавление записей
  10. Листинг 10.6. Слайд-проектор

unit аррrес_;

Interface

Uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

Type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit1: TEdit; // спортсмен

ComboBox1: TComboBox; // страна

ComboBox2: TComboBox; // вид спорта

RadioGroup1: TRadioGroup; // медаль

Buttonl: TButton; // кнопка Добавить

procedure FormActivate(Sender: TObject);

procedure FormClose(Sender:TObject;var Action: TCloseAction)

procedure Button1Click(Sender: TObject);

private { Private declarations }

public { Public declarations }

end;

// тип медали

TKind = (GOLD, SILVER, BRONZE);

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

TMedal= record

country: string [20]; // страна

sport: string [20]; // вид спорта

person: string [40]; // спортсмен

kind: TKind; // медаль

end;

var Form1: TForm1;

f: file of TMedal; // файл записейбаза данных

Implementation

{$R *.DFM}

// активизация формы

procedure TForm1.FormActivate(Sender: TObject);

var resp: word; // ответ пользователя

Begin

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

{$I-}

Reset (f); // открыть файл

Seek(f, FileSize(f)); // указатель записи в конец файла

{$I+}

if lOResult = 0 then

buttonl.enabled:=TRUE // теперь кнопка Добавить доступна

Else begin

resp:=MessageDlg('Файл базы данных не найден.'

+ 'Создать новую БД?', mtlnformation,[mbYes,mbNo],0);

if resp = mrYes then begin

{$I-}

rewrite(f);

{$I+}

if lOResult = 0 then button1.enabled:=TRUE

else ShowMessage('Ошибка создания файла БД.');

end;

end;

end;

// щелчок на кнопке Добавить

procedure TForm1.Button1Click(Sender: TObject);

var medal: TMedal;

Begin

With medal do begin

country:= ComboBox1.Text;

sport:= ComboBox2.Text;

person:= Edit1.Text;

CaseRadioGroup1.ItemIndex of

0: kind:= GOLD;

1: kind:= SILVER;

2: kind:= BRONZE;

end;

end;

write(f,medal); // записать содержимое полей записи в файл

end;

// завершение работы программы

ProcedureTForm1.FormClose(Sender: TObject;var

Action:TCloseAction);

Begin

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

end;

End.

В представленной программе процедура TForm1.FormActivate открывает файл базы данных для добавления. Здесь следует обратить внимание на то, как это реализовано. Процедуру AppendFile, которая открывает файл для добавления в конец, использовать нельзя, т. к. файл не является текстовым. Поэтому файл сначала открывается процедурой Rewrite в режиме перезаписи, а затем процедура Seek устанавливает указатель чтения/записи в конец файла. Параметром процедуры seek является функция Filesize, значение которой равно размеру файла (в байтах).

Процедура TForm1.Button1Click, которая запускается нажатием кнопки Добавить (Button1), выполняет непосредственное добавление записи в файл. Поля country и sport добавляемой записи заполняются из свойства Text комбинированных списков Страна (comboBox1) и Вид спорта (ComboBox2).

Поле person формируемой записи заполняется из поля ввода Спортсмен (компонент Edit1), а содержимое поля medal определяется выбранной кнопкой компонента RadioGroupl.

Процедура TForm1.FormClose закрывает файл базы данных поскольку тип TMedal используется двумя процедурами(TForm1.FormActivate и TForm1.Button1Сlick), то его описание помещено в раздел type модуля формы. Объявление файловой переменной f по этой же причине помещено в раздел объявления переменных модуля формы.

В приведенном варианте программы предполагается, что списки стран и названий видов спорта формируются при помощи редактора списка строк во время разработки формы. Вместе с тем, список можно сформировать во время разработки программы. Для этого надо к свойству items применить метод Add. Например, список стран может быть сформирован при помощи следующих инструкций (их нужно поместить в процедуру Tform1.FormActivate):

Form1.ComboBox1.Item.Add('Россия');

Form1.ComboBox1.Item.Add('Австрия');

Form1.ComboBox1.Item.Add('Германия');

Form1.ComboBox1.Item.Add('Франция');




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




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