RSS    

   Реферат: Основные понятия алгоритмического языка

этого или после специальной команды сброса происходит передача данных

на внешнее устройство. При чтении из файла данные вначале считываются

в буфер, причем данных считывается не столько, сколько запрашивается,

а сколько поместится в буфер.

   Механизм буферизации  позволяет  более быстро и эффективно обмени-

ваться информацией с внешними устройствами.

   Для работы  с  файлами  в программе необходимо определить файловую

переменную. TURBO  PASCAL поддерживает три файловых типа:   текстовые

файлы, компонентные файлы, бестиповые файлы.

   Описание файловых переменных текстового типа  производится  с  по-

мощью служебного слова Text, например:

  

   var tStory: Text;

  

   Описание компонентных файлов имеет вид:

  

   var fComp: File of T;

  

где T  -  тип  компоненты файла. Примеры описания файловой переменной

компонентного типа:

                          

   type M= array[1..500] of Longint;

  

   var f1: File of Real;

       f2: File of Integer;

       fLi: File of M;

  

   Бестиповые файлы описываются с помощью служебного слова File:

  

   var f: File;

  

   Файловые переменные,  которые описаны в программе,  называют логи-

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

ввод - вывод данных,  работают только с логическими файлами. Физичес-

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

рытия файлов.

   TURBO PASCAL вводит ряд процедур и функций,  применимых для  любых

типов файлов:  Assign,  Reset,  Rewrite,  Close,  Rename, Erase, Eof,

IOResult.

   Процедура Assign(  var  f; FileName: String ) связывает логический

файл f с физическим файлом,  полное  имя  которого  задано  в  строке

FileName.

   Процедура Reset( var f ) открывает логический файл f для последую-

щего чтения данных или,  как говорят,  открывает входной файл.  После

успешного выполнения процедуры Reset файл готов к чтению из него пер-

вого элемента.

   Процедура Rewrite( var f )  открывает логический файл f для после-

дующей записи  данных (открывает выходной файл).  После успешного вы-

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

   Процедура Close( var  f )  закрывает  открытый до этого логический

файл. Вызов процедуры Close необходим при завершении работы с файлом.

Если  по  какой-то  причине  процедура Close не будет выполнена, файл

все-же  будет создан на внешнем устройстве,  но содержимое последнего

буфера в него  не будет перенесено.  Для входных файлов использование

оператора закрытия файла необязательно.

   Логическая функция EOF( var f ): Boolean возвращает значение TRUE,

когда при чтении достигнут конец файла.  Это означает, что уже прочи-

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

   Процедура Rename( var f; NewName: String ) позволяет переименовать

физический файл на диске, связанный с логическим файлом f. Переимено-

вание возможно после закрытия файла.

   Процедура Erase( var f )  уничтожает физический файл на диске, ко-

торый был связан с файловой переменной f.  Файл к моменту вызова про-

цедуры Erase должен быть закрыт.

   Функция  IOResult: Integer возвращает целое число, соответствующее

коду последней ошибки ввода - вывода.  При нормальном завершении опе-

рации функция вернет значение 0. Значение функции IOResult необходимо

присваивать какой - либо переменной,  так как при каждом вызове функ-

ция обнуляет свое значение. Функция IOResult работает только при вык-

люченном режиме проверок ошибок ввода - вывода или с ключом  компиля-

ции {$I-}.

  

  

31.   Т Е К С Т О В Ы Е   Ф А Й Л Ы

  

   Особое место в языке ПАСКАЛЬ занимают текстовые файлы,  компоненты

которых имеют символьный тип.  Для описания текстовых файлов в  языке

определен стандартный тип Тext:

         var    TF1, TF2: Text;

   Текстовые файлы  представляют  собой  последовательность строк,  а

строки - последовательность символов.  Строки имеют переменную длину,

каждая строка завершается признаком конца строки.

   С признаком конца строки связана функция EOLn(var T:Text):Boolean,

где Т - имя  текстового  файла.  Эта функция принимает значение TRUE,

если достигнут конец строки, и значение  FALSE, если  конец строки не

достигнут.

   Для операций над текстовыми файлами,  кроме перечисленных, опреде-

лены также операторы обращения к процедурам:

   ReadLn(T) - пропускает строку до начала следующей;

   WriteLn(T) -  завершает  строку файла,  в которую производится за-

пись, признаком конца строки и переходит к началу следующей.

   Для работы с текстовыми файлами введена расширенная форма операто-

ров ввода и вывода. Оператор

    Read(T,X1,X2,...XK)

 эквивалентен группе операторов

    begin

      Read(T,X1);

      Read(T,X2);

      ...........

      Read(T,XK)

    end;

   Здесь Т - текстовый файл, а переменные Х1, Х2,...ХК могут быть ли-

бо  переменными  целого, действительного или символьного  типа,  либо

строкой. При чтении значений переменных из файла они преобразуются из

текстового представления в машинное.

   Оператор

    Write(T,X1,X2,...XK)

эквивалентен группе операторов

    begin

      Write(T,X1);

      Write(T,X2);

      ...........

      Write(T,XK)

    end;

   Здесь Т  -  также текстовый файл,  но переменные Х1,Х2,...ХК могут

быть целого, действительного, символьного, логического типа или стро-

кой. При записи значений переменных в файл они преобразуются из внут-

реннего представления в текстовый.

   К текстовым файлам относятся стандартные файлы INPUT, OUTPUT.

   Рассмотренные ранее операторы ввода - вывода являются частным слу-

чаем операторов обмена с текстовыми файлами, когда используются стан-

дартные файлы ввода - вывода INPUT, OUTPUT.

   Работа с этими файлами имеет особенности:

   -имена этих файлов в списках ввода - вывода не указываются;

   -применение процедур  Reset,  Rewrite и Close к стандартным файлам

ввода - вывода запрещено;

   -для работы с файлами INPUT,  OUTPUT введена разновидность функции

EOLn без параметров.

   TURBO PASCAL вводит дополнительные процедуры и функции, применимые

только к текстовым файлам,  это SetTextBuf,  Append, Flush, SeekEOLn,

SeekEOF.

   Процедура SetTextBuf( var f: Text; var Buf; BufSize: Word ) служит

для увеличения  или уменьшения буфера ввода - вывода текстового файла

f. Значение  размера буфера для текстовых файлов по  умолчанию  равно

128 байтам.  Увеличение размера буфера сокращает количество обращений

к диску.  Рекомендуется изменять разиер буфера до открытия файла. Бу-

фер файла начнется с первого байта переменной Buf.  Размер буфера за-

дается в необязательном параметре BufSize,  а если этот параметр  от-

сутствует, размер буфера определяется длиной переменной Buf.

   Процедура Append( var f:  Text )  служит для специального открытия

выходных файлов. Она применима к уже существующим физическим файлам и

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

   Процедура Flush(  var  f: Text )  применяется  к открытым выходным

файлам. Она  принудительно записывает данные из буфера в файл незави-

симо от степени его заполнения.

   Функция SeekEOLn( var f: Text ): Boolean возвращает значение True,

если до конца строки остались только пробелы.

   Функция SeekEOF( var f:  Text ): Boolean возвращает значение True,

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

  

  

32.   К О М П О Н Е Н Т Н Ы Е   Ф А Й Л Ы

                                     

   Компонентный или типизированный файл - это файл с объявленным  ти-

пом его компонент. Компонентные файлы состоят из машинных представле-

ний значений переменных,  они хранят данные в том же виде,  что и па-

мять ЭВМ.

   Описание величин файлового типа имеет вид:

         type M= File Of T;

где М - имя файлового типа, Т - тип компоненты. Например:

         type

           FIO= String[20];

           SPISOK=File of FIO;

         var

           STUD, PREP: SPISOK;

   Здесь STUD,   PREP  - имена файлов,  компонентами которых являются

строки.

   Описание файлов можно задавать в разделе описания переменных:

         var

            fsimv: File of Char;

            fr: File of Real;

   Компонентами файла могут быть все скалярные типы,  а из структури-

рованных - массивы, множества, записи. Практически во всех конкретных

реализациях языка ПАСКАЛЬ конструкция "файл файлов" недопустима.

   Все операции  над  компонентными  файлами  производятся  с помощью

стандартных процедур:

   Reset, Rewrite, Read, Write, Close.

    Для ввода - вывода используются процедуры:

     Read(f,X);

     Write(f,X);

   где f - имя логического файла,  Х - либо переменная,  либо массив,

либо строка,  либо множество, либо запись с таким же описанием, какое

имеет компонента файла.

    Выполнение процедуры  Read(f,X)  состоит в чтении с внешнего уст-

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.