Код
uses Dos, Crt;
const
ErrWrite='ошибка записи';
Ok='ок';
E: array[0..6] of string=
('воскресенье', 'понедельник', 'вторник',
'среда', 'четверг', 'пятница', 'суббота');
M: array[1..12] of string=
('января', 'февраля', 'марта', 'апреля',
'мая', 'июнья', 'июля', 'августа',
'сентября', 'октября', 'ноября', 'декабря');
var
F: Text;
S: SearchRec;
P: Word;
D: Integer;
A: Word;
P1, P2: String;
Year, Month, Day, DayOfWeek: Word;
Hour, Minute, Second, Sec100: Word;
procedure Help;
begin
TextColor(7);
TextBackground(0);
ClrScr;
TextColor(0);
TextBackground(7);
GotoXY(14,9);
WriteLn('---------------------------------------------------');
TextColor(0);
GotoXY(14,10);
Write(' г--------------- SAVETIME.EXE ----------------┐ ');
TextColor(8);
WriteLn('-');
TextColor(0);
GotoXY(14,11);
Write(' │ Программа написана │ ');
TextColor(8);
WriteLn('-');
TextColor(0);
GotoXY(14,12);
Write(' │ Махаевым Евгением Владимировичем │ ');
TextColor(8);
WriteLn('-');
TextColor(0);
GotoXY(14,13);
Write(' │ для фиксирования времяни в файле │ ');
TextColor(8);
WriteLn('-');
TextColor(0);
GotoXY(14,14);
Write(' │ заданным первым параметром │ ');
TextColor(8);
WriteLn('-');
TextColor(0);
GotoXY(14,15);
Write(' │ Программа предназначена для фиксирования │ ');
TextColor(8);
WriteLn('-');
TextColor(0);
GotoXY(14,16);
Write(' │ времяни включения (перезагрузки компьютера) │ ');
TextColor(8);
WriteLn('-');
TextColor(0);
GotoXY(14,17);
Write(' │ Если вписать перед именем файла "/D ", │ ');
TextColor(8);
WriteLn('-');
TextColor(0);
GotoXY(14,18);
Write(' │ то файл удалится и время будет записано │ ');
TextColor(8);
WriteLn('-');
TextColor(0);
GotoXY(14,19);
Write(' │ в пустой файл. │ ');
TextColor(8);
WriteLn('-');
TextColor(0);
GotoXY(14,20);
Write(' L=============================================- ');
TextColor(8);
WriteLn('-');
TextColor(0);
GotoXY(14,21);
Write('-');
TextColor(8);
Write('--------------------------------------------------');
TextColor(8);
WriteLn('-');
TextColor(7);
TextBackground(0);
Write(#10#10);
Halt(1)
end;
begin
P:=ParamCount;
if (P<1) or (P>2) then Help;
P1:=ParamStr(1);
if P=2 then P2:=ParamStr(2) else P2:=P1;
if (P1='/?') or (P1='?') or (P2='/?') or (P2='?') then Help;
TextColor(7);
TextBackground(0);
WriteLn(#13#10#10'Загрузка программы слежения...');
FindFirst(P2,AnyFile,S);
D:=DosError;
if D<>0 then S.Name:=P2;
Assign(F,S.Name);
if D=0 then
begin
WriteLn(' * чтение атрибутов - ок');
A:=S.Attr;
Write(' * снятие атрибутов - ');
SetFAttr(F,Archive);
if DosError<>0 then
begin
WriteLn(ErrWrite);
Halt(2)
end;
WriteLn('ок');
end else
A:=Archive;
if ((P1='/D') or (P1='/d')) or (D<>0) then
begin
if DosError<>0 then
Write(' * создание файла - ')
else
Write(' * удаление и создание файла - ');
WriteLn(Ok);
ReWrite(F);
WriteLn(F,'г-┐ Файл отчёта программы SAVETIME.EXE');
Write(F,'│-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end else
begin
Write(' * открытие файла - ');
Append(F);
if DosError<>0 then
begin
WriteLn(ErrWrite);
Halt(2)
end;
WriteLn(Ok);
end;
GetDate(Year,Month,Day,DayOfWeek);
GetTime(Hour,Minute,Second,Sec100);
Write(' * запись данных - ');
WriteLn(F,'');
Write(F,'│- ',Day,' ',M[Month],' ',Year,' г. ',E[DayOfWeek],', ',Hour,':');
if Minute<10 then
Write(F,'0');
Write(F,Minute);
WriteLn(Ok);
Close(F);
WriteLn(' * закрытие файла - ок');
Write(' * установка атрибутов - ');
SetFAttr(F,A);
if DosError<>0 then
begin
WriteLn(ErrWrite);
Halt(2)
end;
WriteLn(Ok);
Halt(0)
end.