Основы программирования — второй семестр 08-09; Михалкович С.С.; I часть — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Буферизация файлов)
(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. размер данных в файле может существенно превышать оперативную память компьютера;

Классификация файлов

Файлы обычно классифицируют по двум признакам:
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;