Процедура SETTEXTBUF (<Файлова змінна>: Text <БУФЕР>: Word); служить для збільшення або зменшення розміру буфера введення-виведення текстового файлу який відповідає файловій змінній. Автоматичне значення буфера дорівнює 128 байт.
Збільшення або зменшення буфера повинне відбуватися після операції зв’язування логічного файлу з фізичним, але до відкриття файлу. Задаючи новий буфер, необхідно передати процедурі SetTextBuf не тільки логічний файл, але і змінну <БУФЕР>, в якій цей буфер розташується.
Приклад:
VAR F:Text; {Опис файлової змінної}
Buf:Array[1 .. 2*1024] Byte; {Опис розміру буфера за допомогою масиву}
Bеgin
Assign(F,‘TextFill.TXT’); {встановлення зв’язку між логічним і фізичним файлами}
SetTextBuf(F, Buf); {Процедура зміни розміру буфера для файлу F. Тепер він рівний 2}
Rewrite(F); {Відкривається файл F для запису}
. . . . . . . . . {Інші дії з файлом F}
Процедура APPEND(<Файлова змінна>:TEXT); служить для спеціального відкриття файлу на запис. Вона застосовна тільки до існуючих фізичних файлів і відкриває їх для ДОЗАПИСУ. Тобто при відкритті файлу за допомогою процедури Аppend дані в файлі не стираються (як при Rewrite), а поточний покажчик файлу встановлюється в кінець відкритого файлу і дані дописуються в файл.
Приклад: Append( S) { Відкривається файл S для дозапису}
Процедура FLUSH(<Файлова змінна>:TEXT); застосовується до файлів відкритим для запису (процедурами Rewrite або Append). Як вже наголошувалося дані для запису нагромаджуються в буфері і після його повного заповнення переносяться у файл. Процедура FLUSH ПРИМУСОВО ПЕРЕНОСИТЬ ДАНІ у файл з буфера незалежно від ступеня заповнення буфера.
Приклад: Flush(D); {Примусове перенесення даних з буфера у файл пов'язаний з змінною D}
Функція EOLN(<Файлова змінна>:Тext):<Результат:Boolean> аналізує поточний стан файлу відкритого для читання. Розшифровка цієї функції говорить саму за себе “ END – ON – LINE” – кінець рядка. EOLN повертає значення True, якщо на наступному кроці буде прочитана ознака кінця рядка або кінця файлу. У всіх інших випадках значення функції EOLN дорівнює False. Необхідність в цій функції виникає всякий раз, коли наперед не відомо, де зустрінеться кінець рядка або файлу. Існує різновид функції EOLN без параметра. В цьому випадку ця функція відноситься до читання (введенню) даних з клавіатури. Специфіка її полягає в тому, що вона зупиняє виконання програми і чекає натиснення клавіші “ENTER”. В цьому полягає ще один спосіб організації паузи до натиснення клавіші.
Приклад: Z := EOLn(F); {Z присвоюється значення «True», якщо досягнутий кінець рядка (файлу) або значення «False» в інших випадках}
Функція SEEKEOLN(<Файлова змінна>:Тext):<Результат: Boolean> є найближчою родичкою EOLn. Єдина відмінність в тому, що SeekEOLn “бачить” кінець рядка або кінець файлу через пропуски. Річ у тому, що якщо після останнього зчитування далі йдуть тільки пропуски, то EOLn читатиме їх доки не зустріне код кінець рядка (файлу). А SeekEOLn визначає кінець рядка (файлу) через пропуски, тобто раніше.
Приклад: Z := SeekEOLn ( F ); {Z присвоюється значення «True», якщо досягнутий кінець рядка (файлу) або далі до кінця рядка (файлу) слідують пропуски або символи табуляції. Z присвоюється значення «False» в інших випадках}
Функція SEEKEOF ( < Файлова змінна > : Text ) : < Результат : Boolean > відрізняється від функції EOF тим же, що і EOLn від SeekEOLn.
Немає коментарів:
Дописати коментар