Z. Rudnicki: MATLAB - KOMPENDIUM
otworzyć przy pomocy funkcji fopen, a gdy plik jeszcze nie istnieje to funkcja fopen może najpierw go utworzyć. Polecenie otwarcia pliku może mieć następującą postać:
| [id, kom] = fopen (nazwa_pliku, tryb) \
Jako pierwszy parametr funkcji fopen musimy podać łańcuch znaków określający nazwę_pliku, wraz z ewentualną ścieżką dostępu. Drugi parametr, także będący łańcuchem znaków, określa tryb dostępu do pliku i jego typ. Tryby dostępu do plików przedstawia Tabela 2.5.
Funkcja fopen zwraca dwuelementowy wektor [id, kom]. Jako pierwszy element otrzymamy identyfikator id pliku, na który będziemy musieli powoływać się we wszystkich następnych poleceniach dotyczących tego pliku. Jeśli otwieralibyśmy kilka plików to oczywiście powinniśmy zastosować różne nazwy zmiennych dla ich identyfikatorów (np.: id 1, id2, ...).
Identyfikator id po prawidłowym otwarciu pliku otrzyma wartość całkowitą dodatnią, natomiast w przypadku niemożności otwarcia pliku otrzyma wartość minus jeden. Dodatkowo, jako drugi element wektora zwracanego przez funkcję fopen otrzymamy w tym drugim przypadku komunikat (kom) o przyczynie błędu. Przykładowo - dysk docelowy może być zabezpieczony przed zapisem.
Tak więc, jeśli chcemy być informowani o występowaniu błędów otwarcia plików, to po poleceniu otwarcia pliku powinniśmy napisać:_
if id<0
disp(kom);
end
Tabela 2.5. Tryby dostępu do pliku tekstowego
Para metr |
Tryb dostępu do pliku tekstowego |
'rt' |
otwarcie do odczytu (read) - domyślne gdy pominiemy ten parametr |
'wt' |
usunięcie zawartości istniejącego pliku lub utworzenie nowego (gdy plik z tą nazwą nie istnieje) i otwarcie go do zapisu (write) |
'at' |
otwarcie w celu dopisywania na końcu istniejącej zawartości (append) |
'rt+' |
otwarcie do odczytu i zapisu |
'wt+' |
wymazanie istniejącego pliku lub utworzenie nowego i otwarcie do odczytu i zapisu |
'at+' |
otwarcie w celu czytania lub dopisywania elementów na końcu (append) |
Po otwarciu pliku można w programie umieścić wiele poleceń wprowadzania lub wyprowadzania informacji, odwołujących się do tego pliku poprzez jego identyfikator. Po zakończeniu tych operacji, plik na którym operujemy musimy zamknąć przy pomocy funkcji f close (id).
W przypadku gdyby program - z powodu błędu - przerwał działanie przez wykonaniem f close, najlepiej w oknie komend wpisać wówczas polecenie fclose ('all') zamykające wszystkie otwarte pliki. Jest to istotne bo plik niezamknięty nie daje się również usunąć. Polecenie takie warto również umieszczać na początku lub na końcu programu.
Po otwarciu pliku w trybie umożliwiającym zapis (patrz Tabela 2.5) można rozpocząć wyprowadzanie informacji do tego pliku. Użyjemy do tego tą samą funkcję fprintf, którą używaliśmy do wyprowadzania informacji na ekran, ale tym razem pierwszym jej parametrem musi być identyfikator pliku (id) utworzony wcześniej funkcją fopen. Tak więc ogólna postać wywołania funkcji fprintf będzie następująca:
| fprintf(id, 'format1, lista_wyrażeń) |
gdzie: id - identyfikator pliku omówiony w p.2.5.1
'format' - argument funkcji fprintf omówiony w 2.4.5 lista_wyrażeń - argument funkcji fprintf omówiony w 2.4.5
Program napisany z zastosowaniem omówionych funkcji obsługi plików przedstawiono poniżej jako „Przykład 7”. Program ten generuje do pliku tekstowego tabelkę wartości kąta oraz odpowiadających im wartości funkcji sinus i cosinus. Oznajmia o tym komentarz zawarty w pierwszej linii programu. W linii drugiej funkcja fopen tworzy i otwiera folderze bieżącym (patrz Błąd! Nie
20