Как удалить файл паскаль

Обновлено: 07.07.2024

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

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

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

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

1 Общие операции по работе с файлами

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

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

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

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

Режим чтения

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

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

Конец файла

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

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

Режим записи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 Типизированные файлы

Файл, определенный стандартным или пользовательским типом данных, называется типизированным. Общая форма объявления типизированных файлов имеет вид:

Var <имя файла>: File of <тип компонент>;

Здесь тип компонент может быть любым типом данных, определенных в Pascal, но только не файловым. Для работы с типизированными файлами используются уже знакомые нам процедуры и функции: Write, Read, Seek, Filesize, Filepos , а также процедура Truncate :

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

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

Одной из главных особенностей типизированного файла является возможность прямого обращения к его отдельным компонентам. Это достигается за счет, того что заранее известен тип компонент файла. Рассмотрим два примера кода, в первом из которых обращение к элементам файла происходит последовательно, а во втором прямо.

Пример: вычислить среднее арифметическое элементов файла.

Пример 2: поменять строки в файле местами.

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

4 Бестиповые (нетипизированные) файлы

Бестиповые файлы предназначены для записи участков памяти компьютера на внешний носитель и считывания их в память. В отличие от типизированных файлов, нам не нужно знать информация какого типа хранится в них. А все потому, что данные из файлов, не имеющих типа, считываются в виде байт, после чего они «подстраиваются» под переменную, в которую происходит считывание.

Общая форма записи нетипизированных файлов

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

отличается от типизированных отсутствием части of <тип данных> . Кроме того, немного изменяется принцип действия процедур Reset и Rewrite . К ним прибавляется второй параметр типа Word:

Здесь «значение» — это новый размер буфера, который по умолчанию равен 128 байтам. В качестве минимального значения можно указать 1 байт, а максимального — 64 кбайт (число в байтах).

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

Процедура BlockRead

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

Общая форма записи:

BlockRead(<имя файловой переменной>, <x>, <количество байт>, <y>);

x, y – обычные переменные, в первую помещается прочитанные данные, во вторую – количество считанных байт. В случае удачи y (y – необязательный параметр) будет иметь тоже значение, что и третий параметр.

Процедура BlockWrite

Для записи информации в бестиповый файл предназначена процедура BlockWrite :

BlockWrite(<имя файловой переменной>, <x>, <количество байт>, <y>);

Параметры процедуры BlockWrite точно такие же, как и у BlockRead . Да и принцип их одинаков, за исключением того, что первая записывает данные в файл, а вторая считывает их из него.

В следующей программе данные сначала записываются в нетипизированный файл, а затем выводятся из него посредством рассмотренных нами операций.

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

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

  • Весь контент сайта(все содержимое хостинга)
  • Полные права на доменное имя сайта(сделаем трансфер)
  • Копирайт сайта на большом количестве сторонних ресурсов так как сайту уже более 4-х лет
  • Готовый движок форума и все исходные тексты системы управления сайтом
  • Все исходные тексты ПО которое опубликовано на сайте
  • Все почтовые ящики доменного имени
  • Все домены третьего уровня

Дополнительную информацию о статистике посещения, клиентах, вы можете узнать написав на почту koder@koder.kz

Добавил admin | Категория Pascal за 12 уроков, перевод | 06 Февраля 2014

В этом уроке мы с вами рассмотрим:

  • Чтение из файла
  • Создание и запись в файл
  • Добавление данных в существующий файл
  • Удаление файлов
  • Использование директив ,
  • Создание и удаление вложенных каталогов
  • Описание функции FileSize()

Введение
Файл содержит данные которые в свою очередь хранятся на жестком диске подключенному к компьютеру. Операционная система предоставляет инструменты для работы с файлами(файловой системой). Текстовые файлы как правило могут содержать текст и графическую информацию, комбинированную. Для работы с текстовыми файлами используются текстовые процессоры которые имеются в операционной системе. Текстовые файлы сохраняются на жестком диске компьютера с расшитением *.TXT или *.DOC, *.DOCX. файлы с расширением *.TXT создаются с помощью стандартного текстового процессора Notepad. Но будем помнить что некоторые программы позволяют нам сохранять так сказать отформатированный текст, или текст с картинками, для таких целей NOTEPAD естественно не подходит. Для такого текста используются специальные пакеты программ, такие например как Microsoft Word, Open Office и другие. Такие программы используют несколько иной подход для создания файла нежели NOTEPAD. Таким образом файл созданный в Microsoft Word невозможно правильно открыть в NOTEPAD, а вот файл *.TXT легко открывается в текстовом редакторе Word. Программы которые могут читать файлы расширения *.Ххх называют программами просмоторщиками файлов.
Чтение из файла
Прочитать информацию из файла на языке Паскаль не составит большого труда. Обратите внимание что в Паскале нет никаких зарезервированных слов которые используются для чтения или записи информации в файл. Для этих целей используются уже знакомые нам readln() and writeln(). И так пример, как читать информацию из файла

И так что мы с вами написали. У нас появилась новая переменная типа Text. Такая переменная применяется когда вы хотите получить доступ из своей программы к определенному текстовому файлу. Переменная FileName используется для ввода пользователем имени файла(readln(FileName);). Связь переменной UserFile с файлом, путь к которому указан в переменной FileName осуществляется с помощью функции Assign полный текст будет такой Assign(UserFile, FileName + '.txt'); после этого происходит чтение из файла в цикле Repeat который завершается только после того как достигнут конец файла Eof(UserFile). Чтение из файла производиться функцией Readln(UserFile,TFile); где указывается файл из которого нужно считать строку и переменная в которую мы считаем эту строку. Процеду Writeln(TFile); выводит эту строку к нам на экран.
Создание файла, добавление данных
Давайте сразу посмотрим пример создания и добавления информации в файл.

В приведенном выше примере мы создаем файл с названием 'Textfile' на диске C:\. Создаться файл функцией Rewrite(UserFile); после чего в файл записываются строки Writeln(UserFile,'PASCAL PROGRAMMING');… Writeln(введите свою строку в ваш файл:'); тут первым параметром является файл в который записывается информация и вторым информация которую нужно добавить в файл. После чего мы считываем пользовательскую строку Readln(Txt);, добавляем пустую строку в наш файл Writeln(UserFile,'');потом говорим что сейчас будет пользовательская статья Writeln(UserFile,'The user entered this text:');, записываем пользовательскую статью Writeln(UserFile,Txt); И закрываем файл Close(UserFile);. Помните, файл всегда нужно закрывать, после окончания работы и открывать перед началом работы.
Добавление данных в существующий файл
Для того что бы добавить данные в существующий файл, его нужно открыть на чтение, добавить нужную информацию и закрыть, но не перезаписывать. Некоторые начинающие программисты на самом деле плохо понимают как не перезаписать файл с данными которые они хотели ввести, это общая проблема:

Выполните программу несколько раз, откройте файл 'C:\ADDTEXT.TXT' и посмотрите что в нем. Вы видите только одно предложение? ReWrite(UFile); функция которая открывает файл на перезапись.
Понимаете да что нам не подходит открытие файла с помощью ReWrite(UFile);, нужна какая то новая функция, и она есть это append(f) где F это переменная типа текст, ну мы с вами проходили уже это в этом же уроке. Теперь наша программа будет выглядеть так:

Выполните программу несколько раз для того что бы увидеть изменения.
Удаление файлов
В Паскале для того что бы удалить файл используется зарезервированное слово Erase(f) где F может быть путем к файлу('C:\ADDTEXT.TXT') или самим файлом, переменной типа текст. Важным замечанием будет то что файл удаляется совсем, то есть в корзине своего компьютера вы его не найдете.
В отличии от других функций для работы с файлами функция Erase(f) не открывает файл для его удаления, так что вам не нужно закрывать файл после его удаления.
Пример программы:

Если наш файл не найден функция IOResult вернет значение 0 а если файл не найдет значит функция вернет отличное от нуля значение.
ВАЖНО: если файл успешно найден, файл откроется и вы должны поработав с ним закрыть его, как показано в примерах выше. А вот если он не найден то здравый смысл подсказывает что он не может быть открыт, соответственно и закрывать и работать нам не с чем. Внимательно посмотрите пример еще раз, если у вас есть какие то вопросы, пожалуйста задавайте их в комментариях. Запустите программу несколько раз, с существующими и не существующими файлами, посмотрите на результат работы.
Директивы компилятора рекомендуется использовать со всеми функциями для открытия файлов 'rewrite()', 'append()', 'erase()', а так же 'FSearch()'. Обязательно попрактикуйте этот урок, повторюсь, в случае вопросов обязательно оставляйте их в коментариях. Создание и удаление вложенных каталогов
В языке Pascal есть функции для работы с каталогами. С помощью их можно создавать или удалять каталоги с жестких дисков компьютера. Что бы создать директорию в Паскале используется функция 'createdir(c)' где С имеет тип PChar. PChar является переменной указателем, которая содержит адрес динамической переменной заданного типа. Каталог создается следующим образом:
NewDir := FSearch('C:\Pascal Programming',GetEnv('')); if NewDir = '' then CreateDir('C:\Pascal Programming');
давайте теперь пример, сразу в примере разберем функцию FSearch:

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

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

Для работы с внешними файлами в блоке описания необходимо определить файловую переменную, которая будет представлять файл внутри программы var f:text;

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

В данном случае файловая перемененная типа text имеет имя f.

Для работы с файлами можно использовать следующие операции:

- assign для установления связи между файловой переменной и внешним именем файла.

Например: assign (имя_файловой_переменной, имя_файла);

- erase для удаления файла с диска.

Например: erase (имя_файловой_переменной);

- reset открытие существующего файла для ввода информации.

Например: reset (имя_файловой_переменной);

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

Например : rewrite (имя_файловой_переменной).

- close закрытие файла по окончании работы с ним.

Например: close (имя_файловой_переменной).

Для работы с файлами используются стандартные функции:

- eof нахождение конца файла,

- eoln нахождение конца строки данных.

Считывание информации из файла и занесение информации в файл организуется стандартными операторами:

write (имя_файловой_переменной, имя_записываемой_переменной) записывает символ в файл, связанный с файловой переменной,

readln (имя_файловой_переменной, имя_читаемой_переменной) чтение из текстового файла строки.

Содержимое файла можно выводить на экран, на принтер, в файл.

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

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

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

Удаление с жесткого диска (винчестера) файлов с помощью программы, созданной на языке Паскаль.

write('Введите имя удаляемого файла с расширением ');

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

2. Программа создает новый текстовый файл и записывает в него информацию.

При создании файла в программе дайте ему расширение pas, тогда Вы сможете обратиться к файлу, не выходя из Паскаль АВС.

uses crt; var f:text;

write('Введите имя создаваемого файла (латинскими буквами)');

writeln('Введите текст, который нужно записать в файл: ');

writeln(' По окончании нажми Esc');

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

3. Программа читает из текстового файла и выводит содержимое на экран.

write('Введите имя файла (латинскими буквами) из которого нужно прочесть данные ');

for q:=1 to length(a) do

writeln(' чтение информации завершено.');

Задачи для самостоятельного решения

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

2. В любую имеющуюся программу добавить блок запроса пароля и сравнивать его с хранящимся в файле, если пароль не совпадает, то программу не запускать.

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

Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.

Рассмотренные в этом разделе способы работы с файлами универсальны в том смысле, что могут использоваться в приложениях любых версий Windows, в консольных приложениях и даже в приложениях, созданных на Turbo Pascal. Но по эффективности и сервису они, конечно, несопоставимы с возможностями, рассмотренными в разд. 10.9.

Удаление файла с диска осуществляется процедурой Erase или функцией DeleteFile. Пользоваться процедурой Erase имеет смысл только в том случае, если вы работали с данным файлом с помощью файловой переменной, а затем должны удалить этот файл. Процедура объявлена следующим образом:

Например, удаление из текущего каталога файла с именем File.tmp осуществляется операторами

Обычно более удобна функция DeleteFile:

Она удаляет файл с именем FileName. Если удалить файл невозможно или указанного файла нет, функция возвращает false.

Сочетание процедуры Erase или функции DeleteFile с функциями поиска файлов (см. разд. 10.6) легко позволяет организовать удаление из заданного каталога всех файлов, удовлетворяющих некоторому шаблону:

ires: integer; begin

Например, вызов такой процедуры оператором

удалит из каталога c:\tmp\ все файлы с расширением .tmp. Подобные процедуры широко используются при завершении приложения для зачистки мусора - удаления с диска временных файлов. В разд. 10.6 приведена более сложная процедура, обеспечивающая удаление файлов, удовлетворяющих шаблону, не только из указанной папки, но и изо всех папок, вложенных в нее.

Удаление файлов рассмотренными функциями приводит к их полному удалению, а не к перемещению в корзину, из которой их потом можно восстановить. Удаление файлов с переносом их в корзину рассмотрено в разд. 10.9.

Копирование файлов средствами функций Pascal может сводиться к созданию файла-приемника, после чего содержимое файла-источника читается по частям или целиком в некоторый буфер и записывается в файл-приемник. Следующая функция в приложении VCL Win32 осуществляет подобный подход:

Читайте также: