Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Операции над текстовым файлом





1) Назначение файловой переменной физического файла

Связь файловой переменной с файлом устанавливается с помощью процедуры Assingfile.

Формат процедуры:

Assingfile(файловая переменная, имя файла);

Имя файла – это параметр, тип которого string. Имя файла создается по правилу операционной системы. Если файл находится в одной папке с программой, то достаточно указать только имя файла, в противном случае надо указать полный путь к файлу, например: D:\User\lab\A.txt. Когда связь с файлом установлена, его можно открыть для ввода или вывода информации.

Примеры связывания файла с файловой переменной:

Var

F: textfile;

Filename: String;

Begin

//Имя файла задано непосредственно в вызове процедуры

Assignfile (F,’A.txt’);

//Имя файла вводит пользователь в переменную Filename.

Assignfile (F,Filename);

End.

2) Открытие файла для чтения

Существующей текстовый файл можно открыть только для чтения с помощью процедуры Reset.

Формат процедуры

Reset(файловая переменная);

Открытие файла означает: разрешить доступ к данным связанного с файловой переменной физического файла. После открытия файла, операции чтения доступен первый компонент файла, т.е. текущая позиция в файле устанавливается на начало файла. После открытия данные файла можно читать. Если файловая переменная связана с несуществующем файлом, то система выдаст прерывание - Файл не существует.

Если открывается уже открытый файл, то он сначала закроется, а затем вновь откроется. Пример процедуры открытия файла для чтения: Reset(F);

3)Открытие файла для записи (создание нового файла)

Осуществляется процедурой Rewrite. Процедура rewrite создает новый внешний файл, имя которого связанно с файловой переменной. Если внешний файл с указанным именем уже существует, то он удаляется и на его месте создается новый пустой файл и для операции записи доступен первый символ. Текущая позиция файла устанавливается на начало файла. В текстовый файл, открытый процедурой Rewrite возможна только запись данных.

Формат процедуры

Rewrite(файловая переменная);

Пример создания нового файла с именем B.txt в текущей папке:

Assignfile(F,’B.txt’);

Rewrite(F);

3) Открытие файла для добавления новой записи

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

Формат процедуры

Append(Файловая переменная);

Пример открытия существующего файла B.txt для добавления новых записей:

Assignfile(F,’B.txt’);

Append(F);

 

4) Вывод данных в текстовый файл

Вывод данных в текстовый файл может быть выполнен процедурами write и writeln.

Форматы процедур ввода данных в файл:

Write (Ф.п, список выражений);

Writeln(Ф.п, список выражений);

Writeln(Ф.п.);

Список выражений может содержать: переменные, константы, сложные выражения. Значение списка будут записаны в текстовый файл в символьном формате, например, число 123 будет записано как последовательность из 3 символов.

Процедура writeln после вывода в файл значений списка выражений запишет в файл маркер конца строки включающий символы #13(символ конца строки) и #10(перевод каретки на новую строку).

Процедура Writeln(Ф.п.) записывает в файл только маркер конца строки.

Пример использования процедур вывода данных в файл

Var

F:Textfile;

Begin

Assignfile(F,’A.txt’);

Rewrite(F);

Write(F,125,¢ ¢);

Write(F,126, ¢ ¢);

Writeln(F);

Writeln(F,127);

End.

Содержимое файла A.txt после выполнения программы

125 126 #13#10127#13#10

5)Чтение данных из файла

Чтение данных из текстового файла осуществляется процедурами Read или Readln.

Форматы процедур

Read(Ф.п., Список переменных);

Readln(Ф.п., Список переменных);

Readln(Ф.п.);

При чтении данных из текстового файла автоматически происходить преобразование прочитанных данных из символьного формата в формат соответствующей переменной. Для корректного чтения, данные должны быть правильно подготовлены:

· Числовые данные должны отделяться от других данных символами пробел или Enter или табуляцией.

· Символьная информация должна следовать без разделителей за числовой информацией.

· Если в файле должна храниться информация различных типов, то ее лучше располагать на различных строках.

Процедура Read читает данные из файла и записывает их в переменные, но маркер конца строки не читает. Readln читает данные и читает маркер конца.

Пример чтения данных из текстового файла.

Пусть файл A.txt содержит данные

125 126 #13#10127#13#10

//код программы

Var

F:Textfile;

A,B,C:integer;

Begin

Assignfile(F,’A.txt’);

Reset(F);

Readln(F,A,B);

Readln (F,C);

Writeln(A,’ ‘,B,’ ‘,C)

End.

В результате на монитор будут выведены значения:

125 126 127

6) Закрытие файла

Данная операция прекращает доступ к данным. Освобождает буфер файла.

Формат команды.

Closefile(Ф.п.);

Пример использования:

Var

F:Textfile;

A,B,C:integer;

Begin

Assignfile(F,’A.txt’);

Reset(F);

Readln(F,A,B);

Readln (F,C);

Closefile(F);

Writeln(A, ¢ ¢, B, ¢ ¢, C)

End.

7) Проверка существования файла

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

Способы:

· Использование функции ioresult которая возвращает результат операции открытия файла. Если файл открылся, то функция вернет 0, иначе - код прерывания (число больше 0). При использовании функции ioresult следует использовать директиву компилятора {$I+/-}.

Пример использования функции

Begin

Assignfile(F,’A.txt’);

{$I-} //отключить контроль над операциями ввода/вывода

Reset(F);

{$I+} //включить контроль над операциями ввода/вывода.

If ioresult = 0 then Обработка данных файла.

End.

· Использование функции FileExists(имя внешнего файла).

Функция возвращает true если файл, имя которого указано в вызове функции, существует. В противном случае функция возвращает false.

var

F:textFile;

begin

Assignfile(F,'A.txt');

if FileExists('A.txt') then

begin

Reset(F);

writeln('существует ');

end

else

writeln(' Не существует ');

Readln

end.

8) Обнаружение символа - конец файла

В текстовом файле количество компонентов может быть заранее неизвестно. Чтобы обработать все компоненты файла необходимо найти символ - конец файла (код 26). Для нахождения этого символа в языке Pascal используется функция Eof(Ф.п.):boolean, которая возвращает значение true если следующий читаемый символ - символ конца строки, в противном случае функция возвращает значение false.

Пример использования функции Eof.

Пусть текстовый файл A.txt содержит последовательность целых чисел разделенных пробелами. Вывести на монитор все числа.

 

Var

F:Textfile;

A:integer;

Begin

Assignfile(F,’A.txt’);

if FileExists('A.txt') then

begin

Reset(F);

While not Eof(F) do

Begin

Read(F,A);

Writeln(A);

end

end

else

writeln('Файл не существует ');

Closefile(F);

End.

9) Проверка конца строки файла

Для обнаружения символа конца сроки используется функция Eoln(Ф.п.):Boolean, которая возвращает true если следующий читаемый символ- символ конца строки и false в противном случае.

Пример использования

Пусть файл хранит последовательность чисел. Числа расположены в нескольких строках текстового файла. Количество чисел в строке неизвестно.

Var

F:Textfile;

A:integer;

Begin

Assignfile(F,’A.txt’);

if FileExists('A.txt') then

begin

Reset(F);

While not Eof(F) do

While not Eoln(F) do

Begin

Read(F,A);

Writeln(A);

End;

Readln(F);

end

else

writeln('Файл не существует ');

Closefile(F);

End.







Дата добавления: 2015-10-01; просмотров: 308. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

Общая и профессиональная культура педагога: сущность, специфика, взаимосвязь Педагогическая культура- часть общечеловеческих культуры, в которой запечатлил духовные и материальные ценности образования и воспитания, осуществляя образовательно-воспитательный процесс...

Устройство рабочих органов мясорубки Независимо от марки мясорубки и её технических характеристик, все они имеют принципиально одинаковые устройства...

Педагогическая структура процесса социализации Характеризуя социализацию как педагогический процессе, следует рассмотреть ее основные компоненты: цель, содержание, средства, функции субъекта и объекта...

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

Studopedia.info - Студопедия - 2014-2026 год . (0.012 сек.) русская версия | украинская версия