Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Пример 5.7.

Вывод текстового файла F на принтер или экран.

Uses Crt;

Var

       F: Text;

       K: (P, C); {К –признак вывода, P – принтер, С – Crt}

Begin

       …

       If K = P        Then

                 Assign (F, ’Prn’)

                         Else

                 Assigncrt (F);

       …


Процедура Append (F)

Процедура Append (F) – открывает существующий текстовый файл для добавления. Предварительно файл F должен быть связан с внешним файлом процедурой Assign.

Если не существует внешнего файла с указанным именем, то в результате выполнения процедуры Append возникает сообщение об ошибке ввода-вывода.

Если файл F уже был открыт, необходимо его предварительно закрыть.

В результате выполнения процедуры Append текущая позиция (окно) файла устанавливается в конец файла, на место маркера конца файла (#26 – код ASCII 26 или Ctrl-Z).

После вызова процедуры Append (F) файл F становится доступным только для записи, а значение функции Eof (F) всегда будет равно True.

Процедура Append определена только для текстовых файлов.

Процедура Rewrite (F)

Процедура Rewrite (F) – открытие нового файла F. Данная процедура описана выше для файлов с типом (см. подразд. 5.3).

НЕ нашли? Не то? Что вы ищете?

Отличие для текстовых файлов: файл F открывается только для записи (если текстовый файл F был открыт процедурой Rewrite, то из него читать нельзя, в него можно только писать).

После вызова процедуры Rewrite (F) значение функции Eof (F) всегда равно True.

Процедура Reset (F)

Процедура Reset (F) – открытие существующего файла F. Данная процедура описана выше для файлов с типом (см. подразд. 5.3).

Отличие для текстовых файлов: файл открывается только для чтения (из него можно только читать, писать в него нельзя).

Процедура Read ([F,] V1 [, V2, …, VN])

Процедура Read ([F, ] V1 [, V2, …, VN]) – считывает одно или несколько значений из текстового файла F в одну или несколько переменных Vi. Данная процедура описана выше для файлов с типом (см. подразд. 5.3).

Отличия при работе с текстовыми файлами:

    файл должен быть открыт для чтения (процедурой Reset); первый параметр может быть опущен (например, Read(X, Y)), в этом случае подразумевается стандартный входной текстовый файл Input; при выполнении процедуры Read осуществляется преобразование очередного элемента файла из символьного представления к типу переменной Vi. Vi может иметь символьный, целочисленные, вещественные, строковый тип, тип массива символов  или тип диапазона данных типов.
    Если переменная V имеет тип Char, то из файла F в V считывается очередной символ, включая символы-разделители «Конец файла» (значение Chr(26) – #26), и «Конец строки» (Chr(13) – #13, Chr(10) – #10). Следующая процедура Read начинается со следующего символа в файле. Если переменная V имеет арифметический тип, то пропускаются пробелы, символы табуляции, маркеры конца строки до появления цифровой комбинации. Считывание прекращается при достижении пробела, символа табуляции, маркера конца строки или маркера конца файла. Следующее чтение начинается с вышеперечисленных символов. Если в цифровой комбинации встретились запрещенные символы (например, буква вместо цифры), то возникает сообщение об ошибке ввода-вывода. Если переменная V имеет тип String, то в нее передается столько символов, какова длина переменной V при объявлении (если длина V меньше длины текущей строки файла) или строка файла до маркера конца строки или маркера конца файла (если длина V больше длины строки файла). Маркер в строку не заносится. В первом случае по следующей операции чтения в переменную V будет передана очередная последовательность символов из первой строки файла в соответствии с длиной переменной V. Во втором случае следующая операция считывания начинается маркером конца строки, завершающим предыдущую строку. Но процедура Read не осуществляет переход на следующую строку файла после чтения. Таким образом, нельзя использовать последовательные вызовы процедуры Read для чтения последовательных строк, так как никогда не осуществится переход из первой строки во вторую. Первый вызов процедуры Read считает первый элемент, последующие вызовы будут возвращать строку нулевой длины. Поэтому при чтении из текстового файла в переменные типа String необходимо использовать не процедуру Read, а процедуру Readln.
Процедура Readln [([F] [,] [V1, V2, …, VN])]

Процедура Readln [([F, ] [V1, V2, …, VN])] – выполняет процедуру Read, а затем переходит в начало следующей строки файла. Таким образом, после прочтения в переменные Vi данных из файла пропускаются все оставшиеся символы в текущей строке и маркер конца строки.

Если при вызове процедуры отсутствует список переменных V (Readln(F)), то происходит переход к следующей строке (если она существует) или к концу файла F.

Если имя файла в процедуре Readln опущено, то подразумевается стандартный входной текстовый файл Input.

Например,

Readln (X, Y, Z);

Readln;

Процедура Readln (F, V) определена только для текстовых файлов.

Процедура Write ([F,] E1 [, E2, …, EN])

Процедура Write ([F,] E1 [, E2, … , EN]) – записывает одно или несколько значений Ei в файл F. В общем случае E может быть выражением.

Процедура описана для файлов с типом (см. подразд. 5.3).

Отличия для текстовых файлов:

    Файл должен быть открыт процедурой Rewrite или Append. Если первый параметр (F) опущен, то подразумевается стандартный выходной текстовый файл Output. Например, Write (A, B). При выполнении процедуры Write осуществляется преобразование выводимого значения из типа выражения E к символьному типу. Возможны следующие типы Ei: символьный, арифметические (целочисленные и вещественные), строковый, массив исмволов, логический и их диапазоны.
    Для данных типа Char и String выводится непосредственно их значение. Если Ei представляет собой арифметическое значение, то перед выводом в текстовый файл оно предварительно преобразуется из внутреннего значения в десятичную систему счисления, а затем представляется в коде ASCII (по байту на десятичную цифру). Если Ei имеет тип Boolean, то выводится строка True или False.
    Если не указан формат вывода, то под вывод всех типов Ei отводится столько символов, сколько минимально необходимо. Для вывода вещественных типов отводится 24 позиции, причем вещественное число будет выведено в виде мантиссы и порядка. Значения Ei могут сопровождаться указанием формата вывода:

E: L1[: L2]  .

Это позволяет управлять расположением данных по позициям строки. Подробно данные возможности описаны в подразделе. 2.2.

Процедура Writeln ([F,][E1,E2, …,EN])

Процедура Writeln ([F,][E1,E2, …,EN]) – выполняет процедуру Write, и затем записывает маркер конца строки в файл F.

Если отсутствует список выражений Ei, то записывается только маркер конца строки.

Если опущено имя файла, то подразумевается файл Output. Например,

Writeln (F);

Writeln (A, B, C);

Writeln;

Процедура определена только для текстовых файлов.

Процедура Close(F)

Процедура Close(F) – закрывает открытый файл F. Рассмотрена ранее при рассмотрении файлов с типом (см. подразд. 5.3). Особенностей для текстовых файлов нет.

Пример 5.8.

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

Var

       F: Text;

       …

Begin

       Assign (F, ’Data. txt’);

       Rewrite (F); {Открытие файла F только для записи}

       …

       Write (F, A); {Запись в файл F значения некоторой переменной А, полученной в ходе вычислений}

       …

       Reset (F); {Открытие файла F только для чтения. Перед        этим файл не обязательно должен быть закрыт. Это выполняется автоматически процедурой Reset}

Read (F, B); {Чтение из файла F очередного значения в некоторую переменную В}

Close (F); {Обязательное явное закрытие файла F перед использованием процедуры Append. Связь с внешним файлом при этом сохраняется. Поэтому повторное использование процедуры Assign не нужно}

Append (F); {Открытие файла F для дополнения}

       Write (F, C); {Запись в конец файла F значения некоторой переменной С, полученной в ходе вычислений}

Close (F); {Закрытие файла F в конце работы с ним}

End.



Процедура SetTextBuf (F, Buf [, Size])

Процедура SetTextBuf (F, Buf [, Size]) – определяет буфер для текстового файла.

Процедуру следует вызывать после процедуры Assign, но до других процедур ввода-вывода. Здесь F – имя текстового файла, Buf – любая переменная (в качестве формального параметра используется параметр-переменная без типа), Size – необязательное выражение типа Word.

Обмен информацией между программой и внешним набором данных осущетвляется через буфер ввода-вывода. Это участок оперативной памяти. Размер стандартного буфера ввода-вывода, принятый по умолчанию, – 128 байт. Каждому открытому файлу назначается свой буфер.

Процедуры Write и Writeln записывают очередные элементы файла последовательно в буфер. После того, как буфер будет полностью заполнен, произойдет физическая запись содержимого буфера во внешний файл. После этого буфер освобождается для приема следующей порции информации.

Аналогично при чтении. Из внешнего файла одновременно считывается количество элементов, помещающееся в буфер. Процедуры Read и Readln читают элементы последовательно из буфера.

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

Операции обмена данными через буфер ввода-вывода осуществляет специальный обработчик файлов (для каждого файла имеется свой обработчик файлов, он назначается при открытии файла).

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33