11-15, rekord5


W programie można sprawdzać, czy istnieje plik fizyczny, z którego chce­my czytać dane. Służy do tego dyrektywa kompilatora {$1+}, powodująca włą­czenie kontroli każdej operacji wejścia/wyjścia, w tym operacji Reset(plik). Kontrola ta polega na sygnalizacji występującego błędu i przerwaniu działa­nia programu (tak jest standardowo). Zaś przy dyrektywie {$i-} błędy wej­ścia/wyjścia nie powodują przerwania działania programu, ale po wystąpieniu błędu te operacje są ignorowane aż do wywołania standardowej funkcji lOResult, która kasuje stan błędu. Jeśli w trakcie wykonywania programu nie wystąpił błąd operacji wejścia/wyjścia, to lOResult=0, a w przeciwnym razie iOResultoo.

Poniżej opisaliśmy moduł uWeWy, który można stosować w programach, ko­rzystających z osobnych plików z danymi i wynikami. Uwzględniliśmy w nim również obsługę błędów wejścia/wyjścia.

unit uWeWy; {plik uWeWy}

interface

procedurę otworzWe(var we:Text);

procedurę otworzWy(var wy:Text);

implementation var nazwa:string; OK:boolean;

{nazwa pliku}

Jak to zrobić

Sprawdzanie popraw­ności wykonania operacji wejścia i wyjścia w jeżyku Pascal.

Dyraktywa kompilatora {$1+} lub {$1-} jest dyrektywą lokalną, tzn. można ją wstawić w dowolne miejsce

procedurę otworzWe(var we:Text); begin repeat

Write('Podaj nazwę pliku z danymi (puste-koniec) Readln(nazwa); if nazwa='' then Halt; Assign(we,nazwa);

{$1-} Reset(we); {$1+} OK:=IOResult<>0; if OK then Writeln('Nie można odnaleźć pliku. until not OK end; {otwórzWe}

procedurę otworzWy(var wy:Text); begin

Write('Podaj nazwę pliku z wynikami: ');

Readln(nazwa); Assignfwy,nazwa); Rewrite(wy) end; {otwórzWy} end.

Ćwiczenie 1.49. Wykonaj jeszcze raz ćwicz. 1.48, ale tym razem posłuż się modułem uWeWy.

Ćwiczenie 1.50. Zmień procedurę otwór zWy, z powyższego modułu uWeWy, tak aby przed otwarciem istniejącego pliku do zapisu następowała informacja Plik o podanej nazwie istnieje, i pytanie Czy go skasować?.



Wyszukiwarka

Podobne podstrony:
11-15, rekord1
11-15, rekord2
11-15, rekord4
MO 11 15, A,B0009
MO 11 15, A,B0005
MO 11 15, A,B0006
MO 11 15, A,B0013
enzymologia 11-15, BIOTECHNOLOGIA POLITECHNIKA ŁÓDZKA, ENZYMOLOGIA
TPL PRAC 13 11 15 Emulsje
IS 2011 12 wyklad 11 15 12 2011 MDW
AK Instrukcja nr 3 PS 7 2011 11 15
MO 11 15, A,B0002
Opracowane pytania na koło 3 7 11 15, Budownictwo UTP, III rok, DUL stare roczniki, GEODEZJA, geodez
11-15 andragogika, andragogika
11 15
0 Mechanika Płynów 11 15
ei 01 2001 s 11 15
2002 11 15
Promocja praca domowa 12 11 15 Nieznany

więcej podobnych podstron