Здавалка
Главная | Обратная связь

Функції для роботи з файлами.



При роботі з відкритими для читання текстовими файлами можна використовувати наступні функції:

· 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 Все права принадлежат авторам размещенных материалов.