Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа4.doc
Скачиваний:
14
Добавлен:
16.04.2015
Размер:
147.97 Кб
Скачать

4.2.4 Текстовые файлы

Работа с файлами состоит из трех этапов: открытие файла, считывание или запись информации, закрытие файла. Следующие разделы посвящены опи­санию команд MatLab, реализующих вышеперечисленные действия, и де­монстрации их использования на некоторых простых примерах.

Открытие файла, считывание данных и закрытие файла

Команда fopen предназначена для открытия существующего или создания нового файла. Имя файла указывается в апострофах первым входным аргу­ментом. Второй аргумент задает способ доступа к файлу, он может прини­мать следующие значения (символ t указывает на то, что файл текстовый):

' rt' — открываемый текстовый файл предназначен только для чтения;

'rt+' — открываемый текстовый файл предназначен для чтения и запи­си;

' wt' — создаваемый пустой текстовый файл предназначен только для записи;

'wt+'— создаваемый пустой текстовый файл предназначен для записи и чтения.

Выходными аргументами fopen являются идентификатор, присвоенный файлу, и строковая переменная с сообщением о результате открытия. Если файл открыть не удалось, то идентификатор становится равным минус еди­нице. Ошибки часто возникают из-за того, что MatLab не может найти тре­буемый файл. Всегда лучше указывать полное имя файла, при задании толь­ко имени и расширения MatLab производит поиск в текущем каталоге.

Считывание строк из открытого текстового файла производится командой fgetl, входным аргументом которой является идентификатор файла, при­своенный ему при открытии, а выходным — строковая переменная. Каждое обращение к fgetl позволяет последовательно считывать строки от начала до конца файла. Контроль за достижением конца файла осуществляется функ­цией feof с входным аргументом — идентификатором файла, feof возвращает единицу, если в файле нет больше строк, и ноль — в противном слу­чае. По окончании работы необходимо закрыть файл командой fclose, ука­зав в качестве входного аргумента идентификатор файла.

Файл-функция myview демонстрирует открытие текстового файла, занесение содержимого в массив строк и вывод их на экран. Вызов файл-функции с входным аргументом — именем любого существующего файла, заключенным в апострофы, приводит к отображению содержимого файла в командном окне. Если М-файл с файл-функцией myview хранится в текущем каталоге MatLab, то команда myview('myview.m') выводит листинг самой файл-функции.

Пример: Файл-функция myview для просмотра содержимого файла;

function myview (filename)

% Функция выводит содержимое текстового файла на экран

% использование myview('имя файла')

% проверка аргументов

if nargout ~= 0

error('Функция не имеет выходных аргументов');

end

if nargin ~= 1

error('Функция вызывается с одним входным аргументом');

end

if ~ischar(filename)

error('Входной аргумент функции является строкой');

end

% Открытие текстового файла для считывания (аргумент 'rt'),

% имя файла хранится в filename,

% идентификатор файла записывается в F,

% строка с информацией о возможных ошибках в mes

[F, mes] = fopen (filename, 'rt');

% Если файл успешно открылся, то идентификатор не равен минус единице

if F ~= -1

MAS = ''; % сначала массив состоит только из пустой строки

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

% пока не достигнут конец файла while feof(F) == 0

% считывание строки

line = fgetl(F);

% добавление считанной строки в массив строк

MAS = char(MAS, line);

end

% закрытие файла fclose(F);

% вывод массива строк в командное окно

disp(MAS)

else

% В эту ветвь программа заходит, если при открытии файла

% возникли ошибки; происходит информирование об ошибке

% и вывод в командное окно сообщения, выданного fopen

disp('ОШИБКА при открытии файла')

disp(mes)

end