Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
делфи.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
8.51 Mб
Скачать

Implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var n,ch:integer;

s,buf:string;

begin

s:=Edit1.Text+' ';

while s<>''do

begin

buf:='';

n:=pos(' ',s);

buf:=copy(s,1,n-1);

ch:=StrToInt(buf);

if ch mod 2 = 0 then ListBox1.Items.add (IntToStr(ch)) ;

delete(s,1,n);

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text := '';

end;

end.

Результат работы программы:

При запуске программы появляется следующее окно:

Выводы: изучили методы программирования с использованием строк и правила работы с компонентами TListBox и TComboBox. Написали программу работы со строками.

Лабораторная работа 6

Разработка приложения с использованием записей и файлов

Постановка задачи:

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

В программе предусмотреть сохранение вводимых данных в файле и возможность чтения из ранее сохраненного файла. Результаты выводить в окно просмотра и в текстовой файл.

Задание: Информация о сотрудниках предприятия содержит: Ф.И.О., номер отдела, должность, дату начала работы. Вывести списки сотрудников по отделам в порядке убывания стажа.

Текст программы:

unit Unit1;

Interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, XPMan, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit;

Label4: TLabel;

Edit4: TEdit;

Button1: TButton;

Memo1: TMemo;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Splitter1: TSplitter;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Type

TSotrudniki = record

fio:string[255];

nofotdel:Integer;

SPost:string[255];

SDate:TDatetime;

end;

var

Fz : file of Tsotrudniki; //Файл типа запись

Ft : TextFile; //Текстовый файл

sotr: array [1..100] of TSotrudniki; //Массив записей

FileNameZ, FileNameT : string; //Имя файла

nzap : integer;

var

Form1:TForm1;

Implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

Edit1.Text := '';

Edit2.Text := '';

Edit3.Text := '';

Edit4.Text := '';

Button1.Hide; //Сделать невидимой кнопку "Ввести запись"

nzap := 0;

end;

//ввести новую запись

procedure TForm1.Button1Click(Sender: TObject);

begin

nzap := nzap+1;

with sotr[nzap] do

begin

FIO:=Edit1.Text;

NofOtdel:=StrToInt(Edit2.Text);

SPost:=Edit3.Text;

SDate:=StrToDate(Edit4.Text);

Memo1.Lines.Add(fio + ' ' + IntToStr(NofOtdel) + ' ' + SPost

+ ' ' + DateToStr(sDate));

end;

write(fz, sotr[nzap]); //Запись в файл

Edit1.Text := '';

Edit2.Text := '';

Edit3.Text := '';

Edit4.Text := '';

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

OpenDialog1.Title := 'Создать новый файл';

if OpenDialog1.Execute then

begin

FileNameZ := OpenDialog1.FileName;

AssignFile(fz, FileNameZ);

Rewrite(fz);

end;

Button1.Show;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

if OpenDialog1.Execute then

begin

FileNameZ := OpenDialog1.FileName;

AssignFile(fz, FileNameZ);

Reset(fz);

end;

nzap := 0;

while not eof(fz) do begin

nzap := nzap+1;

Read(fz, sotr[nzap]);

with sotr[nzap] do

Memo1.Lines.Add(fio + ' ' + IntToStr(NofOtdel) + ' ' + SPost

+ ' ' + DateToStr(sDate));

end;

Button1.Show;

end;

procedure TForm1.Button4Click(Sender: TObject);

var

i, j : word;

st:TSotrudniki;

begin

for i := 1 to nzap-1 do

for j := i+1 to nzap do

if sotr[i].nofotdel > sotr[j].nofotdel then

begin

st:=sotr[i];

sotr[i]:=sotr[j];

sotr[j]:=st;

end;

for i := 1 to nzap-1 do

for j := i+1 to nzap do

if sotr[i].nofotdel = sotr[j].nofotdel then

if sotr[i].SDate < sotr[j].SDate then

begin

st:=sotr[i];

sotr[i]:=sotr[j];

sotr[j]:=st;

end;

Memo1.Clear;

for i := 1 to nzap do

with sotr[i] do

Memo1.Lines.Add(fio + ' ' + IntToStr(NofOtdel) + ' ' + SPost + ' ' + DateToStr(sDate));

end;

procedure TForm1.Button5Click(Sender: TObject);

var

i : word;

begin

if SaveDialog1.Execute then

begin

FileNameT := SaveDialog1.FileName;

AssignFile(ft, FileNameT);

Rewrite(ft);

end;

for i := 1 to nzap do

with sotr[i] do

writeln(Ft, i:4, '. ', fio + ' ' + IntToStr(NofOtdel) + ' ' + SPost

+ ' ' + DateToStr(sDate));

CloseFile(ft);

end;

end.

Результат работы программы: