В файле содержатся сведения об автомобилях: марка, номер, фамилия владельца, величина пробега и даты последнего техосмотра (число, месяц, год). В новый файл переписать информацию о владельцах автомобилей, которые прошли техосмотр вовремя (техосмотр проводится один раз в году). В текстовый файл вывести марку, номер, фамилию владельца автомобилей, величина пробега которых превышает заданную величину.
Код:
uses crt;
type tcar=record
brand: string[15];
nomer: string[10];
name: string [50];
probeg:integer;
a:array[1..3] of integer;
end;
tfcar = file of tcar;
procedure task;
begin
clrscr;
writeln('автор');
end;
procedure inputRec(varst:tcar);
var i:integer;
begin
writeln('Введитемарку авто');
readln('st.brand');
writeln('Введите номер');
readln('st.nomer');
writeln('Введите фамилию владельца');
readln('st.name');
writeln('Введитеданные о пробеге');
readln('st.probeg');
writeln('Введите год, когда проводился техосмотр');
readln('st.god');
writeln('Введите месяц, когда проводился техосмотр');
readln('st.ms');
writeln('Введите день, когда проводился техосмотр');
readln('st.den');
end;
procedure addFile (var t:tfcar; st: tcar);
begin
reset(f);
seek(f, filesize(f));
write(f,st);
close(f);
end;
procedure delete(var f:tfcar; n:integer);//vopros
var st: tcar;
begin
reset(f);
if n<>filesize(f)-1 then begin
seek (f, filesize(f)-1);
read(f,st);
seek(f,n);
write(f,st);
end;
seek(f, filesize(f)-1);
truncate(f);
close(f);
end;
Procedure ViewFileRec(var f: tfcar);
var st:tcar;
i:integer;
begin
write('Марка авто':10, 'Номер':10, 'Фамилия':15, 'Пробег':10, 'Дата проведения техосмотра':12);//voprosiki
reset(f);
while not eof(f) do begin
read(f,st);
write(st.brand:10, st.nomer:10, st.name:15, st.probeg:10);
for i:=1 to 3 do
write(st.a[i]:2);
writeln;
end;
close(f);
end;
procedure ViewFileTxt(var f:text);
var s:string;
begin
reset(f);
while not eof(f) do begin
readln(f,s);
writeln(s);
end;
close(f);
end;
///// тут должен быть filetifilerec
procedure FileToFileTxt(var f1:tfCar;var f2:text; probeg:string);
var st:tCar; c:integer;i:integer;
begin
reset (f1);rewrite(f2);
writeln(f2, 'Владельцы автомобилей, величина пробега которых превышает заданную величину.',probeg);
while not eof(f1) do begin
read (f1,st);
if st.probeg>c then begin
write (f2,st.brand:20, st.nomer:10, st.name:30);
for i:=1 to 3 do write (f2,st.a[i]:2);
writeln(f2);
end;
end;
close (f1);close(f2);
end;
var f1,f2:tfCar;f3:text;
fn1,fn2,fn3:string; c:integer;
m1,m2:integer;st:tCar;n:integer;
begin
repeat
clrscr;
writeln('Выберите действие:');
writeln('1-Задание');
writeln('2-Создание файла');
writeln('3-Работа с файлом');
writeln('4-Владельцы авто, которые прошли техосмотр вовремя');
writeln('5-Пробег');
writeln('6-Просмотр ТФ');
writeln('Удаление файла');
writeln('Ваш выбор..');
readln(m1);
case m1 of
1: begin // Задание
writeln('..чмчсмчсммчмчсм.');
readln;
end;
2: begin // Создание ФЗ
writeln('Введите имя файла');
readln(fn1);
if not FileExists(fn1) then begin
assign(f1,fn1);
rewrite(f1); close(f1);
end
else writeln('Файл с таким именем существует');
end;
3: begin // Работа с файлом
writeln('Введите имя файла');
readln(fn1);
if FileExists(fn1)then begin
assign(f1,fn1);
repeat
ViewRecFile(f1);
writeln('Меню работы с файлом');
writeln('1-добавить запись');
writeln('2-удалить запись');
writeln('3-редактировать запись');
writeln('0-выход');
writeln('Ваш выбор: ');
readln(m2);
case m2 of
1: begin // Добавление ЗП
InputRec(st);
AddFile(f1,st);
end;
2: begin // Удаление ЗП
writeln('Введите номер записи');
readln(n);
dec(n);
delete(f1,n);
end;
3: begin // Редактирование ЗП
readln(n);
dec(n);
delete(f1,n);
inputRec(st);
addFile(f1,st);
end;
end;
until m2=0;
end
else writeln('Файл не существует');
end;
4:begin
end;
5:begin
write('Введите имя исходного файла..');readln(fn1);
if fileexists(fn1) then begin
assign (f1,fn1);
write('Введите имя результирующего файла..');readln(fn3);
assign(f3,fn3);
writeln('Введите пробег автомобиля');readln(c);
FileToFileTxt(f1,f3,c);
end;
writeln('Файл не существует');
end;
6:begin
write ('Исходный файл..');
readln(fn3);
if fileexists(fn3) then begin
assign(f3,fn3);
ViewFileTxt(f3);
end;
writeln('Файл не существует');
end;
7: begin // Удаление файла
writeln('Введите имя файла');
readln(fn3);
if FileExists (fn3) then begin
assign(f3,fn3);
Erase(f3);
end;
end;
end;
end;
until m1=0;
end.
как сделать сравнение дат?
как мне вывести те фамилии владельцев и марки их авто, которые не прошли техосмотр вовремя?
и тут по любому есть какие то ошибки, потому что этот код не запускается, хелп