Текстовые и типизированные файлы. Создание базы данных для отдела кадров, страница 4

begin

ClrScr;

gotoXY(32, 1);

write('Изменение записи');

PrintMainFraime(2, 2, 78, 23);

gotoXY(4, 4);

write('Введите фамилию: '); ChangeName:=SafeRead(20, 1, 0);

zicl:=1;

poz:=0;

while (zicl<=n) and (Poz=0) do

begin

if BGTU^[zicl].Name=ChangeName then poz:=Zicl;

inc(zicl);

end;

if poz=0 then

begin

gotoXY(4,6);

write('Запись отсутствует в базе...');

end

  else

    begin

with BGTU^[poz] do

begin

gotoXY(4,6); write('Фамилия:      ', Name);

gotoXY(4,7); write('Год рождения: ', BirthYear);

gotoXY(4,8); write('Адрес:        ', Address);

gotoXY(4,9); write('Телефон:      ', Phone);

gotoXY(4,10); write('Факультет:    ', Facultet);

gotoXY(4,11); write('Группа:       ', Group);

gotoXY(4, 13);

write('Введите новые данные:');

gotoXY(4,15);

write('Фамилия:      '); ChangeName:=SafeRead(20, 0, 0);

if ChangeName='' then write('<не изменено>') else

Name:=ChangeName;

gotoXY(4,16);

write('Год Рождения: '); ChangeName:=SafeRead(4, 0, 1);

if ChangeName='' then write('<не изменено>') else

BirthYear:=ChangeName;

gotoXY(4, 17);

write('Дом. адрес:   '); ChangeName:=SafeRead(50, 0, 0);

if ChangeName='' then write('<не изменено>') else

Address:=ChangeName;

gotoXY(4, 18);

write('Телефон:      '); ChangeName:=SafeRead(20, 0, 0);

if ChangeName='' then write('<не изменено>') else

Phone:=ChangeName;

gotoXY(4, 19);

write('Факультет:    '); ChangeName:=SafeRead(1, 0, 0);

if ChangeName='' then write('<не изменено>') else

Facultet:=ChangeName;

gotoXY(4, 20);

write('Группа:       '); ChangeName:=SafeRead(3, 0, 0);

if ChangeName='' then write('<не изменено>') else

Group:=ChangeName;

end;

gotoXY(4, 22);

write('Данные успешно изменены...');

end;

PressKey;

ClrScr;

PrintMainFraime(2, 2, 78, 11);

PrintMainMenu(1);

end;

procedure DeleteData(var n: Word; BGTU: BasePointer); {VII пункт меню}

var DeleteName: String;

zicl, poz: Integer;

ch: Char;

begin

ClrScr;

gotoXY(32, 1);

write('Удаление записи');

PrintMainFraime(2, 2, 78, 23);

gotoXY(4, 4);

write('Введите фамилию: '); DeleteName:=SafeRead(20, 1, 0);

zicl:=1;

poz:=0;

while (zicl<=n) and (Poz=0) do

begin

if BGTU^[zicl].Name=DeleteName then poz:=Zicl;

inc(zicl);

end;

if poz=0 then

begin

gotoXY(4,6);

write('Запись отсутствует в базе...');

end

  else

    begin

with BGTU^[poz] do

begin

gotoXY(4,6); write('Фамилия:      ',Name);

gotoXY(4,7); write('Год рождения: ',BirthYear);

gotoXY(4,8); write('Адрес:        ',Address);

gotoXY(4,9); write('Телефон:      ',Phone);

gotoXY(4,10); write('Факультет:    ',Facultet);

gotoXY(4,11); write('Группа:       ',Group);

end;

gotoXY(4, 13);

write('Удалять? [y/n]: ');

ch:=' ';

repeat

ch:=ReadKey;

until (ch='Y') or (ch='y') or (ch='N') or (ch='n');

write(ch);

if (ch='Y') or (ch='y') then

begin

for zicl:=poz to n-1 do  BGTU^[zicl]:=BGTU^[zicl+1];

dec(n);

gotoXY(4, 15);

write('Запись успешно удалена...');

end;

    end;

PressKey;

ClrScr;

PrintMainFraime(2, 2, 78, 11);

PrintMainMenu(1);

end;

procedure SaveTextData(n: Word; BGTU: BasePointer); {VIII Пункт меню}

var F: Text;

Path: String;

zicl: Word;

begin

ClrScr;

gotoXY(27, 1);

write('Сохранение в текст. файла');

PrintMainFraime(2, 2, 78, 15);

gotoXY(4, 3);

write('Введите имя файла: ');

Path:=SafeRead(50,1,0);

gotoXY(4, 5);

Assign(f, Path);

{$I-}

Rewrite(F);

{$I+}

if IoResult<>0 then

write('Ошибка открытия файла...')

else

begin

for zicl:=1 to n do

begin

with BGTU^[zicl] do

begin

writeln(f, Name);

writeln(f, BirthYear);

writeln(f, Address);

writeln(f, Phone);

writeln(f, Facultet);

writeln(f, Group);

end;

end;

close(f);

gotoXY(4, 7);

write('Данные успешно сохранены...');

end;

PressKey;

ClrScr;

PrintMainFraime(2, 2, 78, 15);

PrintMainMenu(1);

end;

procedure SaveTipData(n: Word; BGTU: BasePointer); {IX Пункт меню}

var F: file of Person;

Path: String;

zicl: Word;

begin

ClrScr;

gotoXY(24, 1);

write('Сохранение в тип. файла');

PrintMainFraime(2, 2, 78, 15);

gotoXY(4, 3);

write('Введите имя файла: ');

Path:=SafeRead(50,1,0);

gotoXY(4, 5);

Assign(f, Path);

{$I-}

Rewrite(F);

if IoResult<>0 then

write('Ошибка открытия файла...')

else

begin

for zicl:=1 to n do write(f, BGTU^[zicl]);

close(f);

write('Данные успешно сохранены...');

end;

{$I+}

PressKey;

ClrScr;

PrintMainFraime(2, 2, 78, 15);

PrintMainMenu(1);

end;

procedure About; {VI пункт меню}

begin

ClrScr;

PrintMainFraime(10, 6, 60, 10);

gotoXY(24, 7);

write('Кафедра Вычислительной Техники');

gotoXY(21, 9);

write('Лабораторная работа по информатике №4');

gotoXY(13, 11);

write('ТЕМА:      Типизированные и текстовые файлы);

gotoXY(13, 12);

write('ВЫПОЛНИЛ:  Суханов Александр');

gotoXY(13, 13);

write('ГРУППА:    И433');

PressKey;

ClrScr;

PrintMainFraime(2, 2, 78, 11);

PrintMainMenu(1);

end;

end.