if Active=5 then TextBackGround(0);
if Active=6 then TextBackGround(9);
gotoXY(4,9); write('[06] Изменение записи ');
if Active=6 then TextBackGround(0);
if Active=7 then TextBackGround(9);
gotoXY(4,10); write('[07] Удаление записи ');
if Active=7 then TextBackGround(0);
if Active=8 then TextBackGround(9);
gotoXY(4,11); write('[08] Сохранение в текст. файл ');
if Active=8 then TextBackGround(0);
if Active=9 then TextBackGround(9);
gotoXY(4,12); write('[09] Сохранение в тип. файл ');
if Active=9 then TextBackGround(0);
if Active=10 then TextBackGround(9);
gotoXY(4,13); write('[10] О программе ');
if Active=10 then TextBackGround(0);
if Active=11 then TextBackGround(9);
gotoXY(4,14); write('[11] Выход ');
if Active=7 then TextBackGround(0);
gotoXY(1, 25);
end;
procedure CallMenu;
var zicl, Active: Integer;
Quit: Boolean;
Ch: Char;
begin
TextColor(2);
PrintMainFraime(2, 2, 78, 15);
PrintMainMenu(1);
Quit:=False;
Active:=1;
repeat
ch:=ReadKey;
case ord(Ch) of
27: Quit:=True;
80: begin Inc(Active); If Active=12 then Active:=1; PrintMainMenu(Active); end;
72: begin Dec(Active); If Active=0 then Active:=11; PrintMainMenu(Active); end;
13: case Active of
1: begin Active:=1; LoadTextData(n, BGTU); end;
2: begin Active:=1; LoadTipData(n, BGTU); end;
3: begin Active:=1; InputData(n, BGTU); end;
4: begin Active:=1; OutputData(n, BGTU); end;
5: begin Active:=1; FindData(n, BGTU); end;
6: begin Active:=1; ChangeData(n, BGTU); end;
7: begin Active:=1; DeleteData(n, BGTU); end;
8: begin Active:=1; SaveTextData(n, BGTU); end;
9: begin Active:=1; SaveTipData(n, BGTU); end;
10: begin Active:=1; About; end;
11: Quit:=True;
end;
end;
until Quit;
end;
end.
Файл work.pas
unit Work;
uses Crt, Structur, Menu;
procedure LoadTextData(var n: Word; BGTU: BasePointer);
procedure LoadTipData(var n: Word; BGTU: BasePointer);
procedure InputData(var n: Word; BGTU: BasePointer);
procedure OutputData(n: Word; BGTU: BasePointer);
procedure FindData(n: Word; BGTU: BasePointer);
procedure ChangeData(n: Word; BGTU: BasePointer);
procedure DeleteData(var n: Word; BGTU: BasePointer);
procedure SaveTextData(n: Word; BGTU: BasePointer);
procedure SaveTipData(n: Word; BGTU: BasePointer);
procedure About;
{------Вспомогательные процедуры и функции------}
procedure PressKey;
var clean: char;
begin
gotoXY(1,25);
write('Нажмите любую клавишу...');
repeat
until keypressed;
while keypressed do clean:=readkey;
end;
function SafeRead(MaxLen, MinLen ,Code: Integer): String;
var Poz: Integer; { code=1 - только цифры }
Flag: Boolean; { code=0 - все символы }
Result: string;
Ch: char;
begin
Result:='';
Poz:=0;
Flag:=False;
repeat
Ch:=ReadKey;
case Ch of
#13: if Length(Result)>=MinLen then Flag:=True;
#08: if Length(Result)>0 then
begin
Delete(Result,Length(Result),1);
gotoXY(WhereX-1,WhereY); write(' ');
gotoXY(WhereX-1, WhereY);
end;
else if (Length(Result)<MaxLen) and (Ch<>#27) and ((Code=1) and (ord(Ch)>47)
and (ord(ch)<58) or (code=0)) then
begin
write(Ch);
Result:=Result+Ch;
end;
end;
until Flag;
SafeRead:=Result;
end;
procedure Clear(x1, y1, x2, y2: Integer);
var zicl, zicl2: Integer;
begin
gotoXY(x1, y1);
for zicl:=y1 to y2 do
begin
for zicl2:=x1 to x2 do write(' ');
gotoXY(x1, WhereY+1);
end;
end;
{------Основные процедуры------}
procedure LoadTextData(var n: Word; BGTU: BasePointer); {I Пункт меню}
var F: Text;
Path: String;
Loaded: 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-}
Reset(F);
{$I+}
if IoResult<>0 then
write('Ошибка открытия файла...')
else
begin
Loaded:=n;
while not Eof(f) and (n<Nmax) do
begin
inc(n);
with BGTU^[n] do
begin
readln(f, Name);
readln(f, BirthYear);
readln(f, Address);
readln(f, Phone);
readln(f, Facultet);
readln(f, Group);
end;
end;
Loaded:=n-Loaded;
if not eof(f) then write('База данных заполнена...');
close(f);
gotoXY(4, 7);
write('Загружено записей: ', Loaded);
end;
PressKey;
ClrScr;
PrintMainFraime(2, 2, 78, 15);
PrintMainMenu(1);
end;
procedure LoadTipData(var n: Word; BGTU: BasePointer); {II Пункт меню}
var F: file of Person;
Path: String;
Loaded: Word;
begin
ClrScr;
gotoXY(25, 1);
write('Загрузка данных из тип. файла');
PrintMainFraime(2, 2, 78, 15);
gotoXY(4, 3);
write('Введите имя файла: ');
Path:=SafeRead(50,1,0);
gotoXY(4, 5);
Assign(f, Path);
{$I-}
Reset(F);
if IoResult<>0 then
write('Ошибка открытия файла...')
else
begin
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.