Реферат: Обработка текстовых файлов на языке Турбо Паскаль

<span Verdana",«sans-serif»">Министерствообразования Азербайджанской Республики

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">БакинскийГосударственный Университет

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">Факультет: ПрикладнаяМатематика и Кибернетика

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">Специальность:Экономическая кибернетика

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">Курс:

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">I<span Verdana",«sans-serif»"> курс

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">Группа: ЭК-24

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">КУРСОВАЯ РАБОТА НАТЕМУ

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">«ОБРАБОТКА ТЕКСТОВЫХФАЙЛОВ НА ЯЗЫКЕ ПАСКАЛЬ»

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">Кафедра: Экономическаяинформатика

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">Студент: Шарифов Р. Э.

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">Руководитель: Зав.кафедрой проф. Пашаев Р.Т.

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»"> 

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">Баку — 2005

<span Verdana",«sans-serif»">ОБРАБОТКАТЕКСТОВЫХ ФАЙЛОВ

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">       Прежде чем перейти к обработке текстовыхфайлов на языке Pascal следует разобраться с понятием файл. На языке Pascalфайл представляет собой упорядоченную  последовательностьэлементов. И в отличие от общепринятого понятия файлом на языке Pascal можетбыть не только информация хранящиеся на дисках но и  внешние устройства (такие как: дисплей, клавиатура, принтер, любой порт ЭВМ ит.д.).

<span Verdana",«sans-serif»">       Теперь рассмотрим причину использованияфайлового типа данных при разработке программ. Введение файлового типа в языкPascal вызвано необходимостью обеспечить возможность работы с периферийными(внешними) устройствами ЭВМ, предназначенными для ввода, вывода и храненияданных.

<span Verdana",«sans-serif»">Общее свойствомассива, множества и записи заключается в том, что количество их компонентовопределено на этапе написания программы (то есть в исходном тексте программы),тогда как количество компонентов файла в исходном тексте программы неопределяется и может быть произвольным. Это обстоятельство позволяет оперативноизменять, к примеру, входные данные независимо от программы.

<span Verdana",«sans-serif»">      Принцип работы с файлами заключается ввводе и выводе данных. Операция ввода означает перепись данных из входногофайла в основную память ЭВМ, а операция вывода это пересылка данных из основнойпамяти ЭВМ на выходной файл.

<span Verdana",«sans-serif»">      Файлы расположенные на внешних устройствахчасто называют физическими файлами. Их имена определяются операционнойсистемой. В программах на языке Pascal имена файлов задаются с помощью строк.Например, имя файла на диске может иметь вид:

<span Verdana",«sans-serif»">    

<span Verdana",«sans-serif»">‘[имядиска]:[каталог][подкаталог]...[подкаталог][имя файла с расширением]’

<span Verdana",«sans-serif»">    Операционная система MS-DOS ограничиваетэту строку до 79 символов. Даже в одноименном модуле DOS языка Pascal имеетсятип данных PathSTR = String[79], то есть строка, максимальная длина которой 79символов. Если же файл находится в том же каталоге, что и программа то имяфайла можно указать короче: ‘[имя файла с расширением]’. Также именами файловмогут быть и имена внешних устройств:

<span Verdana",«sans-serif»">     ‘CON’,  'LPT1',   ‘LPT2’,   ‘LPT3’,  'PRN',  'COM1',  'AUX', 'NUL'.

<span Verdana",«sans-serif»">     Отмечу что, здесь CON – совокупностьустройств ввода-вывода, где устройство ввода клавиатура, а устройство выводадисплей; 'LPT1',   ‘LPT2’,   ‘LPT3’ – последовательность устройств дляпечати и ‘LPT1’ синонимичен с 'PRN' и является обыкновенным принтером; 'COM1' –это последовательный порт ЭВМ и т.д.

<span Verdana",«sans-serif»">     С файловой системой в Turbo Pascal связанопонятие буфера ввода — вывода. Ввод и вывод данных осуществляется через буфер.Буфер — это область в памяти, которая выделяется для каждого файла. При записив файл вся информация сначала направляется в буфер и там накапливается до техпор, пока весь объем буфера не будет заполнен. Только после этого или послеспециальной команды сброса происходит передача данных на внешнее устройство.При чтении из файла данные вначале считываются в буфер, причем данныхсчитывается не столько, сколько запрашивается, а сколько поместится в буфер.Механизм буферизации позволяет более быстро и эффективно обмениватьсяинформацией с внешними устройствами.

<span Verdana",«sans-serif»">     Теперь перейдем к переменным файловоготипа. Язык Pascal поддерживает 3 файловых типа:

<span Verdana",«sans-serif»">      -1-ый – текстовые файлы.

<span Verdana",«sans-serif»">      -2-ой– типизированные файлы.

<span Verdana",«sans-serif»">      -3-ий– нетипизированные файлы.

<span Verdana",«sans-serif»">     Описание переменных к этим трем файловымтипам данных выглядит следующим образом:

<span Verdana",«sans-serif»">     -для текстовых файлов: Var T:Text;{T-файловая переменная текстового типа}

<span Verdana",«sans-serif»">     -для типизированных файлов: Var F:File ofтип_данных; {F-типизированная файловая переменная; тип_данных – любой типданных языка Pascal кроме файлового типа}

<span Verdana",«sans-serif»">     -для нетипизированных файлов: Var F:File;{F-нетипизированная файловая переменная}

<span Verdana",«sans-serif»">      Файловые переменные, которые описаны впрограмме, называют логическими файлами. Все основные процедуры и функции,обеспечивающие ввод — вывод данных, работают только с логическими файлами.Физический файл должен быть связан с логическим для выполнения определённыхдействий над ним. В последствие будут изложены стандартные функции и процедурыдля работы с файлами и в особенности для обработки текстовых файлов.

<span Verdana",«sans-serif»">     Особоеместо на языке Pascal занимают текстовые файлы, которые являются темойнастоящей курсовой работы. Текстовый файл представляет собой линейнуюпоследовательность  символов,организованных в строки переменной длины.

<span Verdana",«sans-serif»">     В конце строк стоит признак конца строкиEOln (в операционной системе MS-DOS, а как следствие и в её оболочке MS-WindowsEnd Of Line состоит из двух символов: LF- перевод строки, имеющий порядковыйномер в ASCII таблице #10 и CR — возврат каретки c порядковым номером в ASCIIтаблице #13). В самом конце текстового файля стоит признак конца файла EOF (EndOf File имеющий порядковый номер в ASCII таблице -#26). Признак конца строкивводится при помощи нажатия клавиши Enter, а признак конца файла при помощинажатия клавиш Ctrl+Z. Обычно эти специальные символы или признаки неотображаются в текстовых редакторах.

<span Verdana",«sans-serif»">     В текстовом файле всегда имеется такназываемый курсор или указатель который стоит на определенном символе. Еслифайл пустой то первым и единственным считанным символом будет EOF (#26).

<span Verdana",«sans-serif»">     Помимо текстовых переменных вводимыхпрограммистом но языке Pascal имеются также стандартные файловые переменныетекстового типа: Input и Output. Стандартная текстовая переменная Inputпредставляет собой доступный только для чтения файл, связанный со стандартнымфайлом ввода операционной системы. Стандартная текстовая переменная Output –это доступный только для записи файл, связанный со стандартным файлом вывода.Обычно стандартным файлом ввода-вывода является внешнее устройство – Консоль(‘CON’) о котором уже говорилось выше.

<span Verdana",«sans-serif»">      В чем же суть обработки текстовых файлов?Учитывая специфику слова “обработка”, под обработкой текстовых файлов можнопонять считывание информации со входного файла, изменение информации и записиэтой информации на выходной файл. Запись не читанных со входного файлатекстовых данных на выходной файл является видоизменением текстового файла, ноне подпадает под понятие обработка текстового файла.

<span Verdana",«sans-serif»">     Теперь самое время перейти к стандартнымфункциям и процедурам, которые

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Pascal<span Verdana",«sans-serif»"><span Verdana",«sans-serif»">предоставляет нам дляработы с текстовыми файлами и в некоторых случаях с файлами вообще.

<span Verdana",«sans-serif»">      Процедура

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Assign<span Verdana",«sans-serif»">([файловаяпеременная],[имя файла]);

<span Verdana",«sans-serif»">      Для работы с файлами вторым важнымдействием после объявления файловой переменной является “связывание” этой переменнойс физическим файлом. Это действие и выполняет процедура

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Assign<span Verdana",«sans-serif»">.То есть выполняя действия надфайловой переменной программа, ассоциирующая файловую переменную с конкретнымфизическим файлом, производит операции именно над этим физическим файлом. Какбыло отмечено процедура <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Assign<span Verdana",«sans-serif»">является обязательной для работы с файлами. С одним и тем же физическимфайлом можно связать несколько файловых переменных. Также с одной файловойпеременной можно последовательно связать различные физические файлы. Причём припоследовательном связывании с одной и той же переменной различных физическихфайлов операции произведённые над переменной до связывания становятсянедействительными. Например следует дважды открыть одну и ту же переменнуюдважды связанную с различными файлами для чтения: <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Assign<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">,’<span Verdana",«sans-serif»;mso-ansi-language:EN-US">file<span Verdana",«sans-serif»">1.<span Verdana",«sans-serif»;mso-ansi-language:EN-US">txt<span Verdana",«sans-serif»">); <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Reset<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">); <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Assign<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">,’<span Verdana",«sans-serif»;mso-ansi-language:EN-US">file<span Verdana",«sans-serif»">2.<span Verdana",«sans-serif»;mso-ansi-language:EN-US">txt<span Verdana",«sans-serif»">’); <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Reset<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">);. О процедурах открытия файловбудет говориться ниже.

<span Verdana",«sans-serif»">     Что касается стандартных входных ивыходных текстовых файлов

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Input<span Verdana",«sans-serif»">и <span Verdana",«sans-serif»;mso-ansi-language: EN-US">Output<span Verdana",«sans-serif»"><span Verdana",«sans-serif»">то они автоматическисвязываются со стандартным устройством ввода-вывода (обычно это совокупностьустройств – дисплей и клавиатура). То есть два оператора <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Assign<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Input<span Verdana",«sans-serif»">,’<span Verdana",«sans-serif»;mso-ansi-language:EN-US">CON<span Verdana",«sans-serif»">’); <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Assign<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Output<span Verdana",«sans-serif»">,’<span Verdana",«sans-serif»;mso-ansi-language:EN-US">CON<span Verdana",«sans-serif»">’); выполняются по умолчанию и их неследует писать.

<span Verdana",«sans-serif»">    Приведём пример программы использующейпроцедуру

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Assign<span Verdana",«sans-serif»">:

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Program Assign_my_file;

<span Verdana",«sans-serif»"> 

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Var<span Verdana",«sans-serif»"> <span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">:<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Text<span Verdana",«sans-serif»">; {Описание текстовой переменной}

<span Verdana",«sans-serif»"> 

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Begin

<span Verdana",«sans-serif»"> 

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Assign<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">,’<span Verdana",«sans-serif»;mso-ansi-language:EN-US">my<span Verdana",«sans-serif»">_<span Verdana",«sans-serif»;mso-ansi-language:EN-US">file<span Verdana",«sans-serif»">.<span Verdana",«sans-serif»;mso-ansi-language:EN-US">txt<span Verdana",«sans-serif»">’); {Сопоставление внешнемутекстовому файлу <span Verdana",«sans-serif»; mso-ansi-language:EN-US">my<span Verdana",«sans-serif»">_<span Verdana",«sans-serif»;mso-ansi-language:EN-US">file<span Verdana",«sans-serif»">.<span Verdana",«sans-serif»;mso-ansi-language:EN-US">txt<span Verdana",«sans-serif»"> текстовой переменной <span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">}

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">End

<span Verdana",«sans-serif»">.

<span Verdana",«sans-serif»">Процедура

<span Verdana",«sans-serif»;mso-ansi-language: EN-US">Assign<span Verdana",«sans-serif»"> работаетсо всеми типами файлов.

<span Verdana",«sans-serif»">   

<span Verdana",«sans-serif»">    Процедура

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Reset<span Verdana",«sans-serif»"><span Verdana",«sans-serif»;mso-ansi-language:EN-US">([<span Verdana",«sans-serif»">файловаяпеременная<span Verdana",«sans-serif»;mso-ansi-language:EN-US">]);

<span Verdana",«sans-serif»">   Открывает логический файл (то есть файловаяпеременная связанная с физическим файлом) для чтения. Естественно, что длячтения следует открывать входной файл. После выполнения процедуры

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Reset<span Verdana",«sans-serif»"> курсор ставится на первый элементфайла (в случае текстового файла на первый символ) и с файла уже можносчитывать информацию. Если текстовый файл пустой, то первым символом будет <span Verdana",«sans-serif»;mso-ansi-language:EN-US">EOF- #26.<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">    Приведём пример программы использующейпроцедуру

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Reset<span Verdana",«sans-serif»">:

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Program

<span Verdana",«sans-serif»"> <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Reset<span Verdana",«sans-serif»">_<span Verdana",«sans-serif»;mso-ansi-language:EN-US">my<span Verdana",«sans-serif»">_<span Verdana",«sans-serif»;mso-ansi-language:EN-US">file<span Verdana",«sans-serif»">;

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Var T:Text;

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Begin

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Assign(T,’my_file.txt’);

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Reset

<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">); {Открытие файла для чтения}

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">End

<span Verdana",«sans-serif»">.

<span Verdana",«sans-serif»">  Что касается стандартного входного текстовогофайла

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Input<span Verdana",«sans-serif»">то он открывается для чтения автоматически. То есть не следует писать <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Reset(Input);<span Verdana",«sans-serif»">в программе.

<span Verdana",«sans-serif»">    Процедура

<span Verdana",«sans-serif»;mso-ansi-language: EN-US">Rewrite<span Verdana",«sans-serif»">([файловая переменная]);

<span Verdana",«sans-serif»">    Создает и открывает внешний физический файлсвязанный с файловой переменной для последующей записи в него. Новый созданныйфайл бывает пустой и курсор становится в самое начало файла. Если описанный впроцедуре

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Assign<span Verdana",«sans-serif»">внешний файл уже существует, то он стирается и создаётся заново. Разумеетсяпосле выполнения процедуры <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Rewrite<span Verdana",«sans-serif»">созданный для записи файл является выходным файлом. Процедура <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Rewrite<span Verdana",«sans-serif»"> используется со всеми файловымитипами данных.  

<span Verdana",«sans-serif»">      Приведёмпример программы использующей процедуру

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Rewrite<span Verdana",«sans-serif»">:

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Program Rewrite_my_file;

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Var T:Text;

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Begin

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Assign(T,’my_file.txt’);

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Rewrite

<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">); {создаёт новый файл <span Verdana",«sans-serif»;mso-ansi-language:EN-US">my<span Verdana",«sans-serif»">_<span Verdana",«sans-serif»;mso-ansi-language:EN-US">file<span Verdana",«sans-serif»">.<span Verdana",«sans-serif»;mso-ansi-language:EN-US">txt<span Verdana",«sans-serif»"> для последующей записи в него}

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">End

<span Verdana",«sans-serif»">.

<span Verdana",«sans-serif»">  Что касается стандартного выходноготекстового файла

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Output<span Verdana",«sans-serif»">то он открывается для записи автоматически. То есть не следует писать <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Rewrite<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Output<span Verdana",«sans-serif»">); в программе.

      <span Verdana",«sans-serif»">Процедура

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Append<span Verdana",«sans-serif»">([файловаяпеременная]);

<span Verdana",«sans-serif»">     Открывает внешний физический текстовыйфайл связанный с файловой переменной для последующей записи в него. Однако вотличии от процедуры

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Rewrite<span Verdana",«sans-serif»">этот файл существует запись производится в самый конец файла. Разумеетсяпроцедура <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Append<span Verdana",«sans-serif»">используется для открытия выходных текстовых файлов. После открытия файлакурсор становится в самый конец файла. Процедура <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Append<span Verdana",«sans-serif»"> используется только для текстовыхфайлов.

<span Verdana",«sans-serif»">     Приведём пример программы использующейпроцедуру

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Append<span Verdana",«sans-serif»">:<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Program Append_my_file;

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Var T:Text;

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Begin

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Assign(T,’my_file.txt’);

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Append

<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">); {Открывает логический файл дляпоследующей записи информации в самый конец}

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">End

<span Verdana",«sans-serif»">.

<span Verdana",«sans-serif»">    Процедура

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Close<span Verdana",«sans-serif»">([файловаяпеременная]);

<span Verdana",«sans-serif»">    Сохраняет и закрывает открытый физическийфайл связанный с файловой переменной. Как было отмечено в определении файлперед закрытием должен быть открыт (процедурами

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Reset<span Verdana",«sans-serif»"> или <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Rewrite<span Verdana",«sans-serif»"> для всех типов файлов илипроцедурой <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Append<span Verdana",«sans-serif»">для текстовых файлов). Если в выходных файлах были произведены изменения, тодля сохранения информации они должны быть обязательно закрыты процедурой <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Close<span Verdana",«sans-serif»">. Процедура <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Close<span Verdana",«sans-serif»"> может быть использована для любыхтипов файлов. Если последовательно открывать файл различными процедурами, то впромежутках между этими процедурами оператор <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Close<span Verdana",«sans-serif»"> автоматически. То есть если вначале открыть файл для записи процедурой <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Rewrite<span Verdana",«sans-serif»"> а затем сразу открыть его длячтения процедурой <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Reset<span Verdana",«sans-serif»">,то до процедуры <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Reset<span Verdana",«sans-serif»">автоматически произойдёт сохранение и закрытие файла оператором <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Close<span Verdana",«sans-serif»">.

        <span Verdana",«sans-serif»">Приведём пример программыиспользующей процедуру

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Close<span Verdana",«sans-serif»">:

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Program Close_my_file;

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Var T:Text;

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Begin

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Assign(T,’my_file.txt’);

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Append(T);

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Close

<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">); {Сохраняем и закрываем текстовыйфайл <span Verdana",«sans-serif»; mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">открытый процедурой <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Append<span Verdana",«sans-serif»">}

<span Verdana",«sans-serif»;mso-ansi-language: EN-US">End

<span Verdana",«sans-serif»">.<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»">       Процедура

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Erase<span Verdana",«sans-serif»">([файловаяпеременная]);<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">       Процедура

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Erase<span Verdana",«sans-serif»"> удаляет физический файл связанный сфайловой переменной. Физический файл связанный с файловой переменной долженсуществовать, иначе при попытке удалить несуществующий файл процедурой <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Erase<span Verdana",«sans-serif»"> произойдёт ошибка времени.

<span Verdana",«sans-serif»">

        <span Verdana",«sans-serif»">Приведёмпример программы использующей процедуру

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Erase<span Verdana",«sans-serif»">:<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">ProgramErase_my_file;

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Var T:Text;

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Begin

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Assign(T,’my_file.txt’);

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Rewrite(T);

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Erase(T); {

<span Verdana",«sans-serif»">Удаляем<span Verdana",«sans-serif»;mso-ansi-language:EN-US"> <span Verdana",«sans-serif»">файл<span Verdana",«sans-serif»;mso-ansi-language:EN-US">my_file.txt}

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">End.

        <span Verdana",«sans-serif»">Процедура

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»">([файловая переменная],[списокввода]);

<span Verdana",«sans-serif»">  

<span Verdana",«sans-serif»">      Присваивает одно или несколько значенийиз файла связанного с файловой переменной в одну или несколько переменных,описанных в списке ввода. В списке ввода могут быть одна переменная илиперечислены несколько переменных через запятую. Переменные для ввода изтекстового файла могут быть следующих типов:

<span Verdana",«sans-serif»">     -Символьный тип данных (

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Char<span Verdana",«sans-serif»">).

<span Verdana",«sans-serif»">     -Строковой тип данных (

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">String<span Verdana",«sans-serif»">).

<span Verdana",«sans-serif»">     -Целочисленный тип данных (

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Integer<span Verdana",«sans-serif»">, <span Verdana",«sans-serif»;mso-ansi-language:EN-US">LongInt<span Verdana",«sans-serif»">, <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Word<span Verdana",«sans-serif»">, <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Byte<span Verdana",«sans-serif»">).

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">     -

<span Verdana",«sans-serif»">Переменные<span Verdana",«sans-serif»;mso-ansi-language:EN-US"> <span Verdana",«sans-serif»">вещественного<span Verdana",«sans-serif»;mso-ansi-language:EN-US"> <span Verdana",«sans-serif»">типа<span Verdana",«sans-serif»;mso-ansi-language:EN-US"> (Real,Single, Double, Complex, Extended).

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">     

<span Verdana",«sans-serif»">Считываниеинформации из входного файла процедурой <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»"> всегда происходит толькопоследовательно. Так как при считывании текущая позиция перемещается кследующему символу.

<span Verdana",«sans-serif»">      Теперь рассмотрим как процедура

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»"> присваивает значения различнымтипам данных.

<span Verdana",«sans-serif»">      1)Символьный тип. При вводе переменныхтипа

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Char<span Verdana",«sans-serif»">выполняется чтение одного символа из файла и присваивание считанного значенияпеременной. Если перед выполнением чтения указатель достиг конца очереднойстроки, то результатом чтения будет символ <span Verdana",«sans-serif»;mso-ansi-language:EN-US">CR<span Verdana",«sans-serif»"> (<span Verdana",«sans-serif»;mso-ansi-language:EN-US">ASCII<span Verdana",«sans-serif»"> код #13), а если достигнут конецфайла, то — символ <span Verdana",«sans-serif»; mso-ansi-language:EN-US">EOF<span Verdana",«sans-serif»">( код #26).

<span Verdana",«sans-serif»">     2)При вводе переменных типа

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">String<span Verdana",«sans-serif»"> количество считанных процедурой иприсвоенных строке символов равно максимальной длине строки, если только раньшене встретились символы <span Verdana",«sans-serif»; mso-ansi-language:EN-US">CR<span Verdana",«sans-serif»">и <span Verdana",«sans-serif»;mso-ansi-language: EN-US">EOF<span Verdana",«sans-serif»">. В этомслучае сами символы <span Verdana",«sans-serif»; mso-ansi-language:EN-US">CR<span Verdana",«sans-serif»">и <span Verdana",«sans-serif»;mso-ansi-language: EN-US">EOF<span Verdana",«sans-serif»"> в строку непомещаются. Если количество символов во входном потоке данных большемаксимальной длины строки, “лишние” символы до маркера конца строки или файлаотбрасываются, а новое обращение к <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»"> возвращает пустую строку. Такимобразом, процедура <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»">не в состоянии прочесть последовательность строк из текстового файла: строкипрочитанные до маркеров конца строки или файла будут нормальными а послемаркеров будут пустыми.

<span Verdana",«sans-serif»">    3,4)При вводе числовых переменных процедура

<span Verdana",«sans-serif»;mso-ansi-language: EN-US">Read<span Verdana",«sans-serif»"> вначалевыделяет подстроку во входном потоке по следующем правилу: все ведущие пробелы,символы табуляции и маркеры конца строк <span Verdana",«sans-serif»;mso-ansi-language:EN-US">EOLn<span Verdana",«sans-serif»"> пропускаются, после выделенияпервого значащего символа, наоборот, любой из перечисленных символов или <span Verdana",«sans-serif»;mso-ansi-language:EN-US">EOF<span Verdana",«sans-serif»"> служат признаком конца подстроки.Выделенная таким образом подстрока затем рассматривается как символьноепредставление числовой константы соответствующего типа и преобразуется вчисленное представление, а полученное значение присваивается числовойпеременной. Если в подстроке был нарушен требуемый формат представления численнойконстанты, возникает ошибка ввода. Если при пропуске ведущих пробеловвстретился символ <span Verdana",«sans-serif»; mso-ansi-language:EN-US">EOF<span Verdana",«sans-serif»">,переменная получает значение 0. В Турбо Паскале не предусмотрен вводшестнадцатеричных констант.

<span Verdana",«sans-serif»">     Отмечу что, ввод переменных типа

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Boolean<span Verdana",«sans-serif»"> <span Verdana",«sans-serif»">процедурами ввода не предусмотрен.

<span Verdana",«sans-serif»">     

<span Verdana",«sans-serif»">     Что касается стандартных текстовыхпеременных, то при использовании процедуры

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»"> применительно к стандартномувходному файлу <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Input<span Verdana",«sans-serif»">,т.е. при вводе с клавиатуры, символьные строки запоминаются в буфере, которыйпередается процедуре только после нажатия на клавишу <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Enter<span Verdana",«sans-serif»">. Кроме того, при работе с файлом <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Input<span Verdana",«sans-serif»"> в записи оператора <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»"> не надо писать имя файла, иначе этоприведет к ошибке. Это позволяет редактировать данные при их вводе.Максимальная длина буфера ввода при работе с клавиатурой составляет 127символов. Ввод с клавиатуры по процедуре <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»"> сопровождается эхо-повторомвводимых символов на экране ПК.

<span Verdana",«sans-serif»">      Процедура

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»"> прекрасно приспособлена вводучисел. При обращении к ней за вводом очередного целого или вещественного числапроцедура «перескакивает» маркеры конца строк, т.е. фактически весь файлрассматривается ею как одна длинная строка, содержащая текстовое представлениечисел.

<span Verdana",«sans-serif»">       Приведем пример программы, использующейпроцедуру

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»">:

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»">Допустимнам дан входной файл

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">my<span Verdana",«sans-serif»">_<span Verdana",«sans-serif»;mso-ansi-language:EN-US">file<span Verdana",«sans-serif»">.<span Verdana",«sans-serif»;mso-ansi-language:EN-US">txt<span Verdana",«sans-serif»"> следующего вида:

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Sharifov       Rustam        1987  

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">ProgramRead_from_file;

<span Verdana",«sans-serif»;mso-ansi-language:EN-US"> Var

<span Verdana",«sans-serif»"> 

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">F<span Verdana",«sans-serif»">,<span Verdana",«sans-serif»; mso-ansi-language:EN-US">I<span Verdana",«sans-serif»">:<span Verdana",«sans-serif»;mso-ansi-language:EN-US">string<span Verdana",«sans-serif»">[15]; {Переменная <span Verdana",«sans-serif»;mso-ansi-language:EN-US">F<span Verdana",«sans-serif»"> – фамилия, <span Verdana",«sans-serif»;mso-ansi-language:EN-US">I<span Verdana",«sans-serif»"> <span Verdana",«sans-serif»">– имя. Во входном файле фамилия иимя последовательно расположены на 15 позициях, то есть на них выделено 15позиций}

<span Verdana",«sans-serif»"> 

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">D<span Verdana",«sans-serif»">:<span Verdana",«sans-serif»; mso-ansi-language:EN-US">word<span Verdana",«sans-serif»">;{Переменная <span Verdana",«sans-serif»; mso-ansi-language:EN-US">D<span Verdana",«sans-serif»">– год рождения. Год рождения расположен сразу после имени}<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">  T:Text;

<span Verdana",«sans-serif»"> 

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Begin

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">   Assign(T,’my_file.txt’);

<span Verdana",«sans-serif»">  

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Reset<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">);

<span Verdana",«sans-serif»">  

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">,<span Verdana",«sans-serif»;mso-ansi-language:EN-US">F<span Verdana",«sans-serif»">,<span Verdana",«sans-serif»;mso-ansi-language:EN-US">I<span Verdana",«sans-serif»">,<span Verdana",«sans-serif»;mso-ansi-language:EN-US">D<span Verdana",«sans-serif»">); {Из входного файла Т считываютсяданные и присваиваются переменным.}

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">End.

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»"> 

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">       Процедура

<span Verdana",«sans-serif»;mso-ansi-language: EN-US">ReadLn<span Verdana",«sans-serif»">([файловая переменная],[списокввода]);

<span Verdana",«sans-serif»">        

<span Verdana",«sans-serif»">        Это процедура идентична процедуре

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»"> (она также присваивает переменным, перечисленным в списке вводазначения, считанные из текстового файла), за исключением того, что послесчитывания последней переменной оставшаяся часть строки до маркера <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Eoln<span Verdana",«sans-serif»"> пропускается. Поэтому следующееобращение к <span Verdana",«sans-serif»; mso-ansi-language:EN-US">ReadLn<span Verdana",«sans-serif»">или

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Read

<span Verdana",«sans-serif»"> начинается с первого символа новойстроки. Кроме этого, эту процедуру можно вызывать без параметра [список ввода], что приведет к пропуску всех символовтекущей строки вплоть до <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Eoln<span Verdana",«sans-serif»">.Процедура <span Verdana",«sans-serif»; mso-ansi-language:EN-US">ReadLn<span Verdana",«sans-serif»"><span Verdana",«sans-serif»">используется только стекстовыми файлами.

<span Verdana",«sans-serif»">         Если процедура используется для чтенияс клавиатуры (

<span Verdana",«sans-serif»; mso-ansi-language:EN-US">Input<span Verdana",«sans-serif»">),нажатие на клавишу <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Enter<span Verdana",«sans-serif»">отобразится на экране как последовательность <span Verdana",«sans-serif»;mso-ansi-language:EN-US">CR<span Verdana",«sans-serif»"> + <span Verdana",«sans-serif»;mso-ansi-language:EN-US">LF<span Verdana",«sans-serif»"> и курсор будет помещен в началоследующей строки. В то время как  впроцедуре <span Verdana",«sans-serif»; mso-ansi-language:EN-US">Read<span Verdana",«sans-serif»">  эхо-повтором клавишы <span Verdana",«sans-serif»;mso-ansi-language:EN-US">Enter<span Verdana",«sans-serif»"> является символ <span Verdana",«sans-serif»;mso-ansi-language:EN-US">CR<span Verdana",«sans-serif»">.

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">     Допустим нам дан входной файл

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">my<span Verdana",«sans-serif»">_<span Verdana",«sans-serif»;mso-ansi-language:EN-US">file<span Verdana",«sans-serif»">.<span Verdana",«sans-serif»;mso-ansi-language:EN-US">txt<span Verdana",«sans-serif»"> следующего вида:

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Sharifov      

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Rustam       

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">1987   

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">ProgramRead_from_file;

<span Verdana",«sans-serif»;mso-ansi-language:EN-US"> Var

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»"> 

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">F<span Verdana",«sans-serif»">,<span Verdana",«sans-serif»; mso-ansi-language:EN-US">I<span Verdana",«sans-serif»">:<span Verdana",«sans-serif»;mso-ansi-language:EN-US">string<span Verdana",«sans-serif»">[15];

<span Verdana",«sans-serif»"> 

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">D<span Verdana",«sans-serif»">:<span Verdana",«sans-serif»; mso-ansi-language:EN-US">word<span Verdana",«sans-serif»">;

<span Verdana",«sans-serif»"> 

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T:Text;

<span Verdana",«sans-serif»;mso-ansi-language:EN-US"> Begin

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">   Assign(T,’my_file.txt’);

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">   Reset

<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">);

<span Verdana",«sans-serif»">  

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">ReadLn<span Verdana",«sans-serif»">(<span Verdana",«sans-serif»;mso-ansi-language:EN-US">T<span Verdana",«sans-serif»">,<span Verdana",«sans-serif»;mso-ansi-language:EN-US">F<span Verdana",«sans-serif»">,<span Verdana",«sans-serif»;mso-ansi-language:EN-US">I<span Verdana",«sans-serif»">,<span Verdana",«sans-serif»;mso-ansi-language:EN-US">D<span Verdana",«sans-serif»">); {Данные во входном файлесоответсвующие переменных расположены в новых строках. Процедура каждый разсчитывает данные из новой строки и перемещает курсор за признак конца строки <span Verdana",«sans-serif»;mso-ansi-language:EN-US">EOLn<span Verdana",«sans-serif»"> <span Verdana",«sans-serif»">}

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">End

<span Verdana",«sans-serif»">.

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">        

<span Verdana",«sans-serif»">Процедура<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Write<span Verdana",«sans-serif»">([файловаяпеременная],[список вывода]);<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">      Обеспечивает вывод информации в текстовыйфайл или передачу её на логическое устройство. Файловая переменная должна бытьсвязана с внешним файлом для вывода информации. Если файловая переменнаяотсутствует, то подразумевается вывод информации на стандартное устройствовывода (дисплей ПК). Здесь [список вывода]: последовательность из одного илиболее выражений типа:

<span Verdana",«sans-serif»">      -Символьный тип (

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Char<span Verdana",«sans-serif»">)

<span Verdana",«sans-serif»">      -Строковой тип (

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">String<span Verdana",«sans-serif»">)

<span Verdana",«sans-serif»">      -Целые числа

<span Verdana",«sans-serif»">      -Вещественные числа

<span Verdana",«sans-serif»">      -Булевые константы (

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Boolean<span Verdana",«sans-serif»">)

<span Verdana",«sans-serif»">

<span Verdana",«sans-serif»">       

<span Verdana",«sans-serif»">Элементы списка вывода разделяются друг от другазапятой.Любой элемент списка вывода может иметь вид:

<span Verdana",«sans-serif»">            

<span Verdana",«sans-serif»">Выводимое_выражение[: ширинаполя[: кол-во десятичных знаков]]

<span Verdana",«sans-serif»">[ширинаполя] и [количество десятичных знаков] – это выражения типа

<span Verdana",«sans-serif»;mso-ansi-language:EN-US">Word<span Verdana",«sans-serif»">. Квадратные скобки означают возможностьотсутствия заключенных в них параметров. Подпараметр [ширина поля], если онприсутствует, указывает минимальную ширину поля, в которое будет записыватьсясимвольное представление выводимого значения. Именно символьное представление,так как все данные перечисленные в списке вывода переводиться в символьный типи только п
еще рефераты
Еще работы по программированию, базе данных