Робота з файлами в delphi 1

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

У першому параметрі можна вказувати не тільки повний шлях до файлу. Якщо вкажемо, наприклад, такий шлях "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. Якщо вона не дорівнює нулю, то все успішно.
Повний синтаксис:


Reset (f);

If IOresult <> 0 then <ваш код>

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

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

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

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

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

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

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

Посилання по темі