Процедура открытия файла для дополнения

append(f : Тext) – процедура открывает существующий файл для присоединения. Если файл уже открыт, то он сначала закрывается, а затем открывается заново. Текущая позиция устанавливается на конец файла.

Если в последнем блоке файла размером 128 байтов присутствует символ Сtrl+Z (26 в коде ASCII), то текущая позиция устанавливается в файле таким образом, что при записи первым в блоке будет "затираться" символ Сtrl+Z.

Если переменной f было присвоено пустое имя assign(f,' '), то после обращения к процедуре append f будет указывать на стандартный выходной файл.

После обращения к append файл f становится доступным только по записи и Eof(f) принимает всегда значение True(истина).

Рассмотрите несколько примеров простых программ.

Program TextFile4;

{Задача. Дан файл Primer1 на диске. Считать из него информацию и записать во вновь созданный файл Primer2 }

Var

f, t: text;

Put1, Put2, d: string;

s : char;

Begin

Put1 := 'D:\TP7\BIN\Primer1';{Путь до файла Primer на диске}

assign(f, Put1 );

reset(f);{Открыть файл c файловой пер. f на чтение }

Put2 := 'D:\TP7\BIN\Primer2';{Путь где будет создан файл}

assign(t, Put2);

rewrite(t);{ Открыть файл c файловой пер. t на создание и запись }

while Not Eof(f) Do

begin

while Not Eoln(f) do

begin

read(f, s); {Cчитывать из f в переменную s}

write(t, s);{ Записывать в t значение s}

end;

readln(f); {Переходим к чтению следующей строки файла f}

writeln(t);{Переходим к записи следующей строки файла t}

end;

close(t);{Закрытие файла Primer1}

close(f);{Закрытие файла Primer2}

End.

Program TextFile5;

{Задача. Дан файл Primer2 со скобками. Проверить численное соответствие закрытых и открытых скобок}

Var

f : Тext;

Put, s : string;

a, i : integer;

Begin

a := 0; {Обнуляем счетчик скобок}

Put := 'D:\TP7\BIN\Primer2'; {Полный путь до файла }

assign(t, Put);

reset(f); {Открываем файл на чтение.}

while Not Eof(f) do {Пока нет конца файла делай...}

begin

readln(f, s); {Считываем cтроку в переменную s}

for i := 1 to Length(s) do {Просматриваем строку до конца}

begin

if s[i] = '(' {Если встретилась открытая скобка,}

then

Inc(a,1);{то счетчик увеличиваем на 1}

if s[i] = ')' {Если встретилась закрытая скобка,}

then

Dec(a,1);{то счетчик уменьшаем на 1}

end;

end;

close(f);{Закрытие файла}

if a <> 0{Если скобок одинаковое кол-во, то а=0}

then

writeln('No')

else

writeln('Yes');

readln

End.

Program TextFile6;

{Задача. Проиллюстрировать работу процедуры append.}

Var

f: text;

Begin

assign(f, 'text.txt'); {создаем текстовый файл}

rewrite(f);{ Открыть файл c файловой пер. t на создание и запись }

writeln(f, 'Исходный текст');{ Записывать в него cтроку}

close(f);{Закрываем сформированный файл}

append(f); {Вновь открываем этот же файл для добавления}

writeln(f, 'Добавляемый текст');{ Пишем в конец файла cтроку}

close(f);{Закрываем файл}

End.