Лекції >> Програмування, комп’ютери і кібернетика >> Введення та виведення даних з використанням текстових файлів

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

Розрізняють два види файлів послідовного та довільного доступу. Перші складаються з елементів різної довжини, між якими стоять роздільники. Щоб знайти елемент такого файлу, необхідно продивитись усі попередні. Файли довільного доступу містять однотипні елементи, як масиви. Знайти довільний елемент можна по його порядковому номеру.

В Паскалі послідовні файли називають текстовими, а файли довільного доступу – типізованими. Програма може опрацьовувати існуючий файл або створити новий, але в любому випадку робота з файлом складається з трьох пунктів:

відкриття файлу;

зчитування або запис;

меру.

В Паскалі послідовні файли називають текстовими, а файли довільного доступу – типізованими. Програма може опрацьовувати існуючий файл або створити новий, але в любому випадку робота з файлом складається з трьох пунктів:

відкриття файлу;

зчитування або запис;

закриття файлу.

Текстові файли

Текстові файли зберігають інформацію у виді послідовності символів. Символи складають рядки довільної довжини. Наприкінці  кожного рядка знаходяться два особливих символи: #13 #10, що відокремлюють рядок від рядка (перевід каретки). Текстові файли широко поширені, їх спроможний створювати любий екранний редактор.

У програмі на Паскалі текстовий файл подає файлова зміна типу TEXT. Її описують реченням

VAR ім'я: TEXT

Файловій змінній призначають ім'я файла за допомогою оператора:

закриття файлу.

Текстові файли

Текстові файли зберігають інформацію у виді послідовності символів. Символи складають рядки довільної довжини. Наприкінці  кожного рядка знаходяться два особливих символи: #13 #10, що відокремлюють рядок від рядка (перевід каретки). Текстові файли широко поширені, їх спроможний створювати любий екранний редактор.

У програмі на Паскалі текстовий файл подає файлова зміна типу TEXT. Її описують реченням

VAR ім'я: TEXT

Файловій змінній призначають ім'я файла за допомогою оператора:

Assign (файлова зміна, ім'я файла),

де ім'я файла - рядок, що містить дискове ім'я файла.

Більше ніде в програмі не з'явиться ім'я файла, усюди його замінить файлова змінна. Тепер файл необхідно відчинити. Текстовий файл можна відчинити операторами:

для читання - ReSet (файлова змінна);

для запису - ReWrite (файлова змінна);

для поповнення - Append (файлова змінна).

У файл, відкритий для запису або поповнення, можна тільки писати, із файла, відкритого для читання, можна тільки читати. Якщо необхідно прочитати з файла, відкритого для запису, ядка (перевід каретки). Текстові файли широко поширені, їх спроможний створювати любий екранний редактор.

У програмі на Паскалі текстовий файл подає файлова зміна типу TEXT. Її описують реченням

VAR ім'я: TEXT

Файловій змінній призначають ім'я файла за допомогою оператора:

Assign (файлова зміна, ім'я файла),

де ім'я файла - рядок, що містить дискове ім'я файла.

Більше ніде в програмі не з'явиться ім'я файла, усюди його замінить файлова змінна. Тепер файл необхідно відчинити. Текстовий файл можна відчинити операторами:

для читання - ReSet (файлова змінна);

для запису - ReWrite (файлова змінна);

для поповнення - Append (файлова змінна).

У файл, відкритий для запису або поповнення, можна тільки писати, із файла, відкритого для читання, можна тільки читати. Якщо необхідно прочитати з файла, відкритого для запису, його спочатку треба закрити оператором Сlose (файлова змінна), а потім знову відчинити вже для читання.

Читання з текстового файла

Читання з файла виконується добре знайомим нам оператором READ. Якщо перед списком вводу в операторі READ стоїть файлова змінна, він зчитує дані не з клавіатури, а з файла. Наприклад,

Var

  F: Text;

  A, B, C: Integer;

Read (a,b,c);  {введення з клавіатури}

Read (f,a,b,c);  {зчитування з файла}

Текстовий файл для оператора READ таке ж джерело символів, як і клавіатура, тільки ці символи випливають один за одним не в часі, а в просторі файла. В часі можна переміщатися лише в одну сторону, по файлу - теж. Прямування припускається послідовне, від початку до кінця, тому текстові файли називають послідовними.

Щоб усвідомити, що прочитає з файла той або інший оператор READ, уведемо поняття покажчика файла. Фактично покажчик - це номер чергового символу файла, але краще уявити його у вигляді стрілки, спрямованої у визначену точку файла.

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

Як дізнатися, чи можна ще читати з файла? Для цього в Паскалі є логічна функція EOF (файлова змінна). Вона повертає True, якщо досягнутий кінець файла, і False у противному випадку. Назва функції це абревіатура слів "End Of File" - кінець файла.

Додатковий оператор читання READLN вводить усе, передбачене списком вводу і просуває покажчик до початку нового рядка.

Читання з текстового файла з висновком на екран.

Var

  F: Text;

  S: String:

Begin

  Assign (F,'XXX. TXT);

  Reset(F):

  While Not Eof (F) Do

    Begin

      ReadLn(F, S); {ввід з файлу}

      WriteLn (S); {вивід на екран}

    End;

  Close(F)

End.

Запис у текстовий файл

Запис у текстовий файл виконується оператором WRITE, у котрому перед списком запису стоїть файлова змінна. Виведена інформація приєднується до того, що була виведена у файл із моменту його відкриття.

Бажаючи створити новий файл, його відчиняють оператором REWRITE. Якщо ж хочуть доповнити вже існуючий файл, відкриття виконують оператором APPEND. Відкриття існуючого файла оператором REWRITE призведе до втрати того, що знаходилося там раніше.

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

Додатковий оператор запису WRITELN виводить усе, передбачене списком виводу і також символи #13#10.

Ввод з клавіатури і запис у текстовий файл.

  F: Text;

  S: String;

Begin

  Assign (F,'XXX.TXT’);

  Rewrite(F); {відкриття файла}

  ReadLn (S); {ввід з клавіатури}

  While S=" Do

    Begin

      WriteLn (F,S); {запис у файл}

      ReadLn (S);

    End;

  Close (F) {закриття файла}

End.

Типізовані файли

Файли довільного доступу мають назву типізованого файлу. Всі елементи такого файлу одного типи, а значить і розміру. Завдяки цьому можливий довільний доступ до елементів цього файлу — по порядковому номеру елемента однозначно визначають його розташування. Нумеруються елементи файлу цілими числами починаючи з нуля.

Типізована файлова змінна потребує опису реченням:

VAR ім’я FILE OF базовий тип.

Зв’язок файлової змінної з даними в файлі виконується так само, як і для текстових файлів, оператором Assign.

У типізованому файлі дозволяється чергування операцій запису та зчитування. Оператором Reset відкривається вже існуючий файл, а оператором Rewrite — створюється новий. Закриваються оператором Close. Оператори Read і Write використовуються так само.

Довільний доступ до елементів файлу виконується оператором

SEEK(файл, номер елементу: Longint)

Для визначення розташування курсору в файлі використовують функцію FilePos (файл): Longin, а для визначення кількості записів: FileSize (файл): Longin.

Схожі матеріали
05.10.2012 Введення та виведення даних, розробки та опису лінійних програм.
20.12.2011 Pascal - лабораторні роботи - для студентів III-го курсу (лекції Ляшенко Б.М.)
12.12.2010 Робота з підпрограмами
12.12.2010 Робота з рядковими та символьними величинами.
12.12.2010 Робота з циклічними програмами
12.12.2010 Робота з масивами даних.
12.12.2010 Розробка та описання програм з розгалуженнями
12.12.2010 Початки програмування
12.12.2010 Етапи розв’язання задач з використанням ЕОМ
12.12.2010 Поняття про алгоритм

Тести даної категорії
12.12.2010 ПОЧАТКИ АЛГОРИТМІЗАЦІЇ. ВСТУП ДО ПРОГРАМУВАННЯ

Останні створені тести
28.03.2016 Ахметов Р. Ф. Основи наукових досліджень. Тести. 500 питань
16.11.2015 Олімпійські ігри Стародавньої Греції. Відродження олімпійських ігор. Олімпійський рух сучасності.
28.10.2015 British Writers. Тест для студентів 4 курсу ННІ педагогіки
27.10.2015 The Passive Voice. Тест для студентів 2 курсу ННІ педагогіки
27.10.2015 Articles. Тест для студентів 1 курсу неспеціальних факультетів
27.10.2015 The Active Voice. Тест для студентів 2 курсу ННІ педагогіки
08.10.2014 INTEL
22.10.2012 Цивільний захист
28.09.2012 Питання для поточного контролю
26.09.2012 Мовнокомунікативна компетентність. Орфографічна складова
Рекомендовані лекції
12.12.2010 Робота з рядковими та символьними величинами
28.09.2014 Лекції з курсу "Основи психокорекції"
09.03.2016 ОС та СП. Тема 3. Керування пам'яттю. Тези
22.02.2016 ОС та СП. Тема 2. Процеси та потоки. Слайди
27.09.2012 Літературознавство як наука
05.04.2016 ОС та СП. Тема 7. Міжпроцесова та міжпотокова взаємодія. Тези
28.09.2014 Лекції з курсу "Диференціальна психологія"
12.12.2010 Використання підпрограм та функцій користувача
28.09.2014 Лекції з курсу "Сучасні підходи у психології особистості" для студентів VІ курсу спеціальностей 8.03010201 Психологія та 8.03010301 Практична психологія
12.12.2010 Структурний підхід до алгоритмізації