File Streams. Хранение информации

Содержание

Слайд 2

Хранение информации

Для программиста работа с файлами имеет очень большое значение. Длительное хранение

Хранение информации Для программиста работа с файлами имеет очень большое значение. Длительное
информации только в оперативной памяти невозможно. Файл же хранит информацию на диске / SD-карте, что позволяет обратиться к ней в любой момент.

Слайд 3

Определение файла

Файл - это именованная область данных на носителе информации (конечная совокупность

Определение файла Файл - это именованная область данных на носителе информации (конечная
байт).
Файл не может располагаться на диске / карте непрерывно, однако пользователю файл предоставляется цельным блоком последовательной байтовой информации
Название файла не может содержать символы < > : " / \ |
Большинство файлов обладает расширением - сочетанием символов, с помощью которых операционная система определяет тип файла
У каждого файла есть так называемые атрибуты (например - скрытый, системный, архивный, является папкой, только для чтения и тд).

Слайд 4

Сущности, связанные с файлами

Дескриптор файла - при открытии файла операционная система возвращает

Сущности, связанные с файлами Дескриптор файла - при открытии файла операционная система
уникальный номер, с помощью которого выполняются все файловые операции. По их завершении файл закрывается, и дескриптор теряет смысл.
Файловый указатель - число, являющееся смещением относительно нулевого байта в файле. Обычно по этому адресу осуществляется чтение/запись. При выполнении операций чтения/записи файловый указатель смещается на число прочитанных (записанных) байт. Последовательный вызов операций чтения таким образом позволяет прочитать весь файл, не заботясь о его размере.
Файловый буфер - операционная система осуществляет кэширование файловых операций в специальном буфере (участке памяти). При закрытии файла буфер высвобождается.

Слайд 5

Виды файлов

Бинарный файл - это самый обычный файл, просто совокупность байтов. Условно

Виды файлов Бинарный файл - это самый обычный файл, просто совокупность байтов.
можно рассматривать такой файл как массив.
Текстовый файл - это файл, который при интерпретации значений его байтов, как кодов его символов и представлении его на экране в виде совокупности этих символов - образует осмысленный текст. По сути, это совокупность строк. Разделителем строк является символ перевода строки.

Слайд 6

Сравнительная таблица

Сравнительная таблица

Слайд 7

FILE*

Базовый адрес блока памяти файла можно сохранить, используя указатель типа FILE*. Это

FILE* Базовый адрес блока памяти файла можно сохранить, используя указатель типа FILE*.
специальная переменная, которая хранит текущую позицию в файле. Изначально эта позиция равна 0, но потом при чтении и записи она сдвигается. При желании эту позицию можно будет вернуть в начало файла, или же в любое другое место. Файловый указатель можно представить как самый обыкновенный курсор | в любом текстовом редакторе, который позволяет понять, в каком месте файла мы сейчас находимся.

Слайд 8

Режимы работы с файлом

Для создания или открытия уже созданного файла используется функция

Режимы работы с файлом Для создания или открытия уже созданного файла используется
fopen:
FILE* f = fopen("путь к файлу", "режим открытия");
Путь к файлу может быть относительным или абсолютным адресом.
Пример абсолютного адреса - C:\Users\Саша\Desktop\for save\!Работа\Материалы\C\Практика\Задания по группам\ЕКО1691.txt.
Пример относительного адреса – ЕКО1691.txt, но при этом документ должен находиться в непосредственной близости от exe-файла приложения.
Режимы:
r - чтение, если файла нет, то данная функция генерирует ошибку (возвращает 0) - сразу программа не вылетит, но она поломается потом, когда вы попытаетесь что-то считать из файла или записать в него что-нибудь
w - запись, если файла нет, то файл создаётся, если есть исходное содержимое удаляется
a - добавление в конец, если файла нет, то он создаётся
r+ - чтение и запись (файл должен существовать!)
w+ - чтение и запись (принцип работы как у w)
a+ - добавление и чтение (принцип работы как у a)

Слайд 9

Открытие файла
https://git.io/vACAZ

Открытие файла https://git.io/vACAZ

Слайд 10

Чтение по одному символу
https://git.io/vACAM

Чтение по одному символу https://git.io/vACAM

Слайд 11

Запись по одному символу
https://git.io/vACAd

Запись по одному символу https://git.io/vACAd

Слайд 12

Работа построчно
https://git.io/vACxT

Работа построчно https://git.io/vACxT

Слайд 13

Перемещение по файлу
https://git.io/vACxc

Перемещение по файлу https://git.io/vACxc

Слайд 14

Считывание файла целиком
https://git.io/vACx7

Считывание файла целиком https://git.io/vACx7

Слайд 15

Создание 100500 файлов
https://git.io/vACjA

Создание 100500 файлов https://git.io/vACjA

Слайд 16

fwrite + двоичные файлы
https://git.io/vAWve

fwrite + двоичные файлы https://git.io/vAWve

Слайд 17

Запись 2D-массива в файл
https://git.io/vAWvq

Запись 2D-массива в файл https://git.io/vAWvq

Слайд 18

Создание папок
https://git.io/vAWv8

Создание папок https://git.io/vAWv8

Слайд 19

Поиск файлов
https://git.io/vAWv1

Поиск файлов https://git.io/vAWv1

Слайд 20

Практика

Игра «Составь предложение». Есть файлы: Кто, Где, Когда, С кем, Что делали,

Практика Игра «Составь предложение». Есть файлы: Кто, Где, Когда, С кем, Что
Что получилось, Мораль. Пользуясь rand(), программа составляет шуточное предложение и показывает его на экран.
В файле в столбик хранятся русские существительные. Пользователь вводит слово. Задача программы подобрать из файла рифму к указанному слову.

Слайд 21

Практика

Написать приложение, которое будет составлять новые смешные слова (без рисунков!) вроде «пенопласточки»

Практика Написать приложение, которое будет составлять новые смешные слова (без рисунков!) вроде «пенопласточки» ☺ Словарь: https://git.io/vXqa0

Словарь: https://git.io/vXqa0

Слайд 23

Практика

Создать класс СПРАВОЧНИК со следующими полями: Название фирмы, Владелец, Телефон, Адрес, Род

Практика Создать класс СПРАВОЧНИК со следующими полями: Название фирмы, Владелец, Телефон, Адрес,
деятельности. Реализовать следующие возможности: Поиск по названию, Поиск по владельцу, Поиск по номеру телефона, Поиск по роду деятельности, Показ всех записей и добавление. Вся информация, естественно, хранится в файле с возможностью дозаписи.