Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2019, 18:29   #1
daunina
 
Регистрация: 27.10.2019
Сообщений: 4
По умолчанию В файле содержатся сведения об автомобилях

В файле содержатся сведения об автомобилях: марка, номер, фамилия владельца, величина пробега и даты последнего техосмотра (число, месяц, год). В новый файл переписать информацию о владельцах автомобилей, которые прошли техосмотр вовремя (техосмотр проводится один раз в году). В текстовый файл вывести марку, номер, фамилию владельца автомобилей, величина пробега которых превышает заданную величину.
Код:
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.
как сделать сравнение дат?
как мне вывести те фамилии владельцев и марки их авто, которые не прошли техосмотр вовремя?
и тут по любому есть какие то ошибки, потому что этот код не запускается, хелп
daunina вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JavaScript HTML создать форму. после опроса пользователю открывается новое окно, в котором содержатся все оставленные пользователем сведения Vladospopandos JavaScript, Ajax 0 23.11.2019 16:49
Срочно(Паскаль. (В файле хранятся сведения о стоимости бензина трех марок (92 95 98) на бензозаправках города) nikolin Фриланс 5 03.05.2017 10:36
В файле содержатся сведения о группе студентов Дюша Метелкин Паскаль, Turbo Pascal, PascalABC.NET 1 28.06.2016 22:41
Собрать в файле g сведения о лучших учениках школы lalka123 Паскаль, Turbo Pascal, PascalABC.NET 5 20.07.2014 00:42
Текстовые файлы. Сведения об автомобилях. HelloInside Паскаль, Turbo Pascal, PascalABC.NET 2 14.05.2012 00:41