Чтение данных из файла

Чтение данных из текстового файла вероятно при открытия файла посредством процедуры Reset. При открытии файла посредством данной процедуры текущая позиция файла находится в начале файла

По окончании того, как файл открыт, возможно осуществить чтение данных из файла при помощи руководств readили readLn.

В общем виде эти руководства будут иметь вид:

read ( f, a1, a2, … , an);

readLn (f, a1, a2, … , an);

В данной записи f – файловая переменная; a1 , a2 .. an – это перечень параметров ввода. Параметром ввода возможно лишь переменная одного из несложных типов (Char, String, Integer, Real).

При исполнении инструкции readсчитывание начинается с текущей позиции файла.

Количество считываемых знаков для каждого параметра ввода зависит от типа этого параметра.

По окончании считывания последовательности знаков производится автоматическое преобразование последовательности знаков в значение заданного типа. Необходимо заметить, что преобразования требуют кроме того эти типа String. В случае если преобразование не удается, фиксируется неточность ввода-вывода, которая возможно обработана, к примеру, посредством конструкции try … except … end.

По окончании завершения считывания информации файловая позиция устанавливается на первом непрочитанном знаке.

Разглядим пример. Пускай текущая позиция файла перед исполнением инструкцииread находится в положении, продемонстрированном на рисунке 12.1.

Чтение данных из файла

Рисунок 12.1 – Образное представление места и текстового файла текущей позиции до операции чтения

По окончании исполнения фрагмента кода:

var s1, s2: String[4]; i: integer;

Begin

read( f , s1, i, s2) ;

. . .

Значения переменных будут следующими:

s1 = ‘Вам ’

i = 17

s2 = ‘лет ’

Текущая позиция файла в следствии считывания информации примет положение, продемонстрированное на рисунке 12.2.

Чтение данных из файла

Рисунок 12.2 – Образное представление места и текстового файла текущей позиции по окончании операции чтенияread

Процедура readLn отличается от readтолько тем, что по окончании чтения информации из файла для всех параметров ввода, переводит файловую позицию на новую строчок, независимо от того, закончилась текущая строка либо нет.

В случае если в процедуре readLn перечень параметров ввода безлюден, то она просто переводит файловую позицию к началу следующей строки.

К примеру, если бы в прошлом примере вместо процедуры readиспользовалась процедура readLn,то значения переменных s1, i, s1 остались прежними бы, но положение текущей позиции приняло бы положение, продемонстрированное на рисунке 12.3.

Чтение данных из файла

Рисунок 12.3 – Образное представление текстового файла и текущей позиции по окончании операции readLn

12.1.6.1 Особенности чтения чисел из текстового файла

При обработке параметра ввода, которому соответствует числовой тип, процедура readили readLnвыполняет следующие действия:

– пропускаются пробелы, знаки табуляции, маркеры финиша строчков, каковые считаются незначащими знаками-разделителями;

– считывается последовательность значащих знаков до появления нового незначащего знака-разделителя (пробела, финиша строчка, знака табуляции);

– выделенная так подстрока рассматривается как символьное представление числа соответствующего типа и преобразуется в число;

– полученное значение присваивается переменной, имя которой указано в качестве параметра ввода.

Разглядим пример. Пускай текстовый файл ‘c:numbers.txt’ содержит следующие строчки:

24 15 32

45 28

56 71 34

Тогда, в следствии исполнения последовательности руководств:

AssignFile( f ,‘c:numbers.txt’);

Reset( f );

Read( f , a, b );

Readln( f , c , d );

Read( f , p );

Значения переменных будут следующими:

ЧТО В случае если ДАТЬ КАЙМАНОВОЙ ЧЕРЕПАХЕ ЦЫПЛЕНКА — ПРОГЛОТИЛА! Выпуск #3

Похожие статьи:

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector