Основы программирования — второй семестр 08-09; Михалкович С.С.; I часть — различия между версиями
Admin (обсуждение | вклад) (→Буферизация файлов) |
Juliet (обсуждение | вклад) (table) |
||
Строка 1: | Строка 1: | ||
<small>Лекция 1</small> | <small>Лекция 1</small> | ||
==Файлы== | ==Файлы== | ||
− | + | === Введение === | |
− | + | '''Файл''' — именованная область на диске, содержащая некоторую информацию. | |
− | + | ||
+ | '''''Преимущества:''''' | ||
+ | #хранят данные в промежутках между запусками программ; | ||
+ | #размер данных в файле может существенно превышать оперативную память компьютера; | ||
+ | === Классификация файлов === | ||
+ | Файлы обычно классифицируют по двум признакам: | ||
+ | <br>1. по '''''типу компонент''''': | ||
+ | :*''текстовые'' | ||
+ | :*''двоичные'': | ||
+ | ::типизированные | ||
+ | ::бестиповые | ||
+ | 2. по '''''способу доступа''''': | ||
+ | :*''последовательный'' | ||
+ | :*''произвольный'' | ||
+ | <xh4>Текстовые файлы</xh4> | ||
+ | <tt>'''text'''</tt> | ||
+ | |||
+ | Состоят из строк переменной длины, в конце каждой из которых находится символ ''перехода на новую строку'' (#13#10 в Windows, #10 в Linux). | ||
+ | <br>'''Замечание.''' В PascalABC.NET это константа NewLine. | ||
+ | <xh4>Двоичные файлы</xh4> | ||
+ | Информация хранится в виде двоичного кода. | ||
+ | <xh4>Типизированные файлы</xh4> | ||
+ | <tt>'''file of''' <type></tt> | ||
+ | |||
+ | Содержат данные одного типа. | ||
+ | <xh4>Бестиповые файлы</xh4> | ||
+ | <tt>'''file'''</tt> | ||
+ | |||
+ | Могут хранить данные различных типов. | ||
+ | |||
+ | |||
+ | В ''двоичных'' файлах информация хранится в том виде, как она хранится в оперативной памяти, а в ''текстовых'' числовая информация преобразуется к строковому виду и обратно, что дольше. | ||
+ | |||
+ | Файл называется файлом '''произвольного доступа''', если можно перейти к его i-му элементу за время, не зависящее от размеров файла, | ||
+ | <br>и файлом '''последовательного доступа''', если переход кт i-му элементу требует количество операций, пропорциональных i. | ||
+ | |||
+ | '''Замечание.''' | ||
+ | :Все файлы, содержащие элементы разного размера могут иметь только последовательный доступ к элементам. Таковыми являются: | ||
+ | :*текстовые | ||
+ | :*бестиповые файлы | ||
+ | :Типизированные файлы имеют произвольный доступ. | ||
+ | |||
+ | <xh4></xh4> | ||
Понятие файловой переменной, файлового указателя. | Понятие файловой переменной, файлового указателя. | ||
Версия 17:42, 17 февраля 2009
Лекция 1
Содержание
Файлы
Введение
Файл — именованная область на диске, содержащая некоторую информацию.
Преимущества:
- хранят данные в промежутках между запусками программ;
- размер данных в файле может существенно превышать оперативную память компьютера;
Классификация файлов
Файлы обычно классифицируют по двум признакам:
1. по типу компонент:
- текстовые
- двоичные:
- типизированные
- бестиповые
2. по способу доступа:
- последовательный
- произвольный
<xh4>Текстовые файлы</xh4> text
Состоят из строк переменной длины, в конце каждой из которых находится символ перехода на новую строку (#13#10 в Windows, #10 в Linux).
Замечание. В PascalABC.NET это константа NewLine.
<xh4>Двоичные файлы</xh4>
Информация хранится в виде двоичного кода.
<xh4>Типизированные файлы</xh4>
file of <type>
Содержат данные одного типа. <xh4>Бестиповые файлы</xh4> file
Могут хранить данные различных типов.
В двоичных файлах информация хранится в том виде, как она хранится в оперативной памяти, а в текстовых числовая информация преобразуется к строковому виду и обратно, что дольше.
Файл называется файлом произвольного доступа, если можно перейти к его i-му элементу за время, не зависящее от размеров файла,
и файлом последовательного доступа, если переход кт i-му элементу требует количество операций, пропорциональных i.
Замечание.
- Все файлы, содержащие элементы разного размера могут иметь только последовательный доступ к элементам. Таковыми являются:
- текстовые
- бестиповые файлы
- Типизированные файлы имеют произвольный доступ.
<xh4></xh4> Понятие файловой переменной, файлового указателя.
Основные подпрограммы для работы с файлами
Assign Reset Rewrite Close Eof Read Write Erase Rename
Дополнительные подпрограммы для работы с файлами
FileExists DeleteFile RemoveDir GetCurrentDir SetCurrentDir CreateFir ExtractFilePath ExtractFileName ExtractFileExt
Обработка ошибок ввода-вывода для файлов
Пример. Проверка файла на существование.
Буферизация файлов
===Подпрограммы для работы с типизированными файлами
Truncate FileSize FilePos Seek
Варианты использования:
Seek(FileSize(f)) - переместить файловый указатель за конец файла (Eof(f)=True) Seek(FilePos(f)-1) - вернуться на 1 позицию назад
Пример 1. Добавление 0 в конец файла
Пример 2. Возведение всех элементов файла в квадрат.
Пример 3. Использование в базах данных - перевод Иванова в 10 группу в виде наказания
Пример 4. Сортировка файла
for var i:=FileSize(f)-1 downto 1 do
for var j:=0 to i-1 do
begin
Seek(f,j);
read(f,x,y);
if x>y then
begin
Seek(f,j);
write(f,y,x);
end;
end;