Ошибка в создании текстового файла / Turbo Pascal

Ответить
misha_beginner
Сообщения: 21
Зарегистрирован: 13 окт 2013, 22:33

Здраствуйте!
Было задание: задание создать программу создание текстового файла и информацией о холодильника. вывести таблицу данных файла и ту часть, которая включает в себя ведомости о холодильниках (ну это неважно я записал всё равно). Предвидеть добавление или удаление файла (корректировка). Прогу написал, с созданием текстового файла проблема

Код: Выделить всё

const 
      n=4;
 type
    xolod = record
      virobn:string[50];
      nazvanie:string[45];
      kamera:real;
      rik:integer;
      misce:string[45];
      cina:real;
      kilkist:real;
    end;
   var
      i:integer;
      tabl:array[1..n] of xolod;
      
      f:text;
      s:string;
      procedure lin(m:integer);
      var
         i:integer;
  begin
  for i:=1 to m do
  write('-');
  writeln;
  end;
  
  begin
  
  assign(f,'xolodilnik.txt');
  
  append(f);
  Writeln('Vvedi danni');
  For i:=1 to n do
  begin
   Write('virobn:'); readln(tabl[i].virobn);
     Write('nazvanie:'); readln(tabl[i].nazvanie);
     Write('kamera:');  readln(tabl[i].kamera);
     Write('rik:'); readln(tabl[i].rik);
     Write('misce:'); readln(tabl[i].misce);
     Write('cina:'); readln(tabl[i].cina);
     Write('kilkist:'); readln(tabl[i].kilkist);
     writeln(f,tabl[i].virobn,' ',tabl[i].nazvanie,' ', tabl[i].kamera, ' ', tabl[i].rik, ' ' , tabl[i].misce, ' ' , tabl[i].cina , ' ' , tabl[i].kilkist);
  end;
  Close(f);
  reset(f);
  
  while not eof(f) do begin
       while not eoln(f) do begin
  read(f,s);
  write(s);
  end;
  end;
  close(f);
  Lin(69);
  writeln(' | Виробництво | Назва | Обэм Камери | Рік | Місце | Ціна | Кількість|');
  Lin(69);
  For i:=1 to n do
  begin
   write(' |', tabl[i].virobn:10,'|');
write(tabl[i].nazvanie:10,'|',tabl[i].kamera:13,'|', tabl[i].rik:4,'|', tabl[i].misce:9,'|' , tabl[i].cina:9,'|' , tabl[i].kilkist:9,'|');
writeln;
Lin(69);
end;
  writeln;
  writeln('vidsortovano');
  Lin(69);
  For i:=1 to  n do
  begin
  If  (tabl[i].rik = 1993) then
  begin
write(' |', tabl[i].virobn:10,'|');
write(tabl[i].nazvanie:15,'|',tabl[i].kamera:16,'|', tabl[i].rik:4,'|', tabl[i].misce:9,'|' , tabl[i].cina:9,'|' , tabl[i].kilkist:9,'|');
  writeln;
  Lin(69);
  end;
  end;
  End.
ошибка была на

Код: Выделить всё

writeln(f,tabl[i].virobn,' ',tabl[i].nazvanie,' ', tabl[i].kamera, ' ', tabl[i].rik, ' ' , tabl[i].misce, ' ' , tabl[i].cina , ' ' , tabl[i].kilkist);
убрал после этой строки close(f) , теперь вообще не сортирует таблицу :( . помогите пожалуйста
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Какая была проблема? В чем была ошибка?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить