Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Процедура записи в текстовый файл WRITELNСодержание книги Похожие статьи вашей тематики
Поиск на нашем сайте
Эта процедура заносит в буфер файла признак конец строки и записывает (выталкивает) содержимое буфера в текстовый файл, начиная с позиции признака конец файла. После последнего записанного в файл символа (это признак конец строки) записывается признак конец файла, буфер освобождается и связывается с этим признаком. Стандартное обращение к процедуре имеет вид: 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; просмотров: 641; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.41 (0.008 с.) |