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

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

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






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; просмотров: 293. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

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

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Условия приобретения статуса индивидуального предпринимателя. В соответствии с п. 1 ст. 23 ГК РФ гражданин вправе заниматься предпринимательской деятельностью без образования юридического лица с момента государственной регистрации в качестве индивидуального предпринимателя. Каковы же условия такой регистрации и...

Седалищно-прямокишечная ямка Седалищно-прямокишечная (анальная) ямка, fossa ischiorectalis (ischioanalis) – это парное углубление в области промежности, находящееся по бокам от конечного отдела прямой кишки и седалищных бугров, заполненное жировой клетчаткой, сосудами, нервами и...

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

Типовые примеры и методы их решения. Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно Пример 2.5.1. На вклад начисляются сложные проценты: а) ежегодно; б) ежеквартально; в) ежемесячно. Какова должна быть годовая номинальная процентная ставка...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

Словарная работа в детском саду Словарная работа в детском саду — это планомерное расширение активного словаря детей за счет незнакомых или трудных слов, которое идет одновременно с ознакомлением с окружающей действительностью, воспитанием правильного отношения к окружающему...

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