Паскаль работа с файлами примеры программ

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

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

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

текстовые файлы (text);

типизированные (file of );

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

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

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

Работа с файлами Pascal

Режим чтения

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

Конец файла

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

Режим записи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:
Что значит полнокупольная программа

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

Работа с внешними файлами | Pascal

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

Место создания файла «file.txt» не было указано, поэтому он создаться в папке по умолчанию для вашей среды программирования.

Для текстовых файлов в Паскале определены следующие процедуры и функции:

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

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

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

Источник: kvodo.ru

15. Работа с файлами в Паскале

1. Описать тип файловой переменной. Например, переменная f в зависимости от типа файла может быть описана так:

Тип file описывает линейную последовательность компонент, указанного типа. Тип файла Text означает файл, состоящий из строк символов.

2. Связать файловой переменной с именем файла — команда Assign(f). Одновременно в программе может быть открыто несколько десятков файлов, каждый из которых должен иметь свою файловую переменную.

3. Открыть файл командой Rewrite(f) для записи во вновь создаваемый файл или Reset(f) для чтения/записи уже имеющегося файла. Если открывается существующий текстовый файл, то используем команду Append(f).

4. Осуществить чтение или запись в файл — команды Read или Write соответственно (для построчной работы с текстовыми файлами можно использовать соответственно ReadLn или WriteLn). Например, команда записи в файл выглядит так: Write(f, а), где f — файловая переменная; а — переменная любого типа (byte, real, string и т. д., соответствующая типу файла). При обращении к командам Read/Write позиция чтения/записи в файле автоматически увеличивается на единицу.

5. Закрыть файл — команда Close(f).

Пример программы, демонстрирующей возможные действия с файлом:

Assign(f, ‘TEST.TXT’);

WriteLn(f,’Исходный текст’);

WriteLn(f,’Добавляемый текст’);

Ниже приведено описание процедур и функций Паскаля, работающих с файлами:

Процедура Append(var f : Text); Открывает существующий текстовый файл f для дополнения.

Процедура Assign(var f; name : String); Связывает внешний файл с именем name и переменную файлового типа f. Все дальнейшие операции с переменной f будут выполняться с указанным внешним файлом.

Процедура Close(var f); Закрывает открытый файл, связанный с переменной f.

Читайте также:
Программы установка Internet Explorer

Функция Eof(var f); типа Boolean; Показывает значение Истина (True) при наличии признака конца файла для типизированных или нетипизированных файлов, указываемых файловой переменной f.

Функция FilePos(var f); типа Longint; Показывает текущую позицию в файле, указываемом переменной f. Если эта позиция в конце файла, то функция возвращает значение, равное длине файла, а если в начале файла, значение 0.

Функция FileSize(var f); типа Longint; Показывает текущий размер файла f в байтах. Если файл пуст, то 0.

Процедура Reset(var f [ : file; RecSize : Word ] ); Открытие существующего файла. Имя внешнего файла, связанного с f, должно быть ранее определено. Необязательный параметр RecSize: размер записи нетипизированного файла.

Процедура Rewrite(var f : file [;RecSize : Word ] ); Создает и открывает новый файл. Если такой файл уже есть, то он удаляется и создается новый с тем же именем.

Процедура Seek(var f; n : Longint); Перемещает текущую позицию файла к элементу с номером n (не может быть использована для текстовых файлов, первая позиция равна 0).

Процедура Truncate(var f); Усекает размер файла f до текущей позиции в файле.

Ниже приведен пример программы на Паскале, которая открывает сразу два файла (один для чтения, а второй создает вновь для записи). Командой Readln(f1,s); из первого файла считывается строка s. В цикле For организуется доступ к ее отдельным символам и производится замена буквы k на K. Затем преобразованная строка сохраняется во втором файле. Считывание строк проводится в цикле repeat-until и завершается при нахождении конца первого файла Eof(f1).

Источник: studfile.net

#20 Чтение данных — Работа с файлами в Паскаль, assign, reset

vedro-compota's picture

В этом уроке мы рассмотрим примеры работы с текстовыми файлами (а именно способы чтения данных) средствами ЯП Паскаль.

Программа на Паскаль может читать текстовые файлы и работать с данными, которые в них хранятся, но чтобы рассмотреть пример такой работы, сначала нам нужно определиться где именно положить файл, который мы будем читать.

Где сохранить текстовый файл

(определим его адрес в файловой системе)

Самый простой способ разместить файл — положить его в ту же папку, в которой лежит исполняемый файл вашего проекта. Определить путь к этой папке можно выполнив код:

begin WriteLn(‘Put k failu programmy: ‘); WriteLn(ParamStr(0)); readln(); end.

На экран вам будет выведено что-то вроде (у вас этот путь может быть другим — действуйте по аналогии):

Put k failu programmy: C:UsersTEMP.UIC.012Documentsproject1.exe

Получается, что директория:

C:UsersTEMP.UIC.012Documents

скорее всего доступна для размещения файлов, и потому в ней создадим файл с именем input.txt, который можно будет прочитать, то есть полный путь к нему будет:

C:UsersTEMP.UIC.012Documentsinput.txt

ПРИМЕЧАНИЕ: убедитесь, что в вашей системе отображается расширение файлов — иначе на деле может оказаться, что ваш файл называется не input.txt, а input.txt.txt

Чтение файлов

Теперь после того как мы создали текстовый файл, открыть его написать пару строк и сохранить любым текстовым редактором.
Теперь пришло время рассмотреть минимальный код, который позволяет прочитать содержимое файла от начала до конца построчно:

Читайте также:
Программа для настройки подсветки

Var f1:text; // тип для открытия текстового файла filename, s: string; begin filename := ‘C:UsersTEMP.UIC.012Documentsinput.txt’; // путь к файлу assign(f1, filename); < связывание переменной дескриптора с путём к файлу >reset(f1); // открываем файла для чтения writeln(‘========nachalo faila=====’); while not eof(f1) do // пока не достигнут конец файла begin readln(f1, s); // читаем из него очередную строку writeln(s); // и выводим её в консоль end; writeLn(‘========= konez faila =========’); readln(); end.

Примеры

Пример №1 — чтение содержимого файла с проверкой существовования

Var f1:text; // тип для открытия текстового файла filename, s: string; begin filename := ‘C:UsersTEMP.UIC.012Documentsinput.txt’; // путь к файлу //filename := ‘D:tmpmyinput.txt’; // путь к файлу WriteLn(‘Put k failu programmy: ‘); WriteLn(ParamStr(0)); assign(f1, filename); reset(f1); // попытка открыть файл на чтение с подавлением ошибки if IOResult <> 0 then // если есть ошибки begin writeLn(‘File ‘, filename, ‘ ne naiden!’); end else // если удалось открыть на чтение begin writeLn(‘File ‘, filename, ‘ suchectvuet. I vot ego soderzimoe:’); while not eof(f1) do begin readln(f1, s); writeln(s); end; end; writeLn(‘========= konez faila =========’); readln(); end.

Ещё примеры

  1. Проверка существования файла
  2. Фукция ParamStr() — Путь к файлу и папке программы, определить откуда происходит запуск

Задачи /(самостоятельная работа)

  1. Создайте файл в вашей операционной системе и выведите в консоль всё его содержимое.
  2. У вас есть текстовый файл с информацией об итогах соревнований (каждая строка имеет формат: имя + произвольное число пробелов + балл 1 + произвольное число пробелов + балл 2):

Вася 16 485 Коля 17 555 Юра 18 61 .

— где:
слева указаны имена участников, а справа число баллов.
Первое число в каждой строке — штрафные баллы набранные участниками, а второе число — «положительные баллы», то есть если у нас есть строка:

Vasya N M
fsd334rgd rfg46gdfg ter5tge56 123gergf
fsd334rgd r fg ter5tge56 123gergf
fsd334rgd r16hyj3f7 23tge6f57 123gergf7

  • всегда есть общий корень и это цифра
  • по горизонтали цепочка не разрывается пробелами, соединяется же с помощью последовательностей знака — (тире).
  • по вертикали цепочка не разрывается переносом строк, соединяется же с помощью вертикальных последовательностей символа | (вертикального разделителя).

Размер схемы не более чем 100 на 100 символов.

1——4—————5——-6———7 | | | |——-5———8 | |——-6———7—7——-9——8—1—-5—3
1——4——8———5——-6———7 | | | | | |——-5———8 | | | |———8-8-8—8—-8 | |——-6———7—7 |—————5-5—5—5

Задача: вывести длина самой длинной цепочки.

Источники (что ещё почитать)

  • Ввод/вывод в Паскаль (МЦНМО): http://informatics.mccme.ru/mod/book/vie.

Key Words for FKN + antitotal forum (CS VSU):

  • работа с файлами
  • Паскаль
  • примеры
  • онлайн уроки
  • чтение файла
  • текстовый файл
  • дескриптор
  • файловый дескриптор. открытие файла на чтение
  • $I+
  • построчное чтение
  • reset
  • readln
  • assign

Источник: fkn.ktu10.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru