140 Programowanie w MATLab
Czerwone saki
pod Monte Cassino...
W tym m-pliku wykorzystano następujące polecenia:
fopen - dokonuje otwarcia pliku. Przed wykonaniem operacji czytania lub zapisu z/do pliku binarnego i tekstowego (ASCII) plik musi zostać otwarty. Po zakończeń odczytu lub zapisu plik powinien zostać zamknięty za pomocą fclose. Składania polecenia fopen jest następująca:
fid=fopen(nazwa jpliku, sposób_otwarcia) nazwa jpliku może zawierać ścieżkę do pliku; sposóbjotwarcia może być jednym z następujących łańcuchów:
V - otwarcie pliku tylko do odczytu,
V - otwarcie pliku tylko do zapisu (lub kreacji),
'a' - otwarcie pliku w trybie dołączania (nowych danych do już istniejących)!
V+’ - otwarcie pliku do odczytu i zapisu (bez możliwości tworzenia pliku), 1
W - obcięcie lub kreacja przy odczycie lub zapisie,
‘a-- otwarcie pliku do czytania i dołączania (z możliwością tworzenia pliku) i Domyślnie pliki są otwierane w trybie binarnym. Aby otworzyć plik tekstowy! należy dopisać '( do łańcucha sposób jotwarcia, na przykład: ‘rt’, ‘wt’.
Jeżeli otwarcie pliku przebiegnie pomyślnie, zwracana jest dodatnia wartość; identyfikatora pliku fid. W przeciwnym przypadku fid = —1. Jeżeli fid - 1 to oznacza] to standardowe wyjście, a jeśli fid = 2, oznacza to typowy błąd.
Jeżeli zostanie zastosowane polecenie fopen o składni, jak poniżej:
[fid, komunikat] = fopen(nazwa jpliku, sposóbjotwarcia) to zwraca ono komunikat błędu w przypadku niepomyślnego otwarcia pliku. Treść komunikatu zależy od używanego systemu operacyjnego (Windows 95/NT, Unix). I W fopen można specyfikować również format odczytywanych danych, tj.
[fid, komunikat] = fopen(nazwajoliku, sposób jotwarcia, format) format może być następujący:
‘natiyei lub V domyślny format maszynowy danego komputera;
‘ieee-le lub T format zmiennoprzecinkowy w formacie IEEE.
Dla danego identyfikatora pliku fid, polecenie fopen może zwracać trzy paranej try:
[nazwa jpliku, komunikat, format] - fopen (fid)
W przypadku, gdy fid nie istnieje, zwracany jest łańcuch pusty dla każdej zmiennuH fopen użyte w postaci:
rtnaca wierszowy wektor identyfikatorów plików (fids) aktualnie otwartych przez użytkownika (nie są zwracane wartości 1 i 2).
fclose zamyka otwarte pliki i posiada dwojakiego rodzaju składnię: status = fclose (/iri) lub
status = fclose('a//’)
i U oznacza identyfikator pliku zwracany przez fopen. W pierwszym przypadku po-[ myślne wykonanie polecenia fclose powoduje, że status = 0. W przeciwnym przy-[ padku status = -1. W drugim przypadku zamykane są wszystkie Cali') otwarte pliki I (oprócz tych, które posiadają/id = 0, 1 lub 2).
j Ćwiczenie 2
I Sapisać m-plik umożliwiający zapisywanie na dysk tekstu podanego: klawiatury. Rozwiązanie
Postawione zadanie zostało rozwiązane w poniższym m-pliku:
t t0206_20 zapis do pliku tekstowego I Na dysku tworzony Jest plik t tekstowy, który nazywa s1e maj.txt
X (c) Jb dc elear fld-0;
whlle f1d<l
HP-1nput('Podaj nazwę pliku | X NP-Nazwa_pl1 ku
[fi d, komun 1 ka t]-fo pen (NP, *Wt'): tekst-1nput('Podaj tekst do zapisania fprlntf (fid,tekst);
1f fid—1
dlspCkomunikat) end end
fdose(fld);
W programie tym, podobnie jak poprzednio, przyjęto, że początkowa wartość Idtatyfikatora pliku fid = 0, co oznacza, że pętla while zostanie wykonana. W przy-I padku pomyślnego otwarcia pliku do zapisu (V/') użytkownik podaje telut do zapisu Baadysk Operacja zapisu na dysk jest wykonywana przez fprinl. Przykładowy prze-I beę sesji z plikiem może być następujący: