Считывание массива из файла
Чтобы сто раз не вводить одно и то же, удобно организовать считывание элементов массива из текстового файла. В каждой строчке такого файла записан один элемент массива (рис. 2, а).
Рис. 2. Файлы для хранения массивов.
Считывание делается примерно следующим образом:
TYPE TA=ARRAY[1..10] OF REAL;
VAR a:TA; f:TEXTFILE; i:BYTE;
BEGIN
ASSIGNFILE(f,'1.txt');
RESET(f);
FOR i:=1 TO 10 DO
READLN(f,a[i]);
CLOSEFILE(f);
…
Преобразование типов (из файла считывается текстовая строка, а в массив оно заносится как вещественное число) выполняется автоматически процедурой READLN.
Если массив двумерный, то удобно в каждой строчке файла располагать несколько его элементов, разделяя их пробелами. Давайте считаем массив 3´3 элемента, показанный на рис. 2, б.
TYPE TA=ARRAY[1..3,1..3] OF REAL;
VAR a:TA; i,j:BYTE; f:TEXTFILE;
BEGIN
ASSIGNFILE(f,'1.txt');
RESET(f);
// Цикл по строкам файла
FOR i:=1 TO 3 DO
BEGIN
// Цикл по числам внутри строки
FOR j:=1 TO 3 DO
READ(f,a[I,j]);
// Считывание символов конца строки
READLN(f)
END;
CLOSEFILE(f);
…
В приведенном фрагменте используется процедура READ, которая считывает не строку целиком, а ее часть до следующего пробела. После считывания всех чисел из строки нужно перейти на следующую строчку, для чего применяется процедура READLN(f). Данных она не считывает, а просто переходит к следующей строке файла.
Дата добавления: 2015-03-19; просмотров: 2364;