Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




Файл - это самостоятельная последовательность символов, записанная в память компьютера. Использование файлов в программировании обусловлено следующими задачами:

1. в файлах могут храниться исходные тексты программ а также входные данные.

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

3. файлы требуются для сохранения выходных данных (при многократном сохранении или при сохранении больших объемов).

 

Бинарные файлы хранят информацию в том виде, в котором она представляется в памяти ПК. Однако эти неудобства компенсируются скоростью работы. Кроме того, текстовые файлы являются структурами послед доступа, а бинарные файлы – прямого доступа. Это означает, что в любой момент времени в структурах прямог доступа можно обратиться к любому элементу по его номеру.

Бинарные файлы делятся на типизированные и нетипизированнные.

Типизированные.

Замечание: переменные структурированных типов данных (кроме строковых) невозможно считать из текстового файла. Например, необходимо ввести из текстового файла данные поля заполнения записи toy

 

Type toy=record name:string[20];

Price:real;

ageLset of 9..18; {в файле задано границами}

end;

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

 

<начало_структуры>+

<номер_компонента>*

<длина_компонента>

 

Описание типизированных файлов

 

 

Var <файловая перем>:file of

<тип элементов файла>;

Назначение типизированного файла

Assign (f,’<им файла>’);

Открытие и закрытие типизированного файла

Reset (f) – процедура для открытия файла для считывания информации и одновременно для записи в него информации. Если файла не существует, возвращается ошибка. Указатель ставится в начало файла.

Rewrite (f) – открытие файла для записи информации. Если нет файла, он будет создан. Курсор ставится в начало файла. Если файл существовал, вся информация из него исчезнет.

Close (f) – также как и в текстовых файлов.

 

Считывание из типизированного файла

 

Считывать из файла можно только переменные, тип данных которых совпадает с типом данных файла.

Поиск в типизированном файле

Eof(f:file):Boolean – смотри текстовые файлы

Filepos(f:file):longint – функция возвращает текущее положение указателя. Если курсор указывает на самый конец файла, содержащего N элементов, то возвращаемое значение будет N.

Filesize(f:file):longint – вычисляет длину файла f в байтах.

Seek(f:file,n:longint) – передвигает указатель в файле на начало записи с номером N. Если окажется, что N больше длины файла, то указатель будет передвинут за реальный конец файла.

Truncate(f:file) – обрезает хвост файла. Все элементы, начиная от текущего и до самого конца файла будут «удалены».

 

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

 

Файл - это самостоятельная последовательность символов, записанная в память компьютера. Использование файлов в программировании обусловлено следующими задачами:

1. в файлах могут храниться исходные тексты программ а также входные данные.

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

3. файлы требуются для сохранения выходных данных (при многократном сохранении или при сохранении больших объемов).

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

 

 

Бинарные файлы хранятся в памяти компьютера в машинном коде. Текстовые в понятном для пользователя виде.

 

Var f1,f2:text; {текстовые файлы}

g: file of <тип _элементов_файла>; {типизированные файлы}

in,out:file; {нетипизированные файлы}

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

1. Назначение файла

Assign(f,’имя файла’);

Assign (f, ‘input.txt’);

Assign(f,’output.txt’);

2. Открытие файла.

Reset(f) – открытие файла для считывания из него информации. Если такого файла не существует процедура reset вызовет ошибку и аварийное закрытие программы. Эта же процедура ставит курсор на начало файла.

Rewrite(f) – процедура открытия файла для записи в него информации. Если такой файл не существует, он будет создан. Если файл с таким именем уже есть, вся информация в нем существующая будет стерта.

Append(f) – открытие файла для записи в него информации, при открытии указатель ставится в конец файла. Если такого файла не существовало, он будет создан. Если файл существовал, информация в ней хранящаяся будет сохранена.

Close(f) – процедура закрытия файла.

Read (f,a,b,c) – читает из файла f три переменные a,b,c. После выполнения этой процедуры указатель в файле переместится за переменную с.

Writeln(f,a,b,c) – запись в файл.

 

Замечание: Пробел в файле является отдельным символом, который тоже можно считать.

 

Пробельные символы

 

Это символы, при считывании которых компилятор получает информацию о структуре файла

Специальные символы – специальные процедуры:

Eof(f) – возвращает значение true, если достигнут конец файла. То есть, указатель стоит сразу за последним символом файла.

Seekeof(f) – значение true возвращается в том случае, если конец файла «почти» достигнут (после курсора стоят только пробельные символы и конец файла).

Eoln(f) – возвращает true, если достигнут конец строки файла.

Seekeoln(f) – возвращает true, если конец строки почти достигнут

 

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

Т.О. если ввод многих чисел производится при помощи процедуры read, нет никакой разницы, как именно записаны эти числа: в строку, столбец или несколько строк.

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

В большинства случаев предпочтительнее использование процедур seekeolf и seekeoln, т.к. они предназначены специально для текстовых файлов. Поскольку функции seekeolf и seekeoln пытаются проигнорировать все пробельные символы, результаты их работы отличаются от результатов функции eof и eoln. Даже если это не диагностируется визуально.

 





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


Дата добавления: 2015-10-21; Мы поможем в написании ваших работ!; просмотров: 628 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Самообман может довести до саморазрушения. © Неизвестно
==> читать все изречения...

2557 - | 2402 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.