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

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

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

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

2020-06-02 143
Процедуры и функции для работыс внешними файлами 0.00 из 5.00 0 оценок
Заказать работу

• Assign(var f; FileName: String) связь файловой переменной f с физическим файлом с именем FileName.

• Reset(var f) открытие файла f для последующего чтения данных.

• Rewrite(var f) открытие файла f для последующей записи данных.

• Close(var f) закрывает открытый до этого файл f. Для входных файлов использование оператора закрытия файла необязательно.

• EOF(var f): Boolean. Возвращает значение TRUE при достижении конца файла.

• Rename(var f; NewName: String) позволяет переименовать файл f. Переименование возможно после закрытия файла.

• Erase(var f) уничтожает файл f на диске. Перед этим файл должен быть закрыт.

• IOResult: Integer. Возвращает целое число, соответствующее

Коду последней ошибки ввода - вывода.

При нормальном завершении операций функция вернет значение 0.

Функция IOResult работает только при выключенном режиме проверок ошибок ввода - вывода или с ключом компиляции {$I-}.

Пример. Открытие и запись в файл структуры типа «запись»:

program data; {Пример открытия типизированного файла}

uses crt;

type tabl = record

 name,author:string[30];

 year:integer

end;

var k: char; inf: tabl; f: file of tabl;

 

procedure opn;

Begin

assign(f,'baza.bkz'); reset(f);      {попытка открыть существующий файл}

if ioresult<>0 then rewrite(f) {если файла не существует, - создание нового пустого файла}

End;                                  

procedure news;

Begin

 write('Введите название: '); readln(inf.name);

 write('Введите автора: '); readln(inf.author);

 write('Введите год: '); readln(inf.year);

 write(f,inf);

end;

procedure poisk;

var i,a:integer;

Begin

clrscr; write('Введите год: ');

i:=0; readln(a); seek(f,0); {перемещаем файловый указатель на начало файла}

repeat

read(f,inf); inc(i);

if inf.year<a then

begin

writeln; writeln('Запись №',i);

write('Название: '); writeln(inf.name);

write('Автор: '); writeln(inf.author);

write('Год: '); writeln(inf.year);

readkey

end

until eof(f);

End;

{$I-}

Begin

 opn;

 news;

 poisk

End.

{$I+}

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

Чтобы избежать преждевременного выхода из программы, можно отключить автоматический контроль ошибок ({$I-})

 

Множества в Турбо Паскале

http://pas1.ru/sets

Объявление множеств

В языке программирования Pascal существует понятие множества, имеющее смысл некоторого собрания элементов, одно и того же базового типа. Базовый тип определяет перечень всех элементов, которые вообще могут содержаться в данном множестве. В качестве базового типа может выступать любой простой порядковый тип. Но вещественные числа (real не порядковый тип) и строки (не простой и не порядковый тип) не могут быть элементами множества.

Размер множества в Turbo Pascal всегда ограничен некоторым предельно допустимым количеством элементов. Во множествах допускаются только такие элементы, порядковые значения которых не выходят за границы 0..255. Для целочисленных множеств это означает, что в них могут присутствовать только числа от 0 до 255. Отрицательные элементы множеств в Turbo Pascal не допускаются. Поэтому базовыми типами не могут быть типы shortint, integer, longint. Если же необходимо множество целочисленных объектов, то базовый тип должен объявлен как диапазон типа byte. Для множеств, содержащих символы, подобных затруднений нет, поскольку базовым типом для них является char (а в нем 256 значений с порядковыми номерами от 0 до 255).

В математике для обозначения множества используют фигурные скобки (например, {4, 7, 12}), в Паскаль — квадратные (например, [1, 3, 5]). Порядок элементов во множестве не имеет значения. Так, записав [3, 6, 9] или [9, 3, 6], мы будем иметь дело с одним и тем же множеством. Более того, многократное повторение одного и того же элемента не меняет множество. Например, [4, 7, 3] и [3, 7, 4, 4] – это одно и то же множество.

По форме записи объявление переменной типа множество сходно с объявлением одномерного массива:

var           имя: set of тип;

Например, объявление переменной ch, рассматриваемой как множество с базовым типом char, имеет вид:

var           ch: set of char;

В отличие от элементов массива, элементы множества не упорядочены и не имеют индексов.

Можно сначала объявить тип множества, а потом использовать его для объявления переменных:

type           t_ch = set of char; var           ch1, ch2: t_ch;

Довольно часто в качестве базового типа множества используется тип перечисления или некоторый его диапазон:

type           week_days = (Mon, Tue, Wed, Thu, Fri); var           work_days: set of week_days;          lett: set of 'A'..'Z';

 

 

Объявление переменной-множества не дает ей определенного значения.

Построение множества

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

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

type           week_days = (Mon, Tue, Wed, Thu, Fri); var           work_days: set of week_days;          lett: set of 'A'..'Z'; begin           work_days:= [Mon, Wed, Thu];          lett:= ['C', 'E'..'M', 'Z'] end.

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

Множество, в котором нет элементов, называется пустым (или нуль-множеством). В языке программирования Паскаль обозначается квадратными скобками, между которыми нет элементов:

work_days:= [ ];

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

const lett: set of ['а'..'я'] = ['а', 'е', 'и', 'о', 'у', 'ы', 'э', 'ю', 'я'];

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

Конструируя множества, можно использовать и переменные при условии, что их текущие значения попадают в диапазон базового типа множества. Так, если ch1 иch2 имеют тип char, то допустима следующая последовательность операторов:

ch1:= 'A';ch2:= 'K';chs:= [ch1, ch2, 'M'];

В результате получится множество ['A', 'K', 'M'].

Элементы множества нельзя вводить и выводить. Для организации ввода-вывода элементов множества следует использовать вспомогательные переменные. В то же время можно использовать множества как элементы типизированных файлов.

Действия над множествами


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

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

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

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...



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

0.011 с.