Функції для роботи з файлами.
При роботі з відкритими для читання текстовими файлами можна використовувати наступні функції: · Eoln(<файлова_змінна>) – повертає істину, якщо при зчитуванні даних оператором Read(<файлова_змінна>, …) досягнуто кінець рядку; · Eof(<файлова_змінна>) – >) – повертає істину, якщо при зчитуванні даних операторами Read(<файлова_змінна>, …) або Readln(<файлова_змінна>, …) досягнуто кінець файлу;
Для прикладу розглянемо програму яка зчитує фал по одному символу і виводить його зміст на екран: ProgramName_81; Var f : text; {змінна типу текстовий файл} ch : char; {символьна змінна} Begin Assign(f, ’C:\MyFiles\Text.txt’); {зв’язує змінну f з файлом} Reset(f); {відкриває файл для читання} While NotEof(f) do{поки не кінець файлу} Begin Read(f,ch); {зчитуємо з файлу один символ в змінну ch} Write(ch); {виводимо зчитаний символ на екран} end; End.
· Seekeoln(<файлова_змінна>) – пропускає всі пробіли та символи табуляції до кінця рядка або першого значущого символу, і повертає True, якщо досягнуто кінця рядка; · Seekeof(<файлова_змінна>) – пропускає всі пробіли, символи табуляції та кінця рядка до кінця файлу або значущого символу, і повертає True, якщо досягнуто кінця файлу;
Приклад 8. Приклад 8. Створіть файл f дійсних чисел від А до В с кроком х (значення вводяться з клавіатури). Проаналізувавши в програмі створений файл створити два нові файли, що містять квадрати та куби цих чисел. 1. Спочатку треба зчитати числа a, b та x за допомогою процедури Read. Read(a, b, х);
2. Потім створити новий файл для запису. Assign(f, ’D:\F0.txt’); {зв’язує змінну f з файлом F0} Rewrite(f); {відкриває файл для запису}
3. За допомогою циклу While запишемо в нього числа a від b до з кроком x. While a<=b do{поки a не більше b} Begin Write(f, a:7:4, ’ ’); {запишемо в f нове значення a, відокремлюючи від попереднього пробілом} a := a + x; {збільшуємо значення a на x} end;
4. Закриємо файл для запису за допомогою Close(f). 5. Відкриємо цей же файл для читання. Reset(f);
6. Створимо для запису квадратів і кубів чисел нові файли. Assign(f2, ’D:\F2.txt’); Assign(f3, ’D:\F3.txt’); Rewrite(f2); Rewrite(f3);
7. Тепер за допомогою циклу зчитаємо числа з файлу f та запишемо значення квадратів в файл f2, а кубі – в файл f3. while Not Eof(f) do{поки не кінець файлу} Begin Read(f, x); {зчитуємо з файлу f число в змінну х} Write(f2, x*x:10:3, ’ ’); {записуємо квадрат х в f2} Write(f3, x*x*x:10:3, ’ ’); { записуємо куб х в f3} end;
8. В кінці програми не забудьмо закрити всі три файли. 9. Повний текст програми.
ProgramLaba_8; Var f, f2, f3 : text; {файлові змінні} a, b, x : real; {дійсні змінні} Begin Writeln(’Введіть значення a, b, х’); Readln(a, b, х); {зчитаємо значення a, b, х}
Assign(f, ’D:\F0.txt’); {зв’язує змінну f з файлом F0.txt} Rewrite(f); {відкриває файл для запису} While a<=b do{поки a не більше b} Begin Write(f, a:7:4, ’ ’); {запишемо в f нове значення a, відокремлюючи від попереднього пробілом} a := a + x; {збільшуємо значення a на x} end; Close(f); {закриємо f для запису}
Reset(f); {відкриємо f для читання} Assign(f2, ’D:\F2.txt’); {зв’язує змінну f2 з файлом F2.txt} Assign(f3, ’D:\F3.txt’); {зв’язує змінну f3 з файлом F3.txt} Rewrite(f2); {відкриємо f2 для запису} Rewrite(f3); {відкриємо f3 для запису} while Not Eof(f) do{поки не кінець файлу} Begin Read(f, x); {зчитуємо з файлу f число в змінну х} Write(f2, x*x:10:3, ’ ’); {записуємо квадрат х в f2} Write(f3, x*x*x:10:3, ’ ’); { записуємо куб х в f3} end;
Close(f); {закриємо f } Close(f2); {закриємо f2} Close(f3); {закриємо f3} End.
Блок-схема програми: ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|