Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
39
Добавлен:
12.05.2015
Размер:
415.23 Кб
Скачать

Файлы

 

стандартные

 

 

определяемые

 

 

 

 

 

 

программистом

 

 

 

 

 

 

 

 

 

 

текстовый

 

 

бестиповой

 

компонентный

(text)

 

 

(file)

 

(file of …)

Пример описания файлов: var ft : text;

fb : file;

fc : file of real;

Компоненты могут быть любого

типа, кроме файлового.

21

Хранение данных:

•Текстовые файлы

хранят данные в виде строк символов. При выводе данные

преобразуются из внутренней формы

представления в символьную, при вводе

выполняется обратное преобразование.

•Бестиповые и компонентные

файлы хранят данные в том же виде, в котором они

представлены в оперативной памяти, то есть при обмене с

файлом происходит побитовое копирование информации.

Доступ к файлам:

-Последовательный

-Прямой

Файл:

тексто

бестипово

компонентный

 

вый

й

 

Преобразование

+

Прямой доступ

+

+

 

 

 

22

Организация ввода-вывода

1.объявить файловую переменную var f : text;

2.связать ее с физическим файлом assign(f, ‘vasia.txt’);

3.открыть файл для чтения и/или записи rewrite(f);

4.выполнить операции ввода-вывода writeln(f, ‘Здесь был Вася’);

5.закрыть файл

close(f);

23

Процедуры и функции

для работы со всеми типами файлов:

assign(var f; filename : string)

close(var f)

erase(var f)

rename(var f; newname : string)

reset(var f)

rewrite(var f)

eof(var f) : boolean

IOresult : integer

24

Assign ( f, ‘ttt.pas’);
{$I-} {відключити автоматичний контроль помилок вводу/виводу }
Reset ( f );
{$I+} {підключити автоматичний контроль помилок вводу/виводу }
if IOResult <> 0 then … else …

IOResult:

Var f : file of real ;

---------------------------

Begin

--------------------------------------------------------

25

Текстовые файлы

Текстовый файл - последовательность строк символов переменной длины.

Каждая строка заканчивается символами перевода строки и возврата каретки (коды — 13 и 10).

Текстовый файл можно открыть не только для чтения или записи, но и для добавления информации в конец:

append(var f)

26

Подпрограммы для текстовых файлов

read(f, <список>)

readln(f, [<список>])

write(f, <список>)

writeln(f, [<список>])

flush(var f : text)

settextbuf(var f : text; var buf; bufsize : word)

seekEof(var f : Text): boolean

seekEoln(var f : text): boolean

27

Бестиповые и компонентные файлы

28

Бестиповые файлы

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

var имя : file;

ее требуется связать с физическим файлом с помощью процедуры assign. Обмен производится через буфер «порциями», равными размеру буфера. Размер буфера, отличающийся от стандартного (128 байт), можно задать в reset или rewrite (от 1 до 64K):

reset(var f : file; bufsize : word) rewrite(var f : file; bufsize : word)

Чтение и запись:

blockread(var f : file; var x; count : word; var num : word); blockwrite(var f : file; var x; count : word; var num : word);

29

Пример

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

Program Create_bfile;

var buf : array[1 .. 4] of real;

f_in

:

text;

f_out: file;

i, k

:

integer;

 

begin

assign(f_in, ‘name_in’); reset(f_in); assign(f_out, ‘name_out’); rewrite(f_out, sizeof(real) * 4);

30

i := 0;

while not eof(f_in) do begin inc(i); read(f_in, buf[i]);

if i = 4 then begin blockwrite(f_out, buf, 1); i := 0; end;

end;

if i <> 0 then begin

for k := i + 1 to 4 do buf[k] := 0; blockwrite(f_out, buf, 1);

end;

close(f_in); close(f_out); end.

31