Добавил:
brawlherry@gmail.com Рыльский филиал МГТУ ГА. Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
29.03.2024
Размер:
3.26 Кб
Скачать
PROGRAM KAD;
USES CRT;
var a: integer;
code:char;
n1:array[1..5] of string[20];
  TYPE zap=RECORD
    FAM: STRING[30];
    GOD: 1900 ..2005;
  END;


VAR F:FILE OF zap;
  Z: ZAP;
  D: INTEGER;
  K, N ,I: INTEGER;
  
  
PROCEDURE CHTENIE;
  BEGIN
  D:=0;
    ASSIGN (F,'KAD.DAT'); {процедура чтения из файла kad.dat}
    RESET (F);
    I:=1;
    WHILE NOT EOF (F) DO
  BEGIN
    READ (F, Z);
    SEEK (F, I);
    I:=I+1;
    D:=D+1;
    WRITELN (D,' ',Z.FAM,' ', Z.GOD);
  END;
    CLOSE (F)
END;
 


  
PROCEDURE VVOD;{процедура ввода данных в поля записи и в файл}
  BEGIN 
      WRITELN('СКОЛЬКО БУДЕМ ВВОДИТЬ ЗАПИСЕЙ?');
      READLN (N);
    FOR VAR I:=1 TO N DO
  BEGIN
      WRITELN ('ФАМИЛИЯ'); READLN (Z.FAM); {ввод данных}
      WRITELN ('ГОД РОЖД.'); READLN (Z.GOD); { в запись }
    WRITE(F,Z); {ввод записи в файл}
  END; CLOSE (F);
END;


PROCEDURE NOVY; {процедура открытия файла для записи}
  BEGIN
    ASSIGN (F,'KAD.DAT');
    REWRITE (F);
    VVOD; {использование ранее описанной процедуры vvod}
  END;
  
  
PROCEDURE DOPOLNENIE; {процедура дополнения записей в файл}
  BEGIN
    ASSIGN(F,'KAD.DAT');
    RESET(F); {при таком открытии файла его содержимое не уничтожается}
    SEEK (F,FILESIZE(F)); 
    VVOD;
  END;
 
 
PROCEDURE REDACH; 
BEGIN
  CHTENIE;
  WRITELN('КАКУЮ ЗАПИСЬ РЕДАКТИРУЕМ?');
  READ(I);
  REPEAT
  WRITELN('ЧТО РЕДАКТИРУЕМ?');
  WRITELN(' 1 ФАМИЛИЯ');
  WRITELN(' 2 ГОД РОЖД.');
  WRITELN(' 3 ВЫХОД');
  READLN(K);
  ASSIGN(F, 'KAD.DAT');
  RESET(F);
  SEEK(F, I-1);
  CASE K OF
    1:BEGIN WRITE('РЕДАКТИРУЕМАЯ ФАМИЛИЯ: '); READ(Z.FAM); WRITE(F,Z);
  end;
    2:BEGIN WRITE('РЕДАКТИРУЕМЫЙ ГОД РОЖД.: '); READ(Z.GOD); WRITE(F,Z); END;
end;
until K=3;
CLOSE(F);

end;

procedure vv;
begin
textbackground(1);
textcolor(4);
gotoxy(30,10+i);
write (n1[i]);
textbackground(6);
textcolor(13);
gotoxy(30,10+i+a);
write(n1[i+a]);
end;

begin
                   {исполнимая часть программы}
clrscr;                {очистка экрана}
n1[1]:='  НОВЫЙ ФАЙЛ   ';
n1[2]:='    ЧТЕНИЕ     ';
n1[3]:='  ДОПОЛНЕНИЕ   ';
n1[4]:='РЕДАКТИРОВАНИЕ ';
n1[5]:='   ЗАКРЫТИЕ    ';
i:=1;a:=3;vv;
gotoxy(30,12);
write(n1[2]);
gotoxy(30,13);
write(n1[3]);
gotoxy(30,14);
write(n1[4]);
gotoxy(30,15);
write(n1[5]);
repeat
code:=readkey;   {считывание кода нажатой клавиши}
case code of
#38: if i=1 then
begin
i:=5;a:=-4;vv; end  {вверх}else   begin i:=i-1;a:=1;vv;  end;
#40: if i=5 then
begin i:=1;a:=4;vv;end  {вниз}else begin i:=i+1;a:=-1;vv; end;
#13: begin  gotoxy(30,7); {Enter}
case i of
1:NOVY;
2:CHTENIE;
3:DOPOLNENIE;
4:REDACH;
5:EXIT;
end; end;
end;until code=#27;{ESC}textbackground(0); textcolor(8);
end.
Соседние файлы в папке prakt12