Відкриття файлу для виведення, глава 7

Відкриття файлу для виведення

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

Можливі такі режими відкриття файлу для запису в нього даних:

  • перезапис (запис нового файлу поверх існуючого або створення нового файлу);
  • додавання в існуючий файл.

Для того щоб відкрити файл в режимі створення нового файлу або заміни існуючого, необхідно викликати процедуру Rewrite (f), де f - файлова змінна типу TextFile.

Для того щоб відкрити файл в режимі додатково до вже створених даних, що знаходяться в цьому файлі, потрібно викликати процедуру Append (f), де f - файлова змінна типу TextFile.

На рис. 7.1 наведено діалогове вікно програми, яка виконує запис або додавання в текстовий файл.

Мал. 7.1. Діалогове вікно програми записи-додавання в файл

У лістингу 7.1 приведена процедура, яка запускається натисканням командної кнопки Записати. Вона відкриває файл в режимі створення нового або заміщення існуючого файлу і записує текст, що знаходиться в полі компонента Memo1.

Файл потрібно ввести під час роботи в полі Editl. Можна задати визначене ім'я файлу під час розробки форми програми. Для цього треба привласнити значення, наприклад test.txt, властивості Edit1.Text.

Лістинг 7.1. Створення нового або заміщення існуючого файлу

procedure TForm1.Button1Click (Sender: TObject);

f: TextFile; // файл

fName: String [80]; // ім'я файлу

Rewrite (f); // відкрити для перезапису

for i: = 0 to Memol.Lines.Count do // рядки нумеруються з нуля

CloseFile (f); // закрити файл

MessageDlg ( 'Дані записати в файл', mtlnformation, [mbOk], 0);

У лістингу 7.2 приведена процедура, яка запускається натисканням командної кнопки Додати. Вона відкриває файл, ім'я якого зазначено в поле Edit1, і додає в нього вміст поля Memol.

Лістинг 7.2. Додавання в існуючий файл

procedure TForm1.Button2Click (Sender: TObject);

f: TextFile; // файл

fName: String [80]; .// ім'я файлу

i: integer; begin

Append (f); // відкрити для додавання

for i: = 0 to Memo1.Lines.Count do // рядки нумеруються з нуля

CloseFile (f); // закрити файл

MessageDlg ( 'Дані ДОДАНО в файл', mtInformation, [mbOk], 0);

Схожі статті