- •Методичні вказівки до виконання лабораторних робіт з дисциплін:
- •Введення
- •1. Лабораторна робота №1 Керівні структури мови Pascal
- •1.1 Стислі теоретичні відомості
- •1.2 Завдання до роботи
- •2 Лабораторна робота №2
- •2.2 Завдання до роботи
- •3 Лабораторна робота №3 Рядки у мові Pascal
- •3.1 Стислі теоретичні відомості
- •If ch in [‘a’..’z’] then . . .
- •I,j:Word;
- •3.2 Завдання до роботи
- •4 Лабораторна робота №4 Записи у мові Pascal
- •4.1 Стислі теоретичні відомості
- •Ves, Rost : Real;
- •XyRec:Record
- •X,y:Integer;
- •X,y:Integer;
- •4.2 Завдання до роботи
- •5 Лабораторна робота №5 Файли у мові Pascal
- •5.1 Стислі теоретичні відомості
- •BlockWrite(Var f:File;Var Source;Count:Word[;Var WriteOut:Word])
- •5.2 Завдання до роботи
- •6. Порядок виконання і захисту робіт
- •Перелік посилань
- •322618, Г.Дніпродзержинськ, вул.Дніпробудівська, 2.
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) повертається повне ім’я програмі, яка була запущена.