Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Процедура записи в текстовый файл WRITELN↑ ⇐ ПредыдущаяСтр 6 из 6 Содержание книги Похожие статьи вашей тематики
Поиск на нашем сайте
Эта процедура заносит в буфер файла признак конец строки и записывает (выталкивает) содержимое буфера в текстовый файл, начиная с позиции признака конец файла. После последнего записанного в файл символа (это признак конец строки) записывается признак конец файла, буфер освобождается и связывается с этим признаком. Стандартное обращение к процедуре имеет вид: writeln(<имя файловой переменной типа text>)
Пример записи в текстовый файл program outfile; var f:text; begin assign(f,'c:\tp\user\dandatt.pas'); rewrite(f); write(f,'пример':3); write(f,'вывода':10); write(f,true:6); write(f,false:1); writeln(f); write(f,-5:4); write(f,-252:1); write(f,32767); write(f,-3.56); writeln(f); write(f,567.42:8); writeln(f); write(f,567.42:1:4); close(f) end. В результате работы программы будет создан файл c:\tp\user\dandatt.pas. Содержимое этого файла приведено на рис. 24.4 (компоненты на рисунке располагаются слева направо, сверху вниз).
Рис. 24.4. – Содержимое файла Процедура чтения из текстового файла READ Чтение из текстового файла осуществляется с помощью обращения к стандартной процедуре read(<илф типа text>, <объект ввода>) , где объект ввода это имя простой переменной: - любого из числовых типов; - символьного типа char; - любого из строковых типов string или имя простого компонента переменной структурированного типа. Правила выполнения процедуры read Синтаксическое ограничение при вызове процедуры: второй параметр обязательно любого целого, любого вещественного, литерного char или любого строкового типа. Правила выполнения зависят от типа второго параметра. Вариант 1: второй параметр числового типа 1) В буфер файла считываются позиции текстового файла, начиная с позиции, с которой был связан буфер до обращения к процедуре read до первой позиции, в которой располагается либо пробел, либо символ табуляции, либо признак конец строки, либо признак конец файла. При этом начальные позиции с пробелами, символами табуляции и признаками конец строки игнорируются. 2) Прочитанные в буфер символы преобразуются в значение типа данных второго параметра. Если из файла не прочитано ни одного символа (буфер связан с признаком конец файла), то считается, что прочитан 0. 3) Если при преобразовании встретился символ, который не может быть преобразован в численное значение, то возникает ошибка ввода-вывода. 4) Если в результате преобразования получено число, не принадлежащее множеству значений типа второго параметра, то возникает ошибка выхода из диапазона значений. 5) При успешном преобразовании полученное значение заносится в оперативную память под именем второго параметра. Буфер файла освобождается. Новое положение буфера связано с позицией файла, в которой прекращено чтение (это либо пробел, либо признак конец строки, либо признак конец файла). Вариант 2: второй параметр литерного типа char 1) В буфер считывается одна позиция текстового файла. Если это не признак конец файла, то буфер связывается со следующей позицией текстового файла. Если до выполнения процедуры read был связан с признаком конец файла, то местоположение буфера не изменяется. 2) Прочитанный символ заносится в оперативную память под именем второго параметра. Вариант 3: второй параметр любого строкового типа 1) В буфер файла считывается столько позиций из текстового файла, сколько определено в строковом типе для второго параметра, если ранее не встретился признак конца строки или признак конца файла. 2) Если встретился признак конец строки или конец файла, то буфер связывается с позицией признака. Если при чтении эти признаки не встретились, то новое положение буфера – первая непрочитанная позиция. 3) Информация из буфера заносится в оперативную память под именем второго параметра, при этом формируется динамическая длина прочитанной строки.
Процедура пропуска очередного признака конец строки READLN После выполнения обращения к процедуре readln(<илф типа text>) Пример чтения из текстового файла Пусть в текстовом файле c:\tp\user\inp.pas находится информация, приведенная на рис. 24.5.
Рис. 24.5. – Содержимое текстового файла При выполнении программы: program inptxt; var f:text; a:integer; b:real; c:char; d:string[6]; e:string; begin assign(f,'c:\tp\user\inp.pas'); reset(f); read(f,c); read(f,a); read(f,b); readln(f); read(f,d); read(f,e); close(f) end. сформируются значения переменных, приведенные на рис. 24.6.
Рис. 24.6. – Содержимое ОП Функции проверки местонахождения буфера function EOF(var <илф>:text):Boolean; возвращает TRUE, если буфер связан с признаком конец файла, в противном случае –FALSE. function EOLn(var <илф>:text):Boolean; возвращает TRUE, если буфер связан признаком конец строки или с признаком конец файла, в противном случае –FALSE. function SeekEOF(var <илф>:text):Boolean; возвращает TRUE, если буфер связан с признаком конец файла или перед этим признаком располагаются только пробелы, признаки конец строки, символы табуляции, в противном случае –FALSE. function SeekEOLn(var <илф>:text):Boolean; возвращает TRUE, если буфер связан с признаком конец строки или с признаком конец файла или перед этим признаком располагаются только пробелы, признаки конец строки, символы табуляции, в противном случае –FALSE. Процедура записи содержимого буфера в файл procedure flush(var <илф>:text); эта процедура выводит текущее содержимое буфера файла, не дожидаясь заполнения буфера до конца. Стандартные текстовые файлы INPUT, OUTPUT В каждой программе автоматически используются два текстовых файла input и output. Логический файл input – стандартный файл для ввода информации. Для ПЭВМ ему соответствует физический файл, расположенный на клавиатуре. Логический файл output – стандартный файл для вывода информации. Для ПЭВМ ему соответствует физический файл, расположенный на экране дисплея. В каждую программу компилятор добавляет следующие определения и действия: a) в раздел описаний type text=file of char; var input, output: text; б) в начало раздела операторов assign(input, 'con'); reset(f);
assign(output, 'con'); rewrite(output); в) в конец раздела операторов close(input); close(output); г) во все обращения к стандартным процедурам ввода-вывола, в которых отсутствует первый параметр – имя логического файла, вставляется этот первый параметр, для процедур ввода это input, для процедур вывода – output. Обработка компилятором обращений к процедурам чтения и записи Необходимо помнить, что стандартные обращения к процедурам read и write имеют только два параметра, причем первый это всегда имя логического файла. Если в обращении отсутствует этот первый параметр, то автоматически подставляется либо имя input, либо – output. В свою очередь стандартные процедуры readln и writeln имеют только один параметр – имя логического файла типа text. Если этот параметр отсутствует, то соответственно подставляется input или output. Любое обращение в программе к процедурам ввода-вывода приводится к стандартному виду по следующему правилу: 1) Обращение вида readln (<p1>,<p2>,<p3>,,<pn>) где pi – имя i-ой переменной, заменяется компилятором следующим составным оператором begin read(input, <p1>; read(input, <p2>); read(input, <p3>); ... read(input, <pn>); readln(input) end; 2) Обращение вида writeln (<v1>,<v2>,<v3>,,<vn>) где vi – i-ый объект вывода, заменяется компилятором следующим составным оператором begin write(output, <v1>; write(output, <v2>); write(output, <v3>); ... write(output, <vn>); writeln(output) end; 3) если имя логического файла указано в обращении к процедуре, то это имя используется в составном операторе в стандартных обращениях к соответствующим процедурам ввода-вывода.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-06-26; просмотров: 565; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.247.237 (0.006 с.) |