Файловые переменные

Надпись file

С файловыми переменными тесно связаны и сами файлы. Но для чтения, записи и создания файлов нужно определиться с его типом. В Delphi эту тему мы рассмотрим более подробнее. Ведь есть множество таких форматов, которые открыть нелегко (а может даже и невозможно) с помощью посторонних приложений.

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

  1. Текстовый файл var f:text;
  2. Типизированный файл var имя:file of тип;
    Предварительно можно определить новый тип данных
  3. Бестиповый файл var имя:file.

Функции для обработки файлов:

Функция Описание
Assign(f,s) Процедура, связывающая файловую переменную f, с полным именем файла s.

Образец:
var f:file of real;
Begin
Assign(f,’c:TPabc.txt’);
Eof(f) Функция, для проверки достижения конца файла.

Образец:
While not EOF(f) do Begin {пока не достигнут конец файла делай…}
Reset(f) Файл f открыт для чтения и доступен его первый элемент, далее можно выполнять чтение и запись информации из файла.
Rewrite(f) Процедура, которая открывает и очищает файл для новой записи.
Close(f) Закрывает файл. После записи информации в файл его необходимо обязательно закрыть, при чтении закрывать файл не обязательно.
Rename(f,s) Процедура переименования файла, где f – файловая переменная, s – новое имя файла (строковая переменная).
Erase(f) Процедура для удаления файла связанного с переменной f. Для корректного выполнения удаления, файл должен быть закрыт.
Append(f) Процедура для добавления информации в конец файла.
Read(f,x1,x2,…,xn) Read(f,x) Операторы, которые последовательно считывают компонент из файла в указанные переменные. Процедура read не проверяет, достигнут ли конец файла. За этим нужно следить с помощью функции EOF.
Write(f,x1,x2,…,xn) Write(f,x) Оператор последовательно записывающий в файл значения переменных.

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

  • Для того, чтобы создать файл, необходимо:
  1. Описать файловую переменную.
  2. Связать ее с физическим файлом.
  3. Открыть файл для записи.
  4. Внести необходимую информацию в файл (пользуясь циклом FOR).
  5. Обязательно закрыть файл.
  • Для считывания информации из файла нужно:
  1. Описать файловую переменную.
  2. Связать ее с физическим файлом.
  3. Открыть файл для чтения.
  4. Считать необходимую информацию (проверить, достигнут ли конец файла).
  5. Закрыть файл.

В Delphi не раз получается, что открывается сначала один файл, затем другой и в итоге компилятор выдает ошибку. Почему? Дело в том, что после считывания информации из первого файла программист забывает его закрыть. Поэтому, чтобы в будущем не возникало никаких ошибок, давайте будем всегда его закрывать, независимо от того открыт он для чтения или же для записи.

Полный код программы, показывающий запись N действительных чисел в файл:

Создание файлов через Паскаль

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

Чтение файлов на Паскаль

Интересно, что если открыть этот полученный файл вещественного типа с помощью «Блокнот», то будет что-то вроде этого:

ѓ ѓ @Ѓ ‚ „ „ „ ‚ @ѓ ѓ `

А вот если тип файла будет текстовым (FILE OF TEXT), то данные легко отобразятся в «Блокноте». Напомним, что при вещественном типе файла, значения можно вводить только с помощью чисел (в том числе и дробных), а вот если тип файла текстовый – вводить можно любой символ, который есть на клавиатуре.

Попробуйте поэкспериментировать с различными типами файла (real, integer, byte, text, word, longint, single, double, extended).

Задания:

  • Увеличить число, находящееся в текстовом файле input.txt, в два раза. Результат записать в файл output.txt.
  • В единственной строке файла input.txt записано через пробел два числа в следующем виде: 2 3. Записать в файл output.txt сумму этих чисел.
  • Дан текстовый файл input.txt, состоящий из двух строк. Первая строка хранит одно число - количество элементов массива (n:integer), вторая - элементы массива. Разработать программу, которая наименьший элемент массива поместит на первое место, наименьший из оставшихся - на последнее, следующий по величине - на второе место, следующий - на предпоследнее и так далее - до середины массива. Результат записать через пробел в одну строку выходного файла output.txt. Пример:
    INPUT.TXT OUTPUT.TXT
    5 1 2 3 4 5 1 3 5 4 2


<< Предыдущая статья                                     Следующая статья >>

Опубликовано:

Читайте также:
Заказывайте товары и услуги:

Комментарии (2)
Оставить комментарий
this stuff is good
Хотелось бы видеть надпись — to be continued…
Немного о компьютере (администратор)
Да, согласен, теорию можно продолжать до бесконечности. Однако теорию нужно как то и на практике применять. Именно поэтому практическое продолжение следует! <a href="http://fortran-new.ru/pascaldelphi/ustanovka-borland-delphi-7-na-kompyuter/" rel="nofollow">http://fortran-new.ru/pascaldelphi/ustanovka-borland-delphi-7-na-kompyuter/</a>