Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практикум_11.doc
Скачиваний:
26
Добавлен:
14.02.2016
Размер:
282.11 Кб
Скачать

1.2. Текстовые файлы.

Текстовый файл – это файл, состоящий из элементов, являющихся строками.Каждая строка в текстовом файле завершается маркером конца строки. Текстовый файл завершается маркером конца файла. Для написания файловых переменных текстового типа используется стандартный идентификаторText.

Процедуры и функции обработки текстовых файлов

В Турбо Паскале предусмотрены дополнительно следующие процедуры и функции обработки текстовых файлов.

П р о ц е д у р ы

Append()– открывает существующий файл для добавления информации в конец файла. Указатель текущего компонента файла устанавливается на конец файла.

Flush()– освобождение буера вывода и запись информации в файл.

Read(, ch)– чтение символа из файла и присваивание его значения символьной переменнойch.

Readln(, s)– чтение строки из файла и присваивание ее строковой переменнойs. При этом непрочитанная часть строки, включая признак конца строки, пропускается.

Write(, ch)– запись символьной информацииchв файл.

Writeln(, s)– запись строкиsв файл и завершение выводимой информации признаком конца строки.

Ф у н к ц и и

Eoln() – конец строки файла. Функция принимает значениеTrue, если текущим компонентом файла является признак конца строки или же функцияEof()принимает значениеTrue. В остальных случаях функция принимает значениеFalse.

SeekEof()– конец файла. Функция отличается отEof()тем, что стоящие в конце символы пробела и табуляции пропускаются.

SeekEoln()– конец строки файла. Отличается отEoln()тем, что стоящие в конце строки символы пробела и табуляции пропускаются.

Рассмотрим применение этих процедур и функций на примере программы, которая в интерактивном (диалоговом) режиме обеспечивает выполнение действий по созданию, расширению и выводу текстового файла.

Программа имеет следующий вид:

program textfiles;

uses crt;

type dlina=string[60];

varft: text;{файловая переменная}

S: dlina;{промежуточная переменная}

rej: char; {селектор режима}

filename: string[14]; {имя файла}

{процедура чтения и вывода файла}

procedure obrt(var stro:text);

begin

write('имя выводимого файла:');

readln(filename);

assign(stro,filename);

{$I-}

reset(stro);

if IOResult<>0 then

begin

writeln('файл', filename, 'не существует');

exit

end;

{$I+}

while not seekeof(stro) do

begin

readln(stro, s);

writeln(s)

end

end;

{процедура расширения файла }

procedure rasht(var stro:text);

begin

repeat

writeln('имя расширяемого файла');

readln(filename);

assign(stro, filename);

{$I-}

append(stro)

{$I+}

until ioresult=0;

while true do

begin

writeln('вводите строку');

readln(s);

ifs='zzz'then

begin

close(stro);

exit

end;

writeln(stro, s)

end

end;

{процедура создания файла }

procedure sozdt(var stro:text);

begin

writeln('имя создаваемого файла');

readln(filename);

assign(stro, filename);

rewrite(stro);

while true do

begin

writeln('введите строку (zzz – окончание ввода)');

readln(s);

if s='zzz' then

begin

close(stro);

exit

end;

writeln(stro, s)

end

end;

{основная программа}

begin

while true do

begin

clrscr;

writeln('укажите режим');

writeln('1: создание текстового файла');

writeln('2: вывод текстового файла');

writeln('3: расширение текстового файла');

writeln('4: выход из программы');

readln(rej);

writeln;

case rej of

'1': sozdt(ft);

'2': obrt(ft);

'3': rasht(ft);

'4': halt

elsewriteln('повторите ввод номера')

end;

writeln('для продолжения нажмите enter');

readln

end

end.

В программе использованы стандартные средства обработки текстовых файлов. Например, процедура Append()открывает и устанавливает указатель на маркер конца файла. Используется только для добавления элементов в текстовый файл. Встроенная функцияIOResultтипаintegerпозволяет определить попытку инициировать чтение из несуществующего файла или логического устройстваprn. В программе функцияIOResultпозволяет определить, существует или не существует файл. Логическая функцияSeelEof()пропускает все пробелы, знаки табуляции и маркеры конца строки до маркера конца файла или до первого значащего символа и возвращает значениеTrue, если маркер обнаружен. Аналогично логическая функцияSeeEoln()возвращает значениеTrue, если обнвружен маркер конца строки. Если аргументне задан, то функция проверяет стандартный файлInput. ПроцедураExitосуществляет немедленный выход из исполняемой процедуры или функции в вызывающую программу. Вызов процедурыExitв основной программе приводит к останову программы. ПроцедураHaltтакже прекращает исполнение программы, но в некоторых случаях позволяет использовать код завершения в дальнейшем. ПроцедураClrScrвходит в состав внешнего модуляCrtи становится доступной только после объявления в предложенииUses, которое открывает текст программы. ПроцедураClrScrв рассматриваемом примере используется для очистки экрана дисплея перед выводом меню режимов. Для текстовых файлов нельзя применять функцииFileSize, FilePos, Seek.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]