Простая база данных (запись в файл)

Советы » Файлы » Простая база данных (запись в файл)

Следующая программа ведет простую базу данных. При каждом ее запуске на экране появляется диалоговое окно, в поля которого пользователь может ввести дату и температуру воздуха.

unit

pogoda_; interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type

TForm1 = class

(TForm) Edit1: TEdit; // дата Edit2: TEdit; // температура Button1: TButton; // кнопка Добавить Label1: TLabe1; Label2: TLabe1; procedure

FormActivate(Sender: TObject); procedure

ButtonlClick(Sender: TObject); procedure

FormClose(Sender: TObject; var

Action: TCloseAction); private

{ Private declarations } public

{ Public declarations } end

; var

Form1: TForm1; implementation

{$R *.dfm} const

DBNAME = 'a:pogoda. db'; var

db: TextFile; // файл — база данных procedure

TForm1.FormActivate(Sender: TObject); begin

AssignFile(db, DBNAME); {$I-} Append(db); if

IOResult = 0 then

begin

Edit1.Text := DateToStr(Date); // получить текущую дату Edit2.SetFocus; // курсор в поле Edit2 end

else

begin

Rewrite(db); if

IOResult <> 0 then

begin

// сделать недоступными поля ввода // и командную кнопку Edit1.Enabled := False; Edit2.Enabled := False; Buttonl.Enabled := False; ShowMessage('Ошибка создания ' + DBNAME); end

; end

; end

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

TForml.Button1Click(Sender: TObject); begin

if

(Length(edit1.text) = 0) or

(Length(edit2.text) = 0) then

ShowMessage('Ошибка ввода данных.' + #13 + 'Bce поля должны быть заполнены.') else

writeln(db, editl.text, ' ', edit2.text); end

; // Событие OnClose возникает при закрытии формы procedure

TForm1.FormClose(Sender: TObject; var

Action: TCloseAction); begin

CloseFile(db); // закрыть файл БД end

; end

.

Файл базы данных открывает процедура FormActivate, которая обрабатывает событие onActivate. Событие OnActivate возникает в момент активизации формы, поэтому процедура запускается автоматически, при активизации формы приложения. Если операция открытия файла завершается успешно, то в поле Edit1 записывается текущая дата. Информация о текущей дате возвращает функция Date. Для преобразования возвращаемого функцией Date значения (числа типа Double) в удобную для восприятия форму используется функция Dateiostr. После записи даты в поле Editi процедура обработки события onActivate с применением метода setFocus устанавливает курсор в поле ввода температуры. Если в процессе открытия или создания нового файла возникает ошибка, то процедура делает недоступной кнопку Добавить и выводит информационное сообщение.

Процедура TForm1.Button1Click (процедура обработки события onclick) запускается нажатием кнопки Добавить (Button1). В результате введенная информация записывается в базу данных — файл pogoda.db. Перед выполнением записи программа проверяет, все ли поля формы заполнены, и, если не все, то выводит информационное сообщение.

В результате работы процедуры в конец файла pogoda.db будет добавлена строка, содержащая дату (число, месяц, год) и температуру.

В данной программе используется инструкция writein, а не write, для того чтобы данные за каждый день располагались в базе данных на отдельной строке.

Обратите внимание, что список вывода инструкции writein состоит из трех элементов. После вывода в файл даты (Edit1.text) в файл записывается пробел, а затем— температура (edit2.txt). Если температуру записать в файл сразу после даты, то числа, соответствующие году и температуре, сольются в одну последовательность цифр.

Закрывает базу данных процедура TFormi.Formciose, которая обрабатывает событие enclose, возникающее при закрытии формы приложения.

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com