var Change, Temp: Link;
StrData: String;
begin
ClrScr;
GotoXY(32, 1);
Write('Изменение записи');
PrintMainFraime(2, 2, 78, 23);
GotoXY(4, 4);
if n=0 then
Write('База данных пуста...')
else
begin
New(Change);
Write('Введите фамилию: '); Change^.Name:=SafeRead(20, 1, 0);
with Change^ do
begin
BirthYear:='';
Address:='';
Phone:='';
Facultet:='';
Group:='';
end;
Temp:=BGTU;
SpSearch(Temp, Change);
if Temp=Nil then
begin
GotoXY(4,6);
Write('Запись отсутствует в базе...');
end
else
begin
with Temp^ 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);
Change^.BirthYear:=BirthYear;
Change^.Address:=Address;
Change^.Phone:=Phone;
Change^.Facultet:=Facultet;
Change^.Group:=Group;
end;
GotoXY(4, 13);
Write('Введите новые данные:');
GotoXY(4,15);
with Change^ do
begin
Write('Фамилия: ');
StrData:=SafeRead(20, 0, 0);
if StrData='' then Write('<не изменено>') else Name:=StrData;
GotoXY(4,16); Write('Год Рождения: ');
StrData:=SafeRead(4, 0, 1);
if StrData='' then Write('<не изменено>') else BirthYear:=StrData;
GotoXY(4, 17); Write('Дом. адрес: ');
StrData:=SafeRead(50, 0, 0);
if StrData='' then Write('<не изменено>') else Address:=StrData;
GotoXY(4, 18); Write('Телефон: ');
StrData:=SafeRead(20, 0, 0);
if StrData='' then Write('<не изменено>') else Phone:=StrData;
GotoXY(4, 19); Write('Факультет: ');
StrData:=SafeRead(1, 0, 0);
if StrData='' then Write('<не изменено>') else Facultet:=StrData;
GotoXY(4, 20); Write('Группа: ');
StrData:=SafeRead(3, 0, 0);
if StrData='' then Write('<не изменено>') else Group:=StrData;
GotoXY(4, 22);
end;
SpDelete(BGTU, Temp);
SpInsert(BGTU, Change);
Write('Данные успешно изменены...');
end;
end;
PressKey;
end;
procedure DeleteData(var n: Integer; var BGTU: Link); {VI пункт меню}
var Delete, Temp: Link;
Ch: Char;
begin
ClrScr;
GotoXY(32, 1);
Write('Удаление записи');
PrintMainFraime(2, 2, 78, 23);
GotoXY(4, 4);
if n=0 then
Write('База данных пуста...')
else
begin
New(Delete);
Write('Введите фамилию: '); Delete^.Name:=SafeRead(20, 1, 0);
with Delete^ do
begin
BirthYear:='';
Address:='';
Phone:='';
Facultet:='';
Group:='';
end;
Temp:=BGTU;
SpSearch(Temp, Delete);
if Temp=Nil then
begin
GotoXY(4,6);
Write('Запись отсутствует в базе...');
end
else
begin
with Temp^ 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]: ');
repeat
Ch:=ReadKey;
until Ch in ['Y', 'y', 'N', 'n'];
Write(Ch);
if (Ch='Y') or (Ch='y') then SpDelete(BGTU, Temp);
Dec(n);
Dispose(Delete);
GotoXY(4, 15);
Write('Запись успешно удалена...');
end;
end;
PressKey;
end;
procedure SaveData(n: Integer; BGTU: Link); {VII Пункт меню}
var f: Text;
Path: String;
begin
ClrScr;
GotoXY(27, 1);
Write('Сохранение в текст. файла');
PrintMainFraime(2, 2, 78, 15);
GotoXY(4, 4);
if n=0 then Write('База данных пуста...')
else
begin
Write('Введите имя файла: ');
Path:=SafeRead(50,1,0);
GotoXY(4, 6);
Assign(f, Path);
{$I-}
Rewrite(f);
{$I+}
if IoResult<>0 then
Write('Ошибка открытия файла...')
else
begin
while BGTU<>Nil do
begin
with BGTU^ do
begin
Writeln(f, Name);
Writeln(f, BirthYear);
Writeln(f, Address);
Writeln(f, Phone);
Writeln(f, Facultet);
Writeln(f, Group);
end;
BGTU:=BGTU^.Next;
end;
Close(f);
GotoXY(4, 8);
Write('Данные успешно сохранены...');
end;
end;
PressKey;
end;
procedure About; {VIII пункт меню}
begin
ClrScr;
PrintMainFraime(10, 6, 60, 15);
GotoXY(24, 7); Write('Кафедра Вычислительной Техники');
GotoXY(21, 9); Write('Лабораторная работа по информатике №5');
GotoXY(13, 11); Write('ТЕМА: Типизированные и текстовые файлы');
GotoXY(13, 12); Write('ВЫПОЛНИЛ: Суханов Александр');
GotoXY(13, 13); Write('ГРУППА: И433');
GotoXY(32, 15); Write('Данные о системе:');
GotoXY(13, 16); Write('Кол-во загруженных записей: ', n);
GotoXY(13, 17); Write('Максимальное кол-во записей: ', n + MaxAvail div SizeOf(Person)-2);
GotoXY(13, 18); Write('Свободно ресурсов: ', MemAvail,' Bait');
PressKey;
end;
end.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.