{$MODE FPC} //диалект FPC {$COPERATOR ON} //Allow C like operators //Включите в настройках компилятора поддержку C подобных операторов, это указание может не работать program TimeLimit; uses SysUtils, DateUtils; type f=file; var MyFile: F; //нетипизированый файл const path = ''; //путь SleepTime : word=2; //перерыв между записями, положительное число function Date():string; //функция возращает текущую дату строкой Var D : TDateTime; begin D:=Now; Date:=IntToStr(YearOf(D)); if (MonthOf(D)<10) then Date+='0'; Date+=IntToStr(MonthOf(D)); if (DayOf(D)<10) then Date+='0'; Date+=IntToStr(DayOf(D)); end; procedure OpenOrCreateFile (const Name: string; var WorkFile:F); //Open Or Create File:) , где Name -- имя файла, WorkFile -- файловая переменная begin assign(WorkFile,(path+Name+'.txt')); //MyFile -- переменная-файл If FileExists(Name) Then reset(WorkFile) //append (WorkFile) //открытие на редактирование else rewrite(WorkFile); end; procedure print (var WorkFile:F); //печатает дату в файл //поидее должна печатать новую дату, если комп не работал/его выключали //или писать новую дату на место старой даты. var s: string; begin {у меня есть сильное сомнение по оптимальности данного разветления} if FILEPOS(WorkFile)<>0 then begin //если сегодня машина уже работала seek(WorkFile, FILEPOS(WorkFile)-1); blockread(MyFile, s, 1); s:=copy(s, 7, 5); //до скольки работала if ((StrToTime(s) - TimeOf(now)) <> SleepTime) then begin //если машину выключали seek(WorkFile, FILEPOS(WorkFile)+1); //inc(seek); s:=( TimeToStr(Time)+ '-' +TimeToStr(Time){+#10#13} ); blockwrite(MyFile,s , 1) //напис новую дату end else begin //если машину не выключали //написать новую дату на месте старой blockread(MyFile, s, 1); delete (s, 7, 5); insert(DateToStr(TimeOf(now)), s, 7); blockwrite(MyFile, s, 1) end; end else s:=( TimeToStr(Time)+ '-' +TimeToStr(Time)); blockwrite(MyFile, s , 1 )//напис новою дату end; begin repeat OpenOrCreateFile(Date(),MyFile); //имя файла -- текущаяы дата print(MyFile); //запись close(MyFile); //закрыть файл sleep(SleepTime); until true; end.