Основы программирования на языке Паскаль

Filepos (FV) – функция определения положения указателя.

Filesize (FV) – функция определения длины файла. Функция возвращает целочисленное значение, равное количеству компонент файла: если File Size (FV) = 0, то файл пуст.

Loresult (FV) – функция проверки результата последней операции ввода- вывода на наличие ошибок. Если ошибка обнаружена, возвращается

код ошибки, если нет, то код = 0.

10. 3. Стандартные файлы

Con: – консоль (клавиатура или экран дисплея). Турбо-Паскаль устанавливает различия между этими устройствами по направлению передачи данных: чтение данных возможно только с клавиатуры, а запись - только на экран. Ввод с клавиатуры буферизуется: символы по мере нажатия клавиш помещаются в буфер, содержимое которого передается в ЭВМ только после нажатия клавиши ENTER, поскольку вводимые и буферизированные символы отображаются на экране. Con применяется «по умолчанию» для ввода с помощью операторов READ и Readln и для вывода на экран – операторов write и writeln, если не указано имя файла FV.

Все внешние устройства ЭВМ трактуются в Pascal как логические устройства, имеющие имена файлового типа и которым соответствуют заранее определенные (стандартные) файлы. Идентификацию (отождествление) устройства и стандартного файла осуществляют специальные программы (драйверы), которые обеспечивают выполнение операций ввода-вывода между процессором и конкретным физическим устройством. Ниже указаны имена файлов и соответствующие им устройства так, как они определены разработчиками системы.

Trm: – терминал, предназначенный для ввода с клавиатуры и вывода на экран без редактирования.

Kbd: – клавиатура, используемая только для ввода с клавиатуры, при вводе информация не отображается на экран.

PRN: – построчно печатающее устройство (принтер), используемое только для вывода.

Aux: – вспомогательное устройство, подключающееся через порты.

Usr: – устройство пользователя, применяемое при написании собственных драйверов для организации нестандартного ввода-вывода.

10.4. Файлы последовательного доступа, созданные пользователем

Работа с файлом последовательного доступа предполагает его создание, обработку и корректировку. Для создания файла последовательного доступа необходимо:

- объявить файловую переменную;

- «привязать» файл к физическому носителю информации (присвоить файлу имя). (Assign);

- открыть новый файл (Rewrite);

- подготовить информацию для ввода в компоненту файла, т.е. сформировать запись для ввода в файл в качестве компоненты;

- записать в файл компоненту (Write);

- повторить п. 4, 5 необходимое количество раз;

- закрыть созданный файл (Close).

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

- присвоить файлу имя (Assign);

- открыть уже существующий файл (Reset);

- считать текущую компоненту из файла в рабочую область памяти (как правило, типа запись со структурой компоненты), (Read);

- выполнить обработку информации (например, вывести на экран поля записи);

- закрыть файл (Close).

Возможны три типа корректировки файла как прямого, так и последовательного доступа:

1. Расширение файла за счет внесения новых компонент.

2. Полная замена содержимого компоненты.

3. Замена каких-либо полей отдельных компонент.

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

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

Для записи новых компонент в конце имеющегося файла необходимо:

- присвоить файлу имя (Assign);

- открыть уже существующий файл (Reset);

- установить указатель файла за последней компонентой (Seek (FV, File sise (FV)):

- создать в специально выделенной области памяти (как правило записи) новую компоненту;

- записать новую компоненту в файл (write);

- закрыть файл (Close).

Пример. Организовать последовательный файл с именем PRIM bibl.dos в подкаталоге Prim каталога TURBO на диске С, т.е. C:\TURBO\bibl.dos. Компонента должна иметь структуру: индекс книги, порядковый номер экземпляра, фамилию, инициалы первых трех авторов (если их несколько), название книги. Блок создания файла оформить в виде процедуры с именем org. Блок доступа к компонентам файла оформить в виде процедуры с именем obr., а блок корректировки – в виде процедуры с именем Rash.

Program Prim47;

type books=record {базоваязапись}

nomer:integer;

avtor:string[16];

nazv:string[30];

index:integer; end;

var bf:file of books; { описатьфайловуюпеременную }

rb:books; { участок памяти со структурой }

{ компонентыфайла }

procedure org;

begin assign(bf,'C:\TURBO\PRIM\bibl.dos');

Rewrite(bf);

with rb do { работать с записью rb без уточненных имен }

while True do

begin writeln('ввестиномеркниги');

readln(nomer);

ifnomer=9999 then {9999 – признак окончания ввода данных}

Begin close(bf); Exit end;

writeln('ввестиимяавтора');

readln(avtor);

writeln('ввести название книги');

readln(nazv);

writeln('ввести значение индекса');

readln(index);

write(bf,rb); { записать компоненту из rb в файл }

end; end;

procedure Obr;

Begin Assign(bf,'C:\TURBO\PRIM\bibl.dos');

Reset(bf);

with rb do

while not Eof(bf) do{ выйтиизцикла, когдазакончитсяфайл }

begin read(bf,rb);

writeln(nomer:5,avtor:16,Nazv:10,index:6); { выводнаэкран }

end; Close(bf); end;

procedure Rash;

begin Assign(bf,'C:\TURBO\PRIM\bibl.dos');

Reset(bf);

Seek(bf,Filesize(bf)); { установить указатель на конец файла }

with rb do

while True do

begin writeln('ввестиномер'); readln(nomer);

if nomer=9999 then begin Close(bf);Exit end;

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 
 16  17  18  19  20  21  22  23  24  25  26  27  28  29  30 
 31 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы