Робота з файлами в Delphi - Програмні продукти

Короткий опис: У цьому уроці ми будемо працювати з файлами в Delphi. Ми докладно розглянемо, як копіювати, видаляти, перейменовувати файли. Навчимося зчитувати та записувати інформацію до типізованих файлів.

Копіювання файлів за допомогою Delphi.

Приклад: CopyFile("D:sekretBD.txt", "C: ame.txt", true);

У першому параметрі можна вказувати як повний шлях до файла. Якщо вкажемо, наприклад, такий шлях "sekretBD.txt", то наша програма шукатиме цей файл у своєму каталозі. Ім'я та дозвіл потрібно вказувати саме такими, якими вони є у файлу, інакше програма просто не знайде файл. У другому параметрі теж можна вказувати відносний шлях і там ви можете вказати ім'я та розширення файлу таке, яке захочете. Тобто. за допомогою цієї функції можна робити і перейменування теж. Третій параметр відповідає за перезапис файлу. Якщо ми вкажемо true, файл не буде перезаписаний, а якщо false, то програма перезапише файл.

Перейменування файлів за допомогою Delphi

За перейменування файлів відповідає функція RenameFile(). Має 2 параметри. Ось її повний синтаксис RenameFile("шлях до файлу","нове ім'я"); Чесно кажучи, синтаксис цієї функції мене не дуже тішить. У ньому теж у обох параметрах треба вказувати повний шлях. Тобто. якщо ми, наприклад, напишемо так

То він скопіює файл у каталог програми. Тобто. виходить, що вона може виконувати роль копіювання теж. Це трохи дивно.

Видалення файлів за допомогою Delphi

Ну, тут все зовсім просто. Функція, за допомогою якої можна видалити файл, викликається так:

Єдине, що вона завжди 100% видаляє файл. Коли файл захищений, його не зможе видалити.

Робота з типізованими файлами в Delphi

Щотаке типізований файл? Це файл із певною структурою. Зазвичай це структурою виступають записи та базові типи. Загалом, важливо, щоб тип був відомий фіксований розмір, тому тип string застосовувати не можна, потрібно робити так: String [N]. Спочатку нам потрібно оголосити змінну, де зберігатимуться дані з файлу. Робиться це так:

Var f: file of Наприклад, f: file of string[30];

Потім потрібно з'єднатися з файлом. Для цього є команда AssignFile. Для виклику треба прописати два параметри, це змінна, яку ми оголосили вище та шлях до файлу. Наприклад,

Тепер потрібно відкрити файл. Можна відкрити двома способами: з перезатиранням та без. Метод Rewrite відкриває файл, заздалегідь створивши його. Тобто. якщо файлу у вказаному нами шляху перебуватиме, він створить. Якщо там вже був такий файл, він буде видалений і заново створиться чистий файл. Метод Reset відкриває файл і ставить покажчик на початок файла. Але цей метод небезпечний тим, що якщо файлу, вказаного в підключенні, немає, програма вилетить з помилкою. Так що для правильного застосування функції Reset треба сказати компілятор про відключення помилок. Задається це директивою тобто. повний синтаксис функції reset буде таким:

Після цього треба перевірити, був відкритий файл чи ні. Це можна зробити за допомогою функції IOResult. Якщо вона не дорівнює нулю, то все успішно. Повний синтаксис:

Також здійснити перевірку допоможе функція FileExists. У ній потрібно вказати шлях до файла. Для читання файлу служить функція Read (), в якій вказуються два параметри: змінна файлу і тип запису, в нашому випадку це string [30]. Синтаксис:

Для запису у файл служить функція Write(), в якій вказуються такі два параметри: змінна файлу і типзаписи, у разі це string[30]. Синтаксис:

Цілком прочитати весь файл можна за допомогою циклу. Для цього треба використати функцію EOF(). Ця функція повертає одиницю, коли файл закінчився.

While not eof(f) do Read(f,String[30]);

Також є функція seek, за допомогою якої ми можемо перейти на цікавий для нас запис. Наприклад, нам потрібно звернутися до 20 записів і ми робимо так:

Ще є функція truncate, за допомогою якої ми можемо видалити всі записи файлу, починаючи з позиції покажчика. Позицію можна вказати за допомогою функції seek, хто не зрозумів.

Після виконання всіх операцій з файлом, необхідно закрити його за допомогою функції CloseFile(f); Ось і все. На цьому урок закінчено. До зустрічі на сайті!