Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error). - Turbo Pascal

Формулировка задачи:

Здравствуйте, возникла проблема такого плана. Нужно произвести добавление записи в файл, но после успешного создания и чтения вылазиет ошибка: Ошибка 101: Ошибка записи на диск. Я понял, что ошибка кроется в процедуре add; в строке №93
Write(F, baza);
Узнал, что эта ошибка появляется из-за "переполенния" файла. Своими силами больше не могу ничего сделать, поэтому пишу сюда. Надеюсь на вашу помощь. ИСХОДНИК:
Program STUDENT;
Uses CRT;
Type
rec=record
fio:string[30];
bal:array [1..4] of byte;
end;
Var
kol : Byte; { Число студентов }
n:Integer;
baza:rec;
F:file of rec;
 
{ ВВОД ФИО СТУДЕНТОВ }
Procedure Vvod;
var
j,i : Byte; { Счетчик для массива ФИО}
Begin
Write(' Введите желаемое кол-во студентов:');
ReadLn(kol);
WriteLn(' Введите инициалы студентов:');
WriteLn;
REWRITE(F); { Открываем файл для записи}
   { Запись ФИО студентов}
   For i:= 1 to kol do
      Begin
      Write(' ФИО ',i,' студента: ');
      ReadLn(baza.fio);
      TextColor(Green);
      WriteLn(' Введите его 4 оценки:');
      TextColor(White);
   { Запись оценок по предметам}
         For j:= 1 to 4 do
            Begin
            Write(' Оценка за ',j,' предмет-');
            ReadLn(baza.bal[j]);
            End;
      WriteLn;
      Write(F,baza);
      End;
CLOSE(F);
WriteLn;
WriteLn(' Запись успешно завершена. Нажмите Enter');
ReadLn;
End;
 
{ ВЫВОД ИНФОРМАЦИИ О СТУДЕНТАХ}
Procedure Vyvod;
Var
j,n: Byte;
Begin
n:=0;
RESET(F);
WriteLn('СПИСОК СТУДЕНТОВ:');
While not eof(F) do      { Пока не конец файла, производим чтение}
   With baza do
      Begin
      n:=n+1;            { Нумерация студентов}
      Read(F, baza);     { Читам запись из файла}
      Write(n,' ',baza.fio);   { и выводим построчно на экран}
         For j := 1 to 4 do
            Write(' ',baza.bal[j]);
      WriteLn;
      End;
CLOSE(F);
WriteLn(' Чтение успешно завершено. Нажмите Enter.');
ReadLn;
End;
 
{ ДОБАВЛЕНИЕ СТУДЕНТА }
Procedure add;
var
i,j,num:Byte;
Begin
RESET(F); { Открываем файл для добавления}
SEEK(F, FileSize(F));
Write(' Введите кол-во добавляемых:');
ReadLn(num);
   { Добавляем студентов}
   For i:= 1 to num do
      Begin
      Write(' ФИО ',i,' студента: ');
      ReadLn(baza.fio);
      TextColor(Green);
      WriteLn(' Введите его 4 оценки:');
      TextColor(White);
   { Запись оценок по предметам}
         For j:= 1 to 4 do
            Begin
            Write(' Оценка за ',j,' предмет-');
            ReadLn(baza.bal[j]);
            End;
         Write(F, baza);
      End;
CLOSE(F);
WriteLn;
WriteLn(' Добавление успешно завершено. Нажмите Enter');
ReadLn;
End;
 
{ ГЛАВНАЯ ПРОГРАММА }
BEGIN
CLRSCR;
TextColor(Yellow);
WriteLn(' Программу разработал студент гр. 11ИЭ1Б Заречнев Андрей.');
WriteLn(' Запись и чтение инф-ии о студентах из файла.');
TextColor(White);
WriteLn;
ASSIGN(F,'STUD');
vvod;
vyvod;
add;
vyvod;
WriteLn;
WriteLn(' Нажмите Enter для выхода.');
ReadLn;
END.
Добавлено через 1 час 9 минут Код-то не такой страшный С комментариями тем более...

Код к задаче: «Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error). - Turbo Pascal»

textual
FileMode := 2;

8   голосов, оценка 3.625 из 5


СОХРАНИТЬ ССЫЛКУ