Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Считывание массива из файла



Читайте также:
  1. А1. Ввод массива с клавиатуры
  2. Анализ элементов массива
  3. Более подробные примеры для библиографических записей вы можете посмотреть в ИНТЕРНЕТе, набрав ГОСТР 7.05. т.е. действующий в настоящее время (в конце файла находятся примеры).
  4. В качестве контрольного примера используйте пример пятиэлементного массива целых чисел из первого способа
  5. Ввод и вывод на экран двумерного массива
  6. Ввод и вывод элементов двумерного массива.
  7. Ввод и вывод элементов массива

 

Чтобы сто раз не вводить одно и то же, удобно организовать считывание элементов массива из текстового файла. В каждой строчке такого файла записан один элемент массива (Рис. 6, а).

 

 
2.0 14.5 -15.3

 

 
2.0 3.0 4.0 3.0 -2.5 14.3 16.2 18.0 1.0

 

а) одномерный массив б) двумерный массив

Рис. 6 – Файлы для хранения массивов.

 

Считывание делается примерно следующим образом:

 

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 элемента, показанный на Рис. 6, б:

 

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-07-11; просмотров: 209 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.006 сек.)