Файлы. Элементы файлов

Содержание

Слайд 2

Вникнем – что такое файлы? В Паскале существует множество различных типов

Вникнем – что такое файлы?

В Паскале существует множество различных типов данных.
Они

делятся на простые (состоящие из одно данного) и на сложные (состоящие из набора данных) типы.
Слайд 3

До сегодняшнего дня ты все время при запуске программы вводил по

До сегодняшнего дня ты все время при запуске программы вводил по

новому все данные потому они упорно не желали оставаться в памяти компьютера.
А о том чтобы передать данные из одной программы в другую и речи идти не могло!
Слайд 4

Но теперь у тебя появился новый друг и спутник жизни –

Но теперь у тебя появился новый друг и спутник жизни –

Файлы.
Как ты наверное уже догадался с помощью файлов ты сможешь:
Использовать сохраненные данные даже после взрыва вселенной
Передавать данные из одной программы в другую прямо как wifi в макдональдсе передает сообщения вк в твой телефон
Слайд 5

Стоп! На этом слайде надо задержаться :) Файл – это упорядоченный

Стоп! На этом слайде надо задержаться :)

Файл – это упорядоченный поименованный

набор элементов одного типа на внешнем носителе.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Определение выше я советую прочитать еще раз, осмыслить и вызубрить потому что у тебя всю жизнь будут спрашивать его
Будут будить по ночам и спрашивать
Не ответишь - расстрел
(из личного опыта)
Слайд 6

Теперь немного о элементах файла Прежде всего элемент файла в программе

Теперь немного о элементах файла

Прежде всего элемент файла в программе это

переменная определенного типа
И как любая переменная она должна быть объявлена
Иначе последствия будут катастрофическими
Будет ошибочка и насмешки друзей над отличной программой неспособной скомпилироваться :)
Слайд 7

Как происходит получение файла в программе Постарайся уловить мысль в этой

Как происходит получение файла в программе

Постарайся уловить мысль в этой под

теме поскольку это очень важно
Программа не загружает сразу полностью файл
Она загружает его поэлементно
Начинает она разумеется с первого элемента и идет по порядку до последнего
На том элементе который сейчас программа будет считывать стоит так называемое окошко (понять что такое окошко и как оно переключается безумно важно так что вникай)
Есть специальные операторы которые сообщают программе что пора считать новый элемент с того места где стоит окошко (о них позже)
И после применения таких операторов программа переводит окошко на следующий элемент
Слайд 8

Все элементы из файла считываются в переменную Самую обычную переменную, только

Все элементы из файла считываются в переменную
Самую обычную переменную, только важно

чтобы ее тип соответствовал типу элементов файла
Слайд 9

Объявление файлов Для того чтобы программа смогла использовать файл надо объявить

Объявление файлов

Для того чтобы программа смогла использовать файл надо объявить его

и привязать то имя к имени файла на диске
Давайте разберемся с объявлением файла (сразу после этого с привязкой)
При объявлении файла на сообщить программе какого типа у нас файл
Есть несколько способов это сделать:
Тыкнуть носом паскаль в тип Тогда файл будет считаться типизированным
Послать паскаль самому определять тип файла (фигово работает с записями) Тогда файл будет считаться нетипизированным
Намекнуть что файл текстовый Тогда файл будет считаться текстовым
Мне больше нравится первый вариант
Так я точно уверен что паскаль не будет меня подкалывать)
Слайд 10

Давай объявим разные типы файлов Типизированные файлы var f:file of integer;

Давай объявим разные типы файлов
Типизированные файлы
var f:file of integer;
f –

это имя файла в програме, ну и ты видишь что здесь у нас файл будет типа integer
Вместо integer можно написать любой другой тип кроме файлового (можешь даже свой тип там указывать)
Нетипизированные файлы
var f:file;
Текстовые файлы
var f:text;
Слайд 11

Привязка, открытие, закрытие Теперь как я и обещал привязка имя файла

Привязка, открытие, закрытие

Теперь как я и обещал привязка имя файла на

диске к имени файла в программе
Это сделать очень легко
assing(f, ‘file.txt’); где f – ранее объявленное нами имя файла, а file.txt его название на диске
Теперь чтобы считать информацию из файла его нужно открыть
В паскале есть два режима открытия файла:
Для ввода – файл полностью обнуляется
rewrite(f); где f – ранее объявленное нами имя файла
Для чтения – файл не обнуляется, но ты можешь заменить любой элемент в файле (об этом далее)
reset(f); где f – ранее объявленное нами имя файла
Так же всегда после работы с файлами их необходимо закрывать чтобы не засорять память может вылететь ошибка
close(f); где f – угадай что
Слайд 12

Ну конечно же между открытием и закрытием файла должны быть чтение

Ну конечно же между открытием и закрытием файла должны быть чтение

и запись!
Кстати, сейчас надо вспомнить про то самое окошко о котором я рассказывал)
Чтение элемента файла:
read(f,info); где f – мы уже выучили, info –переменная в которую присваивается элемент файла
оператор работает только если мы открываем файл длч чтения
Запись элемента файла:
write(f,info); где f - … , а info – то что мы хотим записать в файл
оператор работает как в режиме чтения, так и в режиме записи
И не забывайте! Использовали мы один из этих операторов и окошко само переключилось на следующий элемент файла. 70% студентов забывают об этом по началу

Считывание и запись в файл

Слайд 13

Как пройтись по файлу? Как ты уже запомнил мы идем поэлементно

Как пройтись по файлу?

Как ты уже запомнил мы идем поэлементно по

файлу
И раз надо пройтись поэлементно значит нужен цикл
Но как выйти из цикла как только файл закончится?
Для этого существует eof(f) ну это просто дебилизм будет писать что такое f :)
Чтобы активировать это фигню надо написать в самом начале программы checkeof:=true;
Пока файл не закончится eof(f) будет возращать false
Как только закончится вернет true
Вот пример цикла прохода по файлу
while not(eof(f)) do begin
read(f,info);
end;
Слайд 14

Стандартные файлы в Паскале А ты знаешь что почти во всех

Стандартные файлы в Паскале

А ты знаешь что почти во всех своих

программах ты уже работал с файлами?)
Есть так называемые стандартные файлы в паскале
Они служат для ввода/вывода информации
Ведь не случайно read(info) и read(f,info), write(info) и write(f,info) похожи по написанию
Считывая переменую info программа по умолчанию устанвавливает работу с файлом ввода/вывода (при условии если ты сам не указал файл с которым работать)
А если все что мы набираем на клавиатуре считается выходными данными из файл значит можно и определить конец выходного потока
checkeof:=true;
while not(eof) do begin
read(info);
end;
И пока мы не нажмем Esc мы будем снова и снова вводить переменную info
Слайд 15

Теперь сделай перерыв Отдохни, подумай, перевари прочитанное Если что не понятно

Теперь сделай перерыв
Отдохни, подумай, перевари прочитанное
Если что не понятно спроси у

преподавателя
или еще раз перечитай предыдущие слайды
Слайд 16

А теперь к практике Запись в файл

А теперь к практике

Запись в файл

Слайд 17

А теперь к практике Считывание из файла

А теперь к практике

Считывание из файла