МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


Как цель узнает о ваших желаниях прежде, чем вы начнете действовать. Как компании прогнозируют привычки и манипулируют ими


Целительная привычка


Как самому избавиться от обидчивости


Противоречивые взгляды на качества, присущие мужчинам


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


Как победить свой возраст? Восемь уникальных способов, которые помогут достичь долголетия


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


Оси и плоскости тела человека - Тело человека состоит из определенных топографических частей и участков, в которых расположены органы, мышцы, сосуды, нервы и т.д.


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


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

Зчитування даних з файлу і запис їх у файл





Методичні рекомендації

До виконання лабораторної роботи № 4

Тема: Робота с тестовими файлами.

Мета:

1. . Вивчення файлових типів в мові Турбо-Паскаль. Вивчення основних процедур роботи з текстовими файлами.

2. Отримання навиків в організації текстових файлів та використанні їх для обробки символьної інформації.

Короткі відомості із теорії

Доступ до файлів

В першу чергу при роботі з файлами необхідно привести у відповідність файлову змінну і ім'я файлу, з яким він зберігається на зовнішньому носієві. З цим ім'ям працює операційна система(ОС) DOS. Відповідність встановлюється за допомогою процедури:

ASSIGN (< ф.п.>, < ім'я файлу або л.у.>);

Тут < ф.п.> - файлова змінна; < ім'я файлу або л.у.> - це повне ім'я файлу, яке включає шлях доступу, безпосередньо ім'я файлу і розширення. "л.у". - стандартний логічний пристрій.

Наприклад:

ASSIGN (F1, 'a:\Tp5\DAT\St629.DAT');

ASSIGN (F2, 'Dannye.DAT').

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

Як ім'я файлу в процедурі ASSIGN можна вказувати логічний пристрій з наступного списку: CON, PRN, AUX.

CON - це ім'я консолі. На персональному комп'ютері (ПК) під консоллю розуміється сукупність двох пристроїв : клавіатури і дисплея. Клавіатура використовується для введення інформації, а дисплей для виводу.

PRN - це стандартне ім'я принтера. У ОС PRN стандартно призначається LPT1. У модулі Printer Турбо-Паскаля оголошена файлова змінна Lst. Тому при відображенні даних на принтер, досить підключити модуль Printer до програми, а в пропозиціях Write і Writeln першим аргументом записати ім'я файлової змінної Lst :

Write (Lst, < список даних, що виводяться >);

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

...

VAR F : File;

BEGIN

Assign(F, PRN);

ReWrite(F);

Writeln(F, 'Приклад використання Л.У. - PRN');

Close(F);

END;

Ініціація файлу і завершення роботи з ним

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

виділити область пам'яті на зовнішньому пристрої, в яку записуватимуться дані файлу; запам'ятати ім'я файлу і адресу цієї області.

Якщо має відбутися робота з файлом, вже існуючим на зовнішньому носієві, то потрібні наступні дії:

по вказаному імені файлу знайти адресу, з якої записані дані цього файлу;

встановити голівку пристрою на початок файлу.

Ця сукупність операцій називається ініціацією файлу або "відкриттям" файлу.

Ініціюється файл за допомогою процедур Reset і ReWrite.

За допомогою процедури Reset ініціюється, тобто відкривається раніше створений файл.

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

Синтаксис:

Reset(< ф.п.> [,< розмір запису в байтах >]);

ReWrite(< ф.п.> [,< розмір запису в байтах >]);

Другий аргумент вказується тільки для файлів, що не типізуються . Текстові файли

можна ініціювати також і процедурою Append :

Append(< ф.п.>);

В цьому випадку раніше створений файл відкривається для додавання даних в кінець файлу.

Завершивши роботу з файлом, необхідно його закрити. При закритті файлу ОС підраховує розмір файлу в байтах і запам'ятовує його. Крім того, запам'ятовується також інформація про дату і час створення файлу або його останньої модифікації (коригування).

Закриття файлу даних здійснюється процедурою Close :

Close(< ф.п.>);

При зчитуванні даних з раніше створеного файлу кінець файлу можна визначити за допомогою функції EOF :

EOF(< ф.п.>);

Ця функція має значення TRUE при зчитуванні маркера кінця файлу. Інакше вона матиме значення FALSE. Ця функція зазвичай використовується для організації циклу по читанню усіх компонент файлу : ..

while not EOF(F1) do begin

... .. < зчитування і обробка компонент файлу >

... .. end;

 

Зчитування даних з файлу і запис їх у файл

Безпосереднє введення інформації здійснюється пропозиціями READ і READLN, а виведення ( запис) інформації - WRITE і WRITELN. Особливістю їх застосування до файлу є обов'язковість вказівки файлової змінної як першого параметра в списку елементів введення або виводу :

Read(< файлова змінна >, < список введення >);

ReadLn(< файлова змінна >, < список введення >);

Write(< файлова змінна >, < список виводу >);

WriteLn(< файлова змінна >,< список виводу >).

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

Текстовий файл - це сукупність рядків змінної довжини. Змінна довжина рядків визначає наявність маркерів, які відмічають кінець рядка. Як маркери використовуються два керівників символу "Переклад рядка" і "Повернення каретки", їх

десяткові коди: #10 #13. Назви символів, що управляють, "Переклад рядка"(LF - Line Feed) і "Повернення каретки"(CR - Carriage Return) узяті аналогічно роботи з машинкою, що пише.

Кінець рядка можна визначити за допомогою функції EOLn :

EOLn(< ф.п.>);

Для запису даних у файл використовуються процедури WRITE і WRITELN :

Write(< ф.п.>, < список виведення рядків символів >);

Writeln(< ф.п.>, < список виведення рядків символів >).

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

За пропозицією WRITELN у файлі після кожного виведеного стрингового значення будуть записані ознаки кінця рядка.

Для читання даних з файлу використовуються процедури READ і READLN :

Read(< ф.п.>, < список стрингов, що вводяться >);

Readln(< ф.п.>, < список стрингов, що вводяться >);

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

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

Приклад:

...

Var

Fio, Otch : string[15];

Name : string[10];

i : integer;

F : text;

Begin

Assign(F, 'St629.DAT'); { файл створюватиметься в поточному каталозі }

{ створення файлу або первинний запис даних у файл}

ReWrite(F); { відкриття файлу для запису }

for i:=1 to 5 do { обмежимося введенням п'яти студентів }

begin

Write('Прізвище: '); Readln(Fam);

Write('Ім'я: '); Readln(Name);

Write('По батькові: '); ReadLn(Otch);

Write(F, Fam, Name, Otch);

end;

close(F);

{ читання даних з файлу і виведення їх на екран }

WriteLn(' Прізвище Ім'я По батькові');

Reset(F); { відкриття існуючого файлу }

for i:=1 to 5 do

begin 86

Read(F, Fam, Name, Otch);

Write(Fam:16, Name:11, Otch :15);

end;

close(F);

End.





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