Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка - Основи програмування і алгоритмічні мови.DOC
Скачиваний:
29
Добавлен:
02.05.2014
Размер:
512.11 Кб
Скачать

BlockWrite(Var f:File;Var Source;Count:Word[;Var WriteOut:Word])

Ці процедури здійснюють читання у змінну Dest та запис із змінної Source блоків, які складаються з тієї кількості байтів, яке визначено для буфера файлу f. Count визначає число ємностей буферу, які зчитуються за одне звертання. Воно підкоряється умові:

Count * Розмір_Буферу < 64 K

Необов’язковий параметр ReadIn повертає число буферів, які зчитані поточною операцією BlockRead. Аналогічний параметр WriteOut процедури BlockWrite. Якщо операції запису та читання пройшли успішно, то значення ReadIn та WriteOut будуть дорівнювати відповідним значенням параметру Count. У противному випадку ReadIn та WriteOut будуть утримувати ціле число вдало перенесених блоків.

Розмір буферу передачі даних для безтипових файлів по замовченню дорівнює 128 байт. Цей розмір можна задавати явним засобом через параметр BufSize наступних процедур:

Reset(Var f:File;BufSize:Word)

ReWrite(Var f:File;BufSize:Word)

Значення параметру BufSize може бути встановлено від 1 байту до 64 К.

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

FileSize(Var f):Longint

– повертає число записів компонентів або блоків у відкритому файлі f;

FilePos(Var f):Longint

– повертає номер запису компонента або блока у відкритому файлі f, попередньому тому, який буде зчитаний / записаний наступною операцією вводу-виводу;

Seek(Var f;N:Longint)

– встановлює поточним компонентом або блоком у відчиненому файлі f компонент з номером N, відлічений від нульового;

Truncate(Var f)

– відсікає частину відчиненого файлу f, починаючи з того компоненту, який був би зчитаний наступною операцією вводу, підтягуючи на її місце кінець файлу.

Для роботи з каталогами в Borland Pascal є наступний набір процедур:

GetDir(Drive:Byte;Var S:String)

– повертає у рядку S поточне ім’я каталогу на диску з індексом Drive (0 – поточний диск, 1 – А:, 2 – В: і т. ін;

ChDir(S:String)

– встановлює поточним каталог з ім’ям, яке міститься у S;

MkDir(S:String)

– утворює каталог з ім’ям S на диску;

RmDir(S:String)

– знищує з диску порожній каталог з ім’ям S.

Для роботи з файлами та каталогами у мові використовуються також засоби модулів DOS і WinDOS.

Компілятор Borland Pascal дозволяє генерувати виконуючий код з перевіркою коректності вводу-виводу – {$I+} та без неї – {$I-}. Цей ключ має локальну схему впливу та може використовуватися у тексті програми потрібне число разів. При {$I-} (по умовчанню {$I+}) виникнення помилки не перерве виконання програми, а продовжить програму з наступного оператору.

Для опитування коду помилки вводу-виводу, яка виникла, використовується функція IOResult: Integer. Опитати цю функцію можна тільки один раз після кожної операції вводу або виводу, так як вона своє значення при кожному виклику робить нульовим. Функція повертає значення 0 при вдалому завершенні операції вводу-виводу.

Приклад використовування функції IOResult:

BEGIN

{$I–}

Assign(f,‘file.my’);

Reset(f);

{$I+}

if IOResult<>0 then

begin

WriteLn(‘Помилка відкриття файлу!’);

Halt(1);

end;

. . .

END.

Для роботи з командним рядком в Borland Pascal використовуються функції ParamCount (повертає число параметрів у командному рядку) та ParamStr (повертає у вигляді рядка потрібний параметр командного рядка). Наприклад, якщо після ім’я файлу, який виконується, у командному рядку буде пусто, то ParamCount повертає значення 0, після виклику ParamStr(0) повертається повне ім’я програмі, яка була запущена.