WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Програмування файлів(пошукова робота) - Реферат

Програмування файлів(пошукова робота) - Реферат

обробка його компонент);
" закриття файлу.
Як вже зазначалось раніше, всі дані зберігаються на зовнішніх носіях у вигляді дискових файлів. Тому при опрацюванні файлових структур даних потрібно спочатку зв'язати файлову змінну з конкретним дисковим файлом. Власне, для цього і використовується файлова структура - щоб одержати доступ до фізичних даних на дискові. Для цього призначена стандартна процедура assign. Вонавстановлює відповідність між файловою змінною та дисковим файлом. Синтаксис процедури:
assign(f, st);
де f - ім'я файлової змінної;
st - рядкова величина, яка задає повне ім'я дискового файлу.
Ця процедура повинна передувати всім іншим процедурам роботи з файлами. Крім того, не допускається використовувати процедуру для вже відкритого файлу (тобто, який в даний момент опрацьовується).
Процедура rewrite призначена для відкриття та створення файлу (тобто, підготовки його до опрацювання). Якщо файл (дисковий) вже існує, то він руйнується, і його створення починається з першої компоненти. . Синтаксис процедури:
rewrite(f),
де f - ім'я файлової змінної.
Процедура reset призначена для відкриття файлу. В цьому режимі з типізованого файлу можна читати дані, і записувати дані до файлу. Синтаксис процедури:
reset(f),
де f - ім'я файлової змінної.
Якщо відповідного дискового файлу не існує, виникає помилка.
ПРИКЛАД:
assign(p,'c:usersmydata.dat');
assign(t,'c:list.txt');
assign(g,'document.doc');
reset(p);
rewrite(t);
reset(g,16000);
Обробка компонент файлу залежить від завдання, що розв'язується. Основними при цьому є операції читання даних з файлу та запису даних у файл.
Процедура read призначена читання даних з файла. Синтаксис:
read(f, n),
де f - ім'я файлової змінної,
n - ім'я змінної, в яку зчитуються дані з файла.
Тип змінної повинен відповідати типові файла. Після виконання операції покажчик файла переміщується до наступного компонента.
Процедура write призначена для запису даних до файлу. Синтаксис процедури:
write(f, n),
де f - ім'я файлової змінної,
n - ім'я змінної, в яку зчитуються дані з файлу.
Тип змінної також повинен відповідати типові файла. Після виконання операції покажчик файла також переміщується до наступного компонента.
Зауважимо, на відміну від вводу даних з клавіатури та виводу даних на екран процедури readln та writeln для файлових структур не використовуються. Крім того, список параметрів відповідних процедур може містити лише одну змінну.
ПРИКЛАД:
read(p,s);
write(p,s);
При відкритті файла покажчик завжди встановлюється на перший запис, який має номер 0. Для встановлення покажчика файла на потрібну позицію (для доступу до потрібного запису) призначена стандартна процедура seek. Синтаксис процедури:
seek(f,m),
де f - файлова змінна; .
m- змінна типу longint, яка задає номер запису.
Для визначення поточної файлової позиції використовується функція filepos типу longint, яка має такий синтаксис:
filepos(f),
де f - змінна файлового типу.
Для того, щоб визначити довжину файла в записах, використовується функція filesize типу longint, яка має такий синтаксис:
filesize(f),
де f - змінна файлового типу.
ПРИКЛАД:
begin
reset(p); {відкриваємо файл}
read(p,s); {читаємо перший запис}
n:=filesize(p);{взнаємо кількість записів файла}
seek(p,n); {встановлюємо покажчик на кінець файла}
write(p,s); {дописуємо в файл новий запис}

end.
У мові реалізовані такі стандартні функції, призначені для опрацювання файлів. Функція eof - логічна, результат якої дорівнює true, якщо покажчик файла знаходиться наприкінці дискового файла, тобто за останнім компонентом файла. Якщо покажчик файла знаходиться в іншому місці, то результат функції буде дорівнює false .
ПРИКЛАД:
type
Student = record
Name:string[30];
Course:1..4;
Group:string[7];
End;
data = file of student;
var
p: data; {типізований файл}
s: student;
begin
reset(p); {відкриваємо файл}
while not eof(p) do {поки є записи у файлі}
begin
read(p,x);{читаємо черговий запис }
writeln(x.name);{друкуємо прізвище студента}
end;

Процедура close призначена для закриття файлу. При цьому файл стає недоступний для обробки, але його можна відкрити ще раз за допомогою розглянутих вище процедур.
Формат процедури
close(f)
де f - ім'я файлової змінної.
Якщо дана процедура відсутня в програмі, то після її завершення ПАСКАЛЬ автоматично закриє всі відкриті файли.
Узагальнення по темі.
Файли забезпечують програмі канали, по яких можна виконувати передачу даних. Під файлом можна розуміти:
" дисковий файл - це файл, який зберігається на диску, і в цьому випадку дані зчитуються або записуються на який-небудь магнітний носій;
" логічний пристрій, такий, наприклад, як попередньо визначені в системі файли INPUT або OUTPUT, що звертаються до стандартних каналів вводу/виводу в ЕОМ;
" структуру даних.
Для роботи з файлами вводяться так звані файлові змінні, які являють собою послідовність компонентів певного типу. Кількість компонентів у файлі (розмір файла) при цьому не визначається.
За формою доступу до компонентів розрізняють файли прямого доступу і файли послідовного доступу. Для файлів послідовного доступу характерним є те, що його компоненти можуть опрацьовуватись лише в природному порядку (тобто порядку їх слідування). Покажчик файла при виконанні операції читання або запису переміщується до наступної компоненти.
Для файлів прямого доступу існує можливість доступу до довільного компонента. Оскільки всі компоненти файла мають однакову довжину, положення будь-якої компоненти легко можна обчислити.
За специфікою файли поділяються на типізовані, нетипізовані та текстові.
Типізований файл являє собою файл з компонент певного типу, які називаються записами. Запис - це структура даних, що складається з фіксованого числа компонентів, названих полями. Поля можуть бути різних типів. Кожному полю задається ім'я, так званий ідентифікатор поля. Ідентифікатор поля використовується при організації доступу до компонентів запису.
Дозволяється виконувати операції присвоювання між цілими записами однакових типів. У всіх інших випадках опрацювання записів можна здійснювати по компонентно, причому в межах тих операцій, які дозволяються типом відповідних полів. Виключення складають лише операції вводу-виводу для файлів. Для опрацювання компонента запису (тобто конкретного поля) ім'я поля вказуєтьсячерез крапку після імені запису.
Нетипізований файл являє собою сукупність символів або байт. Така структура дозволяє розглядати всі дискові файли однаково незалежно від їх реального вмісту.
Текстовий файл являє собою послідовність рядкових величин змінної
Опрацювання будь-якого файлу складається з трьох етапів:
" зв'язування файлової змінної з дисковим файлом та відкриття файлу:
" власне обробка файлу( тобто, обробка його компонент);
" закриття файлу.
Loading...

 
 

Цікаве