Зворотний зв'язок

Прямий доступ у системі Турбо Паскаль

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

Але послідовний доступ елементів не завжди зручний. Чи не замислювався читач над тим, як запрограмувати читання з типізованого файла елемента за його номером або його заміну, додавання чи вилучення ?

Зрозуміло, що задати читання елемента за номером k можна так:

reset(f);

for i:=1 to k-1 do read(f, x); {пропущено k-1 елемент – доступний k-й}

read(f, x).

Для заміни елемента файла за його номером k можна "вийти на нього" шляхом читання попередніх. Далі можна скористатися одним недоліком системи Турбо Паскаль. Справа в тім, що система дозволяє в стані читання записувати в файл значення змінних (і лише змінних!). Отже, заміну елемента можна описати так:

reset(f);

for i:=1 to k-1 do read(f, x);

{пропущено k-1 елемент - доступний якраз k-й}

x:=...; write(f, x).

Описати в такому ж дусі вилучення й додавання елемента до файла ми залишаємо вправою для наддопитливих читачів. Але все це "штучки", якими користуватися не варто.

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

Основною є процедура SEEK. У її виклику задається ім’ я файлової змінної та номер того елемента файла, який стає доступним після виконання виклику. Номер задається виразом типу LongInt. Наприклад, після виклику

Seek ( f, 2)

доступним стає третій елемент, оскільки нумерація починається з 0:

f0f1f2 f3 ...fN

¬

Значення саме цього елемента буде читатися за виконання виклику процедури введення read чи цьому елементу буде щось присвоюватися за виконання write. В обох випадках доступним стане наступний елемент:

f0f1f2 f3 ...fN


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат