Файлы в языке Делфи. Процедуры и функции языка Делфи для работы с тестовыми файлами
Процедуры и функции в программе на языке Delphi. Глобальные и локальные переменные.
Процедура Delphi просто выполняет требуемые операции, но никаких результатов своих действий не возвращает. Результат - в тех изменениях, которые произошли в программе в процессе выполнения этой процедуры. В частности, процедура может поменять значения переменных, записать новые значения в ячейки компонентов, сделать запись в файл и т.д.
Функция Delphi также позволяет выполнить всё перечисленное, но дополнительно возвращает результат в присвоенном ей самой значении. То есть вызов функции может присутствовать в выражении справа от оператора присваивания. Таким образом, функция –более универсальный объект! Описание подпрограммы состоит из ключевого слова procedure или function, за которым следует имя подпрограммы со списком параметров, заключённых в скобки. В случае функции далее ставится двоеточие и указывается тип возвращаемого значения. Обычная точка с запятой далее - обязательна! Сам код подпрограммы заключается в "логические скобки" begin/end. Для функции необходимо в коде присвоить переменной с именем функции или специальной зарезервированной переменной Result (предпочтительно) возвращаемое функцией значение.
Параметры - это список идентификаторов, разделённых запятой, за которым через двоеточие указывается тип. Если списков идентификаторов разных типов несколько, то они разделяются точкой с запятой. Всё, как и в случае обычного описания данных. Это так называемые формальные параметры. При вызове подпрограммы они заменяются на фактические - следующие через запятую данные того же типа, что и формальные. Параметры в описании подпрограммы могут и отсутствовать, тогда она оперирует данными прямо из основной программы.
Любые идентификаторы, введенные внутри какого-либо блока (процедуры, функции) для описания переменных, констант, типов, процедур, называются локальными для данного блока. Такой блок вместе с вложенными в него модулями называют областью действия этих локальных переменных, констант, типов и процедур. Это данные - переменные, константы, подпрограммы, которые используются и существуют только в момент вызова данной подпрограммы. Они так же должны быть описаны в этой подпрограмме. Место их описания - между заголовком и началом логического блока - ключевым словом begin. Имена локальных данных могут совпадать с именами глобальных. В этом случае используется локальная переменная, причём её изменение не скажется на глобальной с тем же именем.
Глобальные переменные - это переменные, которые доступны всей программе, включая подпрограммы (пользовательские функции).
Файлы в языке Делфи. Процедуры и функции языка Делфи для работы с тестовыми файлами.
Delphi работает с файлами (изменят, удаляет, копирует, переименовывает).
Копирование файлов в Delphi
За копирование файлов в Delphi отвечает функция CopyFile, она имеет следующий синтаксис: CopyFile(Начальный_файл, Конечный_файл, Перезапись);
Где, Начальный_файл - Полный путь с указанием имени и расширения к файлу, который будет копироваться. Конечный_файл - Полный путь с указанием имени и расширения куда копируем. Перезапись – Если такой файл уже существует, то будет ли он перезаписан (true - не будет, false - будет).
Пример:CopyFile('C:\1.txt', 'D:\1.txt', true);
Переименование файлов в Delphi
За переименование файлов в Delphi отвечает функция RenameFileсинтаксис у неё очень простой и чем то схож с функцией копирования.
RenameFile('Начальное_имя','Конечное_имя') Начальное_имя - Полный путь с указанием имени и расширения, к файлу, который будет переименован. Конечное_имя - Полный путь к файлу с указанием нового имени и расширения.
Пример:RenameFile('c:\1.txt','c:\1Rename.txt');
Перемещение файлов в Delphi
Что бы переместить файл, в Delphi используется функция MoveFile. Давайте посмотрим на её синтаксис: MoveFile(Начальный_файл, Конечный_файл);
Где, Начальный_файл - Полный путь с указанием имени и расширения к файлу, который будет перемещаться. Конечный_файл - Полный путь с указанием имени и расширения куда перемещаем.
Здесь также следует обратить внимание на то что при указании второго параметра (Конечный_файл) мы указываем не просто папку куда хотим переместить файл, но и еще желаемое имя с расширение файла. Т.е если Начальный файл c:\1.txt, то если указать имя конечного файла как d:\1Paste.txt то в процессе перемещения наш 1.txt переименуется в 1Paste.txt.
Удаление файлов в Delphi
Наверное, самая простая из рассмотренных выше функций это функция удаления, DeleteFile.
DeleteFile('Имя_файла'); Имя_файла - здесь предполагается указание полного пути, имени и расширения удаляемого файла.
Пример: DeleteFile('c:\1.txt');
Технология работы с файлами в системе Delphi требует определённого порядка действий:
1. Прежде всего файл должен быть открыт. Система следит, чтобы другие приложения не мешалиработе с файлом. При этом определяется, в каком режиме открывается файл - для изменения или только считывания информации. После открытия файла в программу возвращается его идентификатор, который будет использоваться для указания на этот файл во всех процедурах обработки.
2. Начинается работа с файлом. Это могут быть запись, считывание, поиск и другие операции.
3. Файл закрывается. Теперь он опять доступен другим приложениям без ограничений. Закрытие файлагарантирует, что все внесённые изменения будут сохранены, так как для увеличения скорости работы изменения предварительно сохраняются в специальных буферах операционной системы.
Все операции в программе производятся только с помощью связанной с ним файловой переменной.
Assign(f, FileName)
связывает файловую переменную f с физическим файлом, полное имя которого задано в строке FileName. Установленная связь будет действовать до конца работы программы, или до тех пор, пока не будет сделано переназначение.
После связи файловой переменной с дисковым именем файла в программе нужно указать направление передачи данных (открыть файл). В зависимости от этого направления говорят о чтении из файла или записи в файл.
Reset(f)
открывает для чтения файл, с которым связана файловая переменная f. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента. Процедура завершается с сообщением об ошибке, если указанный файл не найден.
Если f - типизированный файл, то процедурой reset он открывается для чтения и записи одновременно.
Rewrite(f)
открывает для записи файл, с которым связана файловая переменная f. После успешного выполнения этой процедуры файл готов к записи в него первого элемента. Если указанный файл уже существовал, то все данные из него уничтожаются.
Close(f)
закрывает открытый до этого файл с файловой переменной f. Вызов процедуры Close необходим при завершении работы с файлом. Если по какой-то причине процедура Close не будет выполнена, файл все-же будет создан на внешнем устройстве, но содержимое последнего буфера в него не будет перенесено.
EOF(f): boolean
возвращает значение TRUE, когда при чтении достигнут конец файла. Это означает, что уже прочитан последний элемент в файле или файл после открытия оказался пуст.
Rename(f, NewName)
позволяет переименовать физический файл на диске, связанный с файловой переменной f. Переименование возможно после закрытия файла.
Erase(f)
уничтожает физический файл на диске, который был связан с файловой переменной f. Файл к моменту вызова процедуры Erase должен быть закрыт.
IOResult
возвращает целое число, соответствующее коду последней ошибки ввода - вывода. При нормальном завершении операции функция вернет значение 0. Значение функции IOResult необходимо присваивать какой-либо переменной, так как при каждом вызове функция обнуляет свое значение. Функция IOResult работает только при выключенном режиме проверок ошибок ввода - вывода или с ключом компиляции {$I-}.