Запись массива в файл
На этом примере показано как с помощью процедуры выполнять запись данных из массива в файл и затем читать из файла в массив.
program wwod_wywod_matrica_file; uses crt; const {Размерность квадратной матрицы n, можно изменить} n=10; type vector = array[1..n] of real; matrica= array[1..n] of vector; var A,B: matrica; i,j : integer; {Процедура с парметрами:помещает массив arr типа matrica в текстовый файл c именем name строкового типа; p,q - целого типа, определяют формат записи p:q общее число знаков p, число знаков после дес. точки q} procedure matrica_v_file(name:string; p,q:word;arr:matrica); var f : text; i,j : integer; begin {установление соответствия между именем файла в программе и именем файла в файловой системе} assign(f,name); {открытие файла на запись} rewrite(f); {поэлементная, по строкам, перезапись из массива в файл} for i := 1 to n do begin {формат ввода arr[i,j] в файл f - p:q, затем пробел в качестве разделителя} for j := 1 to n do write(f,arr[i,j]:p:q,' '); {переход на следующую строку в файле f} writeln(f) end; {закрытие файла} close(f); end; {Запись из файла в с именем name в массив с именем arr, существенно, что массив типа переменная (var)} procedure file_v_matricu(name:string; var arr:matrica); var f : text; i,j : integer; begin assign(f,name); {открытие файла на чтение} reset(f); for i := 1 to n do begin {чтение из файла в массив} for j := 1 to n do read(f,arr[i,j]); readln(f); end; close(f); end; Begin clrscr; {Заполнение матрицы (массива чисел) A[i,j] с помощью датчика случайных чисел} randomize; for i := 1 to n do for j := 1 to n do {Масcив n-квадрат случайных чисел от 1 до n*n} A[i,j] :=1+random(n*n); {запись матрицы A в файл с именем, указанным между апострофами, в случае необходимости можно изменить, в формате 4:0; проверьте наличие указанного файла (если не было, то появился)} matrica_v_file('d:\matrica.txt',4,0,A); {если имя файла отсутствует, то есть ' ', то массив A будет выведен на экран, пармаметры 4 и 0 задают формат вывода 4:0} matrica_v_file('',4,0,A); writeln;readln; {ввод из файла,указанного между апострофами, в массив B } file_v_matricu('d:\matrica.txt',B); {вывод массива B (те же самые числа) на экран, другой формат вывода 5:1} matrica_v_file('',5,1,B); readln End.