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

Запис/читання файлу. Маніпуляції вмістом файлу



Питання для вивчення:

1. Зчитування інформації з файлу в змінну символьного типу.

2. Зчитування інформації з файлу в цілочисельну або речову змінну.

3. Текстові файли в Паскаль.

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

Зчитування інформації з файлу в змінну символьного типу. Процедура Read може зчитувати інформацію в змінні 4-х типів: строкового, символьного, цілочисельного, речового. У разі символьних змінних зчитування відбувається по одному символу. Наприклад, якщо в файлі записано слово «Pascal», то в змінну типу Char буде записаний перший символ «P». Процедура Write в цьому випадку виведе на екран тільки одну букву «P». Наприклад, змінимо наш текстовий файл text.txt, записавши в нього слова «Turbo Pascal» і «Programmirovanie».

Зчитування інформації з текстового файлу в символьну змінну.

Program file2;

Uses crt;

var fl: text;

str: char;

i: integer;

begin

clrscr;

assign (fl, 'programs \ text.txt');

reset (fl);

read (fl, str);

write (str);

close (fl);

readln

end.

У рядку № 4 ми оголошуємо символьну змінну для зчитування в неї інформації з файлу. Так як змінна символьного типу може зберігати лише один символ, то результатом програми буде виведена на екран буква «T».

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

Program file2_3;

Uses crt;

var fl: text;

str: char;

i: integer;

begin

clrscr;

assign (fl, 'programs \ text.txt');

reset (fl);

while not Eof (fl) do

begin

read (fl, str);

write (str);

end;

close (fl);

readln

end.

У рядку № 10 записуємо цикл. Функція Eof означає кінець файлу (End of file). У дужках після слова Eof вказується назва файлової змінної, яка пов'язана з файлом. Таким чином, рядок № 10 означає: поки не буде кінець файлу «fl», повинні виконуватися дії, після слова «do». Після слова «do» розташовані 2 оператора, які повинні бути виконані в циклі. Рядок № 12. Перший оператор зчитує черзі символи з файлу в змінну «str». Рядок № 13. Другий оператор виводить ці символи на екран.
Завдяки циклу, всі символи з файлу будуть прочитані і виведені на екран.

Зчитування інформації з файлу в цілочисельну або речову змінну. Зчитування інформації з файлу в цілочисельну або речову змінну аналогічно описаному в попередньому уроці способу. Наприклад, якщо у файлі записані числа: 10 25 63 42 58, то в цілочисельну змінну буде записано тільки число 10. Для того щоб всі числа були зчитані з файлу і виведені на екран також використовують цикл з ознакою кінця файлу.

Напишемо програму, яка підраховує кількість позитивних чисел, що зберігаються в текстовому файлі. Для цього в директорії, де зберігаються наші програми необхідно створити текстовий файл. Я створив текстовий файл «chislo.dat» і помістив туди кілька чисел. Зверніть увагу, що даного файлу я присвоїв розширення «. dat». Справа в тому, що текстові файли не обов'язково повинні мати розширення «. Txt». У файлі формату «. Dat» також можуть зберігатися текстові дані і такі файли можна відкрити будь-яким текстовим.

Зчитування інформації з файлу в цілочисельну або речову змінну.

program file4;

uses crt;

var f: text;

a: integer;

k: integer;

begin

clrscr;

assign (f, 'programs / chislo.dat');

reset (f);

k: = 0;

while not eof (f) do

begin

read (f, a);

if a> 0 then inc (k);

end;

close (f);

writeln ('k =', k);

readln

end.

Рядок № 3. Створюємо файлову змінну «f», для доступу до файлу. Рядок № 4. Цілочисельну змінну «a» будемо використовувати в якості буферної змінної. У неї ми будемо зчитувати числа з файлу для визначення, чи є ці числа позитивними або негативними. Рядок № 5. Змінну «k» будемо використовувати для зберігання кількості позитивних чисел. Рядок № 8. Пов'язуємо файлову змінну «f» з файлом «chislo.dat», що зберігається на жорсткому диску «С» в директорії «FPC \ 2.2.2 \ bin \ i386-win32 \ Programs». Рядок № 9. Відкриваємо цей текстовий файл для читання. Рядок № 10. Обнуляем змінну для підрахунку кількості позитивних чисел. Рядок № 11. Вказуємо умова. Поки немає кінця файлу, повинні виконуватися дії в рядках № 13 - № 14. Рядок № 13. Читаємо з файлу число і записуємо його в буферну змінну «a». Рядок № 14. Перевіряємо умову. Якщо значення змінної «a» (тобто число, лічене з файлу) більше 0, тоді збільшуємо змінну «k» на одиницю. Рядок № 17. Виводимо на екран кількість позитивних чисел.

Текстові файли в Паскаль. Для текстових файлів в Паскаль крім процедур Read і Write визначені процедури Readln і Writeln. Справа в тому, що при використанні стрічкової змінної за допомогою процедури Read можна зчитувати лише перший рядок файлу в цю змінну. Наприклад, створимо текстовий файл «text.txt» і запишемо в нього 3 рядки: «pascal», «admin» і «turbo». А тепер запустіть програму "file1" з першого уроку, присвяченого файлів.

Як бачите, на екран вивелося одне слово «pascal», а слова «admin» і «turbo» не вивелися, тому вони розташовані в 2-й і 3-й рядку. Для того щоб з файлу були прочитані всі рядки необхідно використовувати цикл із ознакою кінця файлу. Крім того, процедура Read не пристосована для зчитування послідовності рядків. Замість неї необхідно використовувати процедуру Readln.

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

Program file5;

Uses crt;

var fl: text;

str: string;

begin

clrscr;

assign (fl, 'programs \ text.txt');

reset (fl);

while not Eof (fl) do

begin

readln (fl, str);

write (str);

end;

close (fl);

readln

end.

У рядку № 9 записуємо цикл. Функція Eof при читанні файлу (при використанні процедури Reset) позначає кінець файлу. Таким чином, цикл в рядку № 9 буде продовжуватися до тих пір, поки не наступить кінець файлу (тобто поки не буде прочитана остання рядок у файлі). У циклі записано 2 операції (вони полягають в операторні дужки begin .. end).

Рядок № 11. Перша операція в циклі - це операція читання з файлу та присвоєння змінної «str» значення файлової змінної «fl». В результаті роботи процедури Readln з файлу буде прочитана перший рядок, а покажчик перейде на початок другого рядка. Таким чином, в циклі будуть прочитані всі 3 рядки.

Рядок № 12. Друга операція - виведення значення змінної «str» на екран.

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

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

Program file6;

Uses crt;

var fl: text;

str: string;

begin

clrscr;

assign (fl, 'programs \ text.txt');

rewrite

read (str);

write (fl, str);

close (fl);

end.

У рядку № 8 записуємо процедуру Rewrite. Дана процедура відкриває файл, вказаний в дужках після слова Rewrite, для запису в нього інформації. У нашому випадку в дужках після слова Rewrite стоїть змінна «fl», яка пов'язана з текстовим файлом «text.txt» за допомогою процедури Assign (рядок № 7). Тому цей текстовий файл і буде відкритий для запису. Рядок № 9. Процедура Read забезпечує введення рядковий інформації (після слова Read в круглих дужках стоїть строкою змінна str). Завдяки цій процедурі ми зможемо вводити з клавіатури різні слова. Ці слова будуть записані в строкову змінну «str» Рядок № 10. Процедура Write забезпечує запис інформації в текстовий файл. Запис у рядку № 10 означає, що в текстовий файл («fl») буде записана інформація із змінної «str» (тобто та інформація, яку ми введемо з клавіатури). Після запуску програми введіть якесь слово (наприклад, «programmirovanie») і натисніть Enter. Тепер подивимося наш текстовий файл «text.txt» (C: \ FPC \ 2.2.2 \ bin \ i386-win32 \ Programs). Якщо ви пам'ятаєте, то після минулого уроку там були записані слова «pascal», «admin» і «turbo». Тепер у файлі «text.txt» записано слово «programmirovanie». Це означає, що процедура Rewrite дозволяє записувати інформація в файл, але при цьому видаляє всю стару інформацію (Rewrite з англ. «Перезаписувати»).

Питання для контролю вивченого матеріалу:

1. Яким чином відбувається робота з файлами?

2. Що являє собою текстовий файл?

3. Як відбувається читання/запис в текстові файли?

4. Опрацюйте приклади, розробіть власну програму для роботи з файлами.

Література:

Меженний О.А.Turbo Pascal: М: Издательский дом «Вильямс», 2006. – 336 с., стор. 122-128

 

Урок № 33

(згідно робочої навчальної програми)







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.