program orginizer;
const
filename = 'zametki.txt';
type date = record
dd: string[2];
mm: string[2];
yyyy: string[4];
z: string[100];
end;
procedure vvoddannix;
var item : date;
f: File of date;
begin
write('День : '); readln(item.dd);
write('Месяц : '); readln(item.mm);
write('Год : '); readln(item.yyyy);
write('Напоминание : '); readln(item.z);
assign(f, filename);
if not fileExists(filename) then begin
rewrite(f);
end;
reset(f);
seek(f, FileSize(f));
write(f, item);
close(f);
end;
procedure poisk (dd, mm, yyyy, z: string);
var i: integer;
item : date;
f: File of date;
begin
assign(f, filename);
if not fileExists(filename) then begin
rewrite(f);
end;
reset(f);
i := 1;
writeln('Список записей');
while not eof(f) do begin
read(f, item);
if (dd = '') and (mm = '') and (yyyy = '') and (z = '') then begin
writeln(i + '. День : ' + item.dd + ' Месяц: ' + item.mm + ' Год: ' + item.yyyy + ' Напоминание: ' + item.z);
i := i + 1;
end
else if (dd <> '') then begin
if (pos(dd, item.dd) > 0) then begin
writeln(i + '. День : ' + item.dd + ' Месяц: ' + item.mm + ' Год: ' + item.yyyy + ' Напоминание: ' + item.z);
i := i + 1;
end;
end
else if (mm <> '') then begin
if (pos(mm, item.mm) > 0) then begin
writeln(i + '. День : ' + item.dd + ' Месяц: ' + item.mm + ' Год: ' + item.yyyy + ' Напоминание: ' + item.z);
i := i + 1;
end;
end
else if (yyyy <> '') then begin
if (pos(yyyy, item.yyyy) > 0) then begin
writeln(i + '. День : ' + item.dd + ' Месяц: ' + item.mm + ' Год: ' + item.yyyy + ' Напоминание: ' + item.z);
i := i + 1;
end;
end
else if (z <> '') then begin
if (pos(z, item.z) > 0) then begin
writeln(i + '. День : ' + item.dd + ' Месяц: ' + item.mm + ' Год: ' + item.yyyy + ' Напоминание: ' + item.z);
i := i + 1;
end;
end
end;
close(f);
end;
procedure izmenenie;
var index: integer;
item : date;
f: File of date;
begin
poisk('', '', '','');
writeln('Номер записи для изменения: ');
readln(index);
assign(f, filename);
if not fileExists(filename) then begin
rewrite(f);
end;
reset(f);
write('День : '); readln(item.dd);
write('Месяц : '); readln(item.mm);
write('Год : '); readln(item.yyyy);
write('Напоминание : '); readln(item.z);
seek(f, index - 1);
write(f, item);
close(f);
end;
procedure ydalenie;
var i, index: integer;
item : date;
f,f2: File of date;
begin
poisk('', '', '','');
writeln('Номер записи для удаления: ');
readln(index);
assign(f, filename);
assign(f2, 't' + filename);
rewrite(f2);
if not fileExists(filename) then begin
rewrite(f);
end;
reset(f);
reset(f2);
i := 1;
while not eof(f) do begin
read(f, item);
if index <> i then begin
write(f2, item);
end;
i := i + 1;
end;
close(f);
close(f2);
DeleteFile(filename);
rename(f2, filename);
end;
procedure Menu;
begin
writeln('------------------');
writeln ('Введите пункт меню:');
writeln('1: Просмотр записей');
writeln('2: Добавление записи');
writeln('3: Изменение записи');
writeln('4: Удаление записи');
writeln('5: Поиск по дню');
writeln('6: Поиск по месяцу');
writeln('7: Поиск по году');
writeln('8: Поиск по напоминанию');
writeln('0: Выход');
write('Действие: ');
end;
var punkt: integer;
s: string;
begin
punkt := 1;
while 1=1 do begin
Menu;
readln(punkt);
case punkt of
1: poisk('', '','', '');
2: vvoddannix;
3: izmenenie;
4: ydalenie;
5: begin
writeln('Введите день:'); readln(s);
poisk(s, '', '','');
end;
6: begin
writeln('Введите месяц:'); readln(s);
poisk('', s, '','');
end;
7: begin
writeln('Введите год'); readln(s);
poisk('', '', s,'');
end;
8: begin
writeln('Введите Напоминание'); readln(s);
poisk('', '','', s);
end;
0: exit;
end;
end;
end.