Pascal. Файлы. Общие сведения. Текстовые файлы

      Комментарии к записи Pascal. Файлы. Общие сведения. Текстовые файлы отключены

Помечено: ,

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 2 мес. назад.

  • Автор
    Сообщения
  • #3744

    В язык Паскаль выделяются данные файлового типа, которые служат для работы с информацией, расположенной на внешних устройствах. Эта информация формируется во внешней памяти компьютера, образуя некоторую область, называемую файлом. Файлы имеют имя и представляют собой совокупность однотипных элементов. Обычно они применяются, в случаях большого объема данных, долгосрочного хранения, либо необходимости предоставления доступа нескольким приложениям к одной и той же информации.

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

    В Паскале различают следующие три вида файлов (в скобках описаны ключевые слова для инициализации файловой переменной):

    текстовые файлы (text);
    
    типизированные (file of <тип>);
    
    бестиповые (file).

    Немного позже мы разберемся с каждым из них. А сейчас рассмотрим основные операции для работы с файлами.

    Создание файла

    Assign(<имя файловой переменной>, <имя файла>)

    Процедура Assign связывает переменную файлового типа с физическим файлом. Например, установить соответствие между переменной Fil и текстовым файлом lot, расположенном на диске D, можно так:

    Assign(Fil, ‘D:\lot.txt’)

    Режим чтения

    Reset(<имя файловой переменной>)

    Процедура Reset открывает файл в режиме чтения, после чего оператором Read(<файловая переменная>, <считываемый элемент>) можно осуществить последовательное считывание элементов в программу.

    Конец файла

    ЕOF(<имя файловой переменной>)

    Количество элементов в файле заранее не определяется, но часто необходимо знать о моменте достижения конца файла. Для этого в Паскале существует логическая функция EOF, которая проверяет достигнут ли конец, и если это так, то принимает значение True, иначе – False. Осуществляется проверка, как правило, в цикле, в качестве условного выражения выступает функция EOF.

    Режим записи

    Rewrite(<имя файловой переменной>)

    Открыв файл в режиме записи, можно поэлементно записать в него информацию, воспользовавшись процедурой Write(<файловая переменная>, <элемент>).

    Закрытие файла

    Close(<имя файловой переменной>)

    Процедура Close закрывает открытый файл, а также освобождает файловую переменную, указанную в качестве параметра.

    Удаление файла

    Erase(<имя файловой переменной>)

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

    Изменение имени файла

    Rеnаmе(<имя файловой переменной>, ‘<новое имя файла>’)

    Rеnаmе переименовывает физический файл, который перед этим следует закрыть процедурой Close.

    Смещение указателя файла

    Sееk(<имя файловой переменной>, <номер элемента>)

    Процедура Sееk устанавливает позицию указателя в файле на необходимый элемент (нумерация элементов начинается с нуля).

    Определение положения указателя

    FilePos(<имя файловой переменной>)

    Функция FilePos принимает значение порядкового номера элемента, над которым в момент вызова находиться указатель.

    Определение количества элементов

    FileSize(<имя файловой переменной>)

    Функция FileSize определяет количество всех имеющихся в файле элементов.

    Текстовые файлы

    Текстовые файлы могут состоять из элементов символьного (char) и строкового (string) типа данных. Ключевое слово Text указывает, что файловая переменная создается для работы именно с текстовым файлом:

    Var <идентификатор>: Text;

    Структура текстового файла представляет собой последовательность строк, которые в свою очередь состоят из символов. Любая строка оканчивается признаком «конца строки», а сам файл признаком «конца файла». Для определения конца файла в Паскаль есть функция EOF, а для конца строки – EOLn:

    EOLn(<имя файловой переменной>)

    В случае достижения конца строки она (функция EOLn) возвращает значение True, в противном случае False.

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

    program text_fail;
    uses crt;
    var
      f: text; {объявление файловой переменной}
      s: string;
      n, i: integer;
    begin
      assign (f, 'file.txt'); {создание файла}
      rewrite(f); {открытие файла в режиме записи}
      write('Количество строк '); read(n);
      for i:=1 to n do
      begin
        readln(s); {ввод строки}
        writeln(f, s); {запись строки в файл}
      end;
      clrscr;
      reset(f); {открытие файла в режиме чтения}
      while not eof(f) do {выполнять пока не достигнут конец файла}
      begin
        readln(f, s); {чтение строки из файла}
        writeln(s); {вывод считанной строки на экран}
      end;
      close(f); {закрытие файла}
    end.

    Место создания файла "file.txt" не было указано, поэтому он создаться в папке по умолчанию для вашей среды программирования. Для текстовых файлов в Паскале определены следующие процедуры и функции:

    Append(<имя файловой переменной>)

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

    SeekEOLn(<имя файловой переменной>)

    Если до конца строки остались пробелы/знаки табуляции, то функция SeekEOLn возвращает значение True, иначе False.

    SeekEOF(<имя файловой переменной>)

    Если до конца файла остались лишь строки с пробелами/знаками табуляции, то функция SeekEOF возвращает значение True, иначе False.

Для ответа в этой теме необходимо авторизоваться.