Структура на Delphi-приложение


Работа с файлове и записи



страница4/6
Дата18.09.2016
Размер401.28 Kb.
#10237
1   2   3   4   5   6
    Навигация на страницата:
  • Position

Работа с файлове и записи


Записите представят хетерогенно множество от елементи. Елементите се наричат полета и са независими помежду си. Декларацията на тип запис изисква идентификатор и тип на всяко едно от полетата:

type recordTypeName = record

fieldList1: type1;

...

fieldListn: typen;



end;

Пр.:


type

TDateRec = record

Year: Integer;

Month: (Jan, Feb, Mar, Apr, May, Jun,

Jul, Aug, Sep, Oct, Nov, Dec);

Day: 1..31;



end;

Полетата се представят в паметта като отделни променливи. Декларацията на TDateRec не заделя памет за отделните полета. Това става, едва когато създадете конкретна инстанция по следния начин:



var Record1, Record2: TDateRec;

Достъп до полетата имате посредством името на променливата запис и идентификатор на полето:

Пр.:

Record1.Year := 1904;



Record1.Month := Jun;

Record1.Day := 16;

Когато многократно се обръщате към полетата на един и същ запис, използвайте оператора with:

with Record1 do

begin

Year := 1904;

Month := Jun;

Day := 16;



end;

Файлът е подредено множество от еднотипни елементи. За да декларирате файлов тип, използвайте следния синтаксис:



type fileTypeName = file of type

По този начин се декларират типизираните файлове. За да декларирате нетипизиран файл използвайте само ключовата дума file.

Пр.:

type

PhoneEntry = record

FirstName, LastName: string[20];

PhoneNumber: string[15];

Listed: Boolean;

end;

PhoneList = file of PhoneEntry;

Съществуват два основни типа файлове:


  • Двоичен файл: съхранява данните във формат, с който са представени в оперативната памет;

  • Текстов файл: съхранява данните като дълъг списък от символи.

Физическият карай на файла се отбелязва от т.нар. индикатор за край на файл, който е необходим на операционната система при четене и запис в него. Всеки ред на текстовия файл се ограничава от специален символ или двойка символи, наречени индикатор за край на ред.

Операционната система разпознава файла по неговото име, което се съхранява в списък на директорията. Този списък се създава и поддържа от операционната система и съдържа информация за всеки файл в кокретна директория /име, тип, размер/. За да получите достъп до външен файл /разположен във външната активна памет/ по време на изпълнение на прогамата, е необходимо да създадете файлова променлива. За текстов файл файловата променлива се декларира със стандартен идентификатор Text или TextFile, а за двоичен файл- със стандартен идентификатор File.

Процедурата AssignFile асоциира име на външен файл с файлова променлива.

procedure AssignFile(var F; FileName: string);

Когато параметърът FileName е празен, F се асоциира със стандартен входен или изходен файл.

За да създадете и отворите нов файл, използвайте процедурата Rewrite:

procedure Rewrite(var F: File [; Recsize: Word ] );

F е променлива от произволен файлов тип, асоциирана с външен файл посредством AssignFile. Recsize е незадължителен параметър.

Процедурата Append подготвя съществуващ файл за добавяне на текст в края му.

procedure Append(var F: Text);

F е променлива от тип текстов файл, която трябва да бъде асоциирана с външен файл посредством AssignFile.


Пр.:

var

F: TextFile;

S: string;

begin

if OpenDialog1.Execute then { Display Open dialog box }

begin

AssignFile(F, OpenDialog1.FileName); { File selected in dialog box }

Reset(F);

Readln(F, S); { Read the first line out of the file }

Edit1.Text := S; { Put string in a TEdit control }

CloseFile(F);



end;

end;

За да терминирате връзката мъжду файловата променлива F и съответстващия и външен файл, използвайте процедурата CloseFile:



procedure CloseFile(var F);

Аналог на тази процедура е процедурата Close в езика Pascal.

За да отворите съществуващ файл, използвайте процедурата Reset:

procedure Reset(var F [: File; RecSize: Word ] );

Когато използвате процедурата Reset, за да укажете режима на достъп до файла, използвайте променливата FileMode:



var FileMode: Byte;

По подразбиране тази променлива има стойност 2, което означава, че файлът се отваря както за четене, така и за запис. Когато FileMode има стойност 0, файлът се отваря само за четене, а когато има стойност 1- само за запис.

Пр.:

var

F: file;


begin

AssignFile(F, FileName);

FileMode := 0; ( Set file access to read only }

Reset(F);

CloseFile(F);

end;

За да проверите дали файловия показалец указва край на линия, използвайте функцията Eoln:



function Eoln [(var F: Text) ]: Boolean;

Функцията Eof проверява дали текущата файлова позиция е край на файл:



function Eof(var F): Boolean;

function Eof [ (var F: Text) ]: Boolean;

Четене и запис в текстов файл:



procedure Write( [var F: Text; ] P1 [ , P2,..., Pn] );

Процедурата Write записва една или повече променливи в текстов файл. Всеки параметър P включва изходен израз, чиято стойност ще бъде записана във файла.



procedure Read( [ var F: Text; ] V1 [, V2,...,Vn ] );

Процедурата Read чете една или повече стойности в една или повече променливи.



procedure Readln([ var F: Text; ] V1 [, V2, ...,Vn ] );

Процедурата Redln чете един ред от текстов файл, след което преминава към следващия ред на файла.

Четене и запис в двоичен файл:

procedure Write(F, V1,...,Vn);

Процедурата Write записва променливите V във файл.



procedure Read(F , V1 [, V2,...,Vn ] );

Процедурата Read чете един файлов компонент в променлива.

За да получите размера на файла, използвайте функцията FileSize:

function FileSize(var F): Integer;

Тази функция можете да използвате само ако файлът е отворен с Reset. Ако файлът е празен, тя връща стойност 0.

Текущата файлова позиция можете да получите от функцията FilePos:

function FilePos(var F): Longint;

Тази функция не може да се използва за текстови файлове. Преди да я извикате трябва да отворите файла с Reset.


Position

Result





Beginning of file

FilePos(F) = 0

Middle of file

FilePos(F) = current file position

End of file

Eof(F) = True

Каталог: project -> staf
project -> Г бнр безработицата в Ловешко бележи спад за пореден месец
project -> И радиационна защита
project -> Програма на С, която генерира и извежда на екрана редица от числа на Фибоначи: от 1 до зададено от потребителя число оценка: 4
project -> Нсорб до есента ще има единен регистър за хора с психични заболявания
staf -> Бази данни
staf -> Най-популярният език за създаване на интерактивни и динамични web сайтове е php
staf -> Управление на съобщенията за грешка


Сподели с приятели:
1   2   3   4   5   6




©obuch.info 2024
отнасят до администрацията

    Начална страница