Операции над текстовым файлом — КиберПедия 

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

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

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

2021-04-18 44
Операции над текстовым файлом 0.00 из 5.00 0 оценок
Заказать работу

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) Проверка существования файла

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

Способы:

· Использование функции i oresult которая возвращает результат операции открытия файла. Если файл открылся, то функция вернет 0, иначе - код прерывания (число больше 0). При использовании функции i oresult следует использовать директиву компилятора {$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.

Типизированный файл

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

Формат объявление файловой переменной

Var

    Имя ф.п.: file of Тип записи файла;

Тип записи это любой тип языка Pascal кроме файлового.


Поделиться с друзьями:

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

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

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.