Робота з текстовими файлами

Текстові файли зв’язуються із файловими змінними стандартного типу text. Текстові файли призначені для збереження текстової інформації. При роботі з ними слід пам’ятати, що в Паскалі тип text відрізняється від типу файл символів (file of char) та від типу файл рядків (file of string). 
Текстовий файл інтерпретується як сукупність рядків змінної довжини. Кожний рядок закінчується спеціальним символом, який так і називається – символ кінця рядка. Доступ до кожного рядка здійснюється послідовно, починаючи з першого. 
Для запису до файлу використовують процедури write та writeln. 
Для читання з файлу використовують процедури read та readln(див. нижче). 
Як уже було сказано, доступ до файлу здійснюється послідовно. Так нові рядки додаються завжди у кінець файлу, а читання файлу після відкриття починається з першого рядка. 
Для роботи з текстовими файлами в Паскалі існують наведені нижче процедури та функції (квадратними дужками позначено необов’язкові параметри): 
append(var f: text) – процедура, що відкриває текстовий файл для додавання інформації; 
flush (var f:text) – процедура, яка при використанні буферизованого вводу/виводу змушує систему записати інформацію із буферу, вводу-виводу, пов’язаного із файловою змінною f, безпосередньо у файл зв’язаний із цією змінною ; 
read([var f: text;] v1[,v2…]) – зчитує одне чи кілька значень із файлу зв’язаного із файловою змінною f. Якщо файлова змінна не вказана то дані зчитуються із стандартного файлу вводу – input; readln ([var f: text;] v1[,v2…]) – процедура аналогічна попередній, яка додатково після зчитування переходить до початку нового рядка; 
settextbuf( var f: text; var buf [; size:word]) – процедура, що назначає буфер вводу-виводу для текстового файлу; 
write([var f: text;] v1[,v2…]) – записує одне чи кілька значень до файлу зв’язаного із файловою змінною f. Якщо файлова змінна не вказана то дані записуються до стандартного файлу виводу – output; 
writeln([var f: text;] v1[,v2…]) – процедура виконує дії аналогічні попередній, а потім додає до тексту символ кінця рядка; 
eoln(var f: text) – функція, що повертає “true”, коли досягнуто кінець рядка, та “false” у противному випадку;  
seekeoln(var f: text) – функція аналогічна попередній; 
seekeof(var f: text) – функція, що повертає “true”, коли досягнуто кінець файлу, та “false” у противному випадку. 
Приклад : 
uses Crt; 
var f : Text; j : Integer; 
begin 
 Assign(f,'TEST.TXT'); 
Rewrite(f); { створимо файл і запишемо до нього 2 рядки, кожний з яких містить чотири цифрових символи і кілька символів пробілу } 
Writeln(f,'1 2 3 4 '); 
Writeln(f,'5 6 7 8 '); 
Reset(f); { читаємо записане до файлу, SeekEoln повертає TRUE якщо в поточній стрічці більше нема цифрових символів; SeekEof повертає TRUE, якщо далі у файлі немає більше інших символів крім символів пробілу } 
while not SeekEof(f) do 
begin
if SeekEoln(f) then Readln; { переходимо до іншого рядка} 
 Read(f,j); 
 Writeln(j); 
 end; 
end. 

Немає коментарів:

Дописати коментар