Лабораторная работа № 7 работа с файлами
Цель работы: Научиться пользоваться текстовыми файлами для сохранения результатов работы и чтения информации.
Основные теоретические положения
Файлы представляют собой именованные области внешней памяти, с которыми программы могут обмениваться информацией Иногда оперативной памяти недостаточен для хранения нужной информации и тогда приходится прибегать к услугам внешней памяти, записывая туда очередную порцию накопленных данных. В другой ситуации приложение может воспользоваться своими же данными, ранее записанными на диск или полученными в результате работы других программ.
Работа с файлами в основном ограничивается тремя-четырьмя операциями:
Выделение ресурсов и приведение файла в состояние готовности к обмену (именно это скрывается за термином открыть файл);
Чтение (ввод из файла) или запись (вывод в файл) очередной порции данных;
Возврат выделенных ресурсов и завершение неоконченных операций (этому соответствует термин закрыть файл).
К числу наиболее важных моментов, связанных с обменом информацией, следует отнести формат представления данных на внешнем носителе. В большинстве своем почти все системы программирования (и MATLAB в этом смысле — не исключение) используют два формата данных — текстовые и двоичные.
Текстовые или символьные данные состоят из строк, похожих на те, которые мы набираем при вводе с клавиатуры или видим при выводе на экране дисплея. Для текстовых данных характерна переменная длина строки, завершающейся невидимым признаком конца (обычно эту функцию выполняют символы типа CR- возврат каретки, LF- перевод строки).
Подготовка файла к работе
Файлы открывают с помощью функции fopen, которая в случае удачного завершения вщзвращает целочисленный положительный идентификатор файла f_id (называемый номером файла). В простейшем варианте вызова указывается единственный входной аргумент – имя открываемого файла
f_id=fopen(‘name_file’);
Для получения дополнительной информации, поясняющей причину ошибки при открытии файла, используется второй параметр
[f_id err_txt]=fopen(‘name_file’);
В случае ошибки в переменную err_txt будет занесено соответствующее сообщение. Если указанный файл обнаружен, тоон открывается для чтения как двоичный файл.
Второй входной аргумент функции fopen определяет режим доступа к определяемому файлу. Их значения:
| 
			 Формат вызова  | 
			 Выполняемое действие 
  | 
| 
			 fopen (‘name_f ile', ' r')  | 
			 Открывается существующий двоичный файл для чтения  | 
| 
			 fopen (‘name_f ile', ' rt')  | 
			 Открывается существующий текстовый файл для чтения  | 
| 
			 fopen (‘name_f ile', ' r+')  | 
			 Открывается существующий двоичный файл, который можно использовать как для чтения, так и для записи (новый файл при этом не создается)  | 
| 
			 fopen ('name_file', ' rt+')  | 
			 Открывается существующий текстовый файл, который можно использовать как для чтения, так и для записи (новый файл при этом не создается)  | 
| 
			 fopen ('name_file', 'w')  | 
			 Открывается существующий или создается новый двоичный файл для записи. Предыдущее содержимое существующего файла пропадает  | 
| 
			 fopen (‘name_file', ' wt')  | 
			 Открывается существующий или создается новый текстовый файл для записи. Предыдущее содержимое существующего файла пропадает  | 
| 
			 fopen ('name_file', ' w+')  | 
			 Если существующий двоичный файл был ранее открыт, то его содержимое от текущей позиции указателя и до конца усекается. Если файл с таким именем не существовал, то создается новый файл. Открытый файл можно использовать для записи и чтения  | 
| 
			 fopen ('name_file', 'wt+')  | 
			 Если существующий тектовый файл был ранее открыт, то его содержимое от текущей позиции указателя и до конца усекается. Если файл с таким именем не существовал, то создается новый файл. Открытый файл можно использовать для записи и чтения  | 
| 
			 fopen ('name_file', ' а')  | 
			 Открывается существующий двоичный файл для дозаписи или создается новый файл  | 
| 
			 fopen (' name_f ile', ' at')  | 
			 Открывается существующий текстовый файл для дозаписи или создается новый файл  | 
| 
			 fopen ('name_file', 'а+')  | 
			 Открывается существующий двоичный файл для чтения и дозаписи. Если файла с указанным именем нет, то его создают  | 
| 
			 fopen (' name_file', ' at+')  | 
			 Открывается существующий текстовый файл для чтения и дозаписи. Если файла с указанным именем нет, то его создают  | 
