Ошибка записи данных в файл - Pascal

Узнай цену своей работы

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

Программа работает только для 2. а если пытаться записать больше 2, то выдает ошибку (84) : Ошибка времени выполнения: Измерения массива превысили поддерживаемый диапазон. Помогите, пожалуйста, исправить.

Решение задачи: «Ошибка записи данных в файл»

textual
Листинг программы
const
  fName = 'D:\sciense.okt';
 
type
  otkryt = record
    fam:  string[20];
    im,str:  string[40];
    work,otk: string[255];
    gr,gs,go: 1..9999;
  end;
        
procedure CreateFile;
var
  h : otkryt;
  f : file of otkryt;
begin
  Assign(f, fName);
  Rewrite(f);
  
  h.fam:='Декарт';
  h.im:='Рене';
  h.str:='Франция';
  h.work:='математика';
  h.gr:=1596;
  h.gs:=1650;
  h.go:=1637;
  h.otk:='декартовa системa координат';
  Write(f, h);
  
  h.fam:='Галилей';
  h.im:='Галилео';
  h.str:='Италия';
  h.work:='физика';
  h.gr:=1564;
  h.gs:=1642;
  h.go:=1600;
  h.otk:='принцип инерции';
  Write(f, h);
 
  h.fam:='Лобачевский';
  h.im:='Николай';
  h.str:='Россия';
  h.work:='математика';
  h.gr:=1564;
  h.gs:=1642;
  h.go:=1829;
  h.otk:='геометрия Лобачевского';
  Write(f, h);
 
  Close(f);
end;
  
procedure ReadFile;
var
  h : otkryt;
  f : file of otkryt;
begin
  writeln('Содержание файла ', fName);
  Assign(f, fName);
  Reset(f);
  while Not EOF(f) do
    begin
      Read(f, h);
      writeln(h.fam);
    end;
  Close(f);
end;
 
begin
  CreateFile;
  ReadFile;
end.

Объяснение кода листинга программы

  1. Объявлены константы и переменные:
    • const fName = 'D:\sciense.okt';
    • type otkryt = record ... end;
    • var h: otkryt;
    • var f: file of otkryt;
  2. Создание файла:
    • procedure CreateFile;
    • var h: otkryt;
    • var f: file of otkryt;
    • Assign(f, fName);
    • Rewrite(f);
    • Запись данных в файл (пока не проверялось, правильно ли записываются данные)
    • h.fam := 'Декарт'; ...
    • h.otk := 'декартовa системa координат';
    • Write(f, h);
    • ...
    • Close(f);
  3. Чтение файла:
    • procedure ReadFile;
    • var h: otkryt;
    • var f: file of otkryt;
    • Assign(f, fName);
    • Reset(f);
    • while Not EOF(f) do
      • begin
      • Read(f, h);
      • writeln(h.fam);
      • end;
    • Close(f);
  4. Запуск программы:
    • begin CreateFile;
    • ReadFile; end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы