ВВЕДЕНИЕ
Большинство компьютерных программ работают с файлами, и поэтому возникает необходимость создавать, удалять, записывать читать, открывать файлы. Что же такое файл? Файл – именованный набор байтов, который может быть сохранен на некотором накопителе. Файлом называют способ хранения информации на физическом устройстве. Под файлом понимается некоторая последовательность байтов, которая имеет своё, уникальное имя, например файл.txt. В одной директории не могут находиться файлы с одинаковыми именами. Под именем файла понимается не только его название, но и расширение, например: file.txt и file.dat - разные файлы, хоть и имеют одинаковые названия. Существует такое понятие, как полное имя файлов – это полный адрес к директории файла с указанием имени файла, например: D:\docs\file.txt. Важно понимать эти базовые понятия, иначе сложно будет работать с файлами. В рамках данной курсовой работы мы будем рассматривать работу с файлами на языках программирования С++ и Pascal.
В C++ отсутствуют операторы для работы с файлами.
Все необходимые действия выполняются с помощью функций, включенных в стандартную библиотеку. Они позволяют работать с различными устройствами, такими, как диски, принтер, коммуникационные каналы и т.д. Эти устройства сильно отличаются друг от друга. Однако файловая система преобразует их в единое абстрактное логическое устройство, называемое потоком.
Текстовый поток — это последовательность символов. При передаче символов из потока на экран, часть из них не выводится (например, символ возврата каретки, перевода строки).
Двоичный поток — это последовательность байтов, которые однозначно соответствуют тому, что находится на внешнем устройстве.
1 ФАЙЛ. ФАЙЛОВАЯ СИСТЕМА
1.1 Основные понятия
Слово file впервые применено к компьютерному хранилищу в 1950 году. Реклама памяти на запоминающих ЭЛТ фирмы RCA в журнале «Popular Science»[1] гласила:
«результаты бесчисленных вычислений можно держать «в картотеке» (on file) и получать снова. Эта «картотека» теперь существует в запоминающей трубке, разработанной в лабораториях RCA. Она электрически сохраняет цифры, отправленные в вычислительную машину, и держит их в хранилище, заодно запоминая новые — ускоряя интеллектуальные решения в лабиринтах математики.»
В 1952 году слово file отнесли к колоде перфокарт. Поначалу словом file называли само устройство памяти, а не его содержимое (см. Регистровый файл). Например, диски IBM 350, использовавшиеся, например, в машине IBM 305, назывались disk files.] Системы наподобие Compatible Time-Sharing System ввели концепцию файловой системы, когда на одном запоминающем устройстве существует несколько виртуальных «устройств памяти», что и дало слову «файл» современное значение. Имена файлов в CTTS состояли из двух частей, «основного имени» и «дополнительного имени» (последнее существует и поныне как расширение имени файла).
Под файлом понимается поименованная область внешней памяти ПК (жесткого диска, гибкой дискеты, электронного "виртуального диска", …), хранящая данные. Под файлом понимается также логическое устройство – потенциальный источник или приемник информации.
Любой файл имеет следующие характеристики (атрибуты):
Имя файла. Составляется по правилам составления идентификаторов в рассматриваемой ОС, например, C:\MCDOC\d.txt ).
2 РАБОТА С ФАЙЛАМИ В ПРОГРАММИРОВАНИИ
2.1 Работа с файлами в С++
В C++ отсутствуют операторы для работы с файлами. Все необходимые действия выполняются с помощью функций, включенных в стандартную библиотеку. Они позволяют работать с различными устройствами, такими, как диски, принтер, коммуникационные каналы и т.д. Эти устройства сильно отличаются друг от друга. Однако файловая система преобразует их в единое абстрактное логическое устройство, называемое ре потоком.
Текстовый поток — это последовательность символов. При передаче символов из потока на экран, часть из них не выводится (например, символ возврата каретки, перевода строки).
Двоичный поток — это последовательность байтов, которые однозначно
соответствуют тому, что находится на внешнем устройстве.
ре Файловый ввод-вывод с ре использованием потоков:
- Библиотека потокового ввода-вывода fstream
- Связь файла с потоком вывода:ofstream имя логического файла;
- Связь файла с потоком ввода:ifstream имя логического файла;
- Открытие файла имя логического файла.open(имя физического файла);
-Закрытие файла имя логического файла.close();
Режимы открытия файлов
Режимы открытия файлов устанавливают характер использования файлов.
Для установки режима в классе ios_base предусмотрены константы, которые определяют режим открытия файлов (см. Таблица 3).
3 РАЗРАБОТКА ПРОГРАММЫ ДЛЯ РАБОТЫ С ФАЙЛАМИ НА ЯЗЫКЕ С++
3.1 Постановка задачи
Создать приложение для работы с массивом структур, содержащим сведения о маршрутах автобусов:
-название начального пункта маршрута;
- название конечного пункта маршрута
- номер маршрута.
Приложение должно выполнять следующие функции:
- инициализировать массив из тестовых элементов (чтение данных из файла “data.txt”);
- вывести на экран список маршрутов, упорядоченного по возрастанию номера (сортировка методом выбора)
- запросить у пользователя название остановочного пункта и сформировать новый массив, переписав в него данные о маршрутах, которые начинаются или оканчиваются в этом пункте. Новый массив записать в файл “result.txt”. Если требуемых данных нет, то на консоль и в файл должно быть выведено соответствующее сообщение.
3.2 Описание алгоритма
После запуска приложения – программа устанавливает настройки на русский язык и пытается открыть файл с именем data.txt, в данном файле находится информация с которой будет работать приложение. В случае если файл не найден – приложение обработает данную ошибку и выдаст соответствующее сообщение пользователю.
После успешного открытия файла – приложение пытается считать данные из него. Если данные отсутствуют, либо повреждены или же по какой-то другой причине считать данные невозможно – приложение выводит соответствующую ошибку.
ЗАКЛЮЧЕНИЕ
Файлы позволяют пользователю считывать большие объемы данных непосредственно с диска, не вводя их с клавиатуры. Существуют два основных типа файлов: текстовые и двоичные.
Текстовыми называются файлы, состоящие из любых символов. Они организуются по строкам, каждая из которых заканчивается символом «конца строки». Конец самого файла обозначается символом «конца файла». При записи информации в текстовый файл, просмотреть который можно с помощью любого текстового редактора, все данные преобразуются к символьному типу и хранятся в символьном виде. В двоичных файлах информация считывается и записывается в виде блоков определенного размера, в которых могут храниться данные любого вида и структуры. В программе может быть открыт не один файл. В таком случае каждый файл должен быть связан со своим файловым указателем. Однако если программа сначала работает с одним файлом, потом закрывает его, то указатель можно использовать для открытия второго файла.
С файлом можно работать не как с последовательностью символов, а как с последовательностью байтов. В принципе, с нетекстовыми файлами работать по-другому невозможно. Однако так можно читать и писать и в текстовые файлы. Преимущество такого способа доступа к файлу заключается в скорости чтения-записи: за одно обращение можно считать/записать существенный блок информации.