Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Pliki. Pliki Pliki jako pamięć nieulotna Pliki jako pamięć nieulotna Nazwy, atrybuty i prawa dostępu Nazwy, atrybuty i prawa dostępu atrybuty atrybuty.

Podobne prezentacje


Prezentacja na temat: "Pliki. Pliki Pliki jako pamięć nieulotna Pliki jako pamięć nieulotna Nazwy, atrybuty i prawa dostępu Nazwy, atrybuty i prawa dostępu atrybuty atrybuty."— Zapis prezentacji:

1 Pliki

2 Pliki Pliki jako pamięć nieulotna Pliki jako pamięć nieulotna Nazwy, atrybuty i prawa dostępu Nazwy, atrybuty i prawa dostępu atrybuty atrybuty uprawnienia w systemach wieloużytkowych uprawnienia w systemach wieloużytkowych

3 Pliki Plik dla systemu operacyjnego Plik dla systemu operacyjnego nie ma określonego typu (amorficzny) nie ma określonego typu (amorficzny) nazwa, rozszerzenie nazwy lub położenie może być podstawą do wnioskowania co do typu danych w pliku nazwa, rozszerzenie nazwy lub położenie może być podstawą do wnioskowania co do typu danych w pliku Plik jako obiekt w programie Plik jako obiekt w programie elementowe, elementowe, tekstowe, tekstowe, blokowe (amorficzne). blokowe (amorficzne).

4 Pliki – podstawowe operacje deklaracja zmiennej typu plikowego, deklaracja zmiennej typu plikowego, związanie z tą zmienną nazwy pliku, związanie z tą zmienną nazwy pliku, otworzenie pliku do zapisu lub odczytu, otworzenie pliku do zapisu lub odczytu, odczyt lub/i zapis (również wielokrotny), odczyt lub/i zapis (również wielokrotny), zamknięcie pliku. zamknięcie pliku. Zmienna plikowa po zamknięciu pliku może zostać ponownie wykorzystania do obsługi innego pliku. W standardowym języku Pascal obsługa plików wygląda nieco inaczej, jednak tu zajmiemy się wyłącznie implementacją Turbo Pascal. Zmienna plikowa po zamknięciu pliku może zostać ponownie wykorzystania do obsługi innego pliku. W standardowym języku Pascal obsługa plików wygląda nieco inaczej, jednak tu zajmiemy się wyłącznie implementacją Turbo Pascal.

5 Pliki elementowe type typ_plikowy = file of typ_elementów; Przykłady deklaracji typów plikowych: Przykłady deklaracji typów plikowych:type Person = record Person = record FirstName: string[15]; FirstName: string[15]; LastName : string[25]; LastName : string[25]; Address : string[35]; Address : string[35]; end; end; PersonFile = file of Person; PersonFile = file of Person; NumberFile = file of Integer; NumberFile = file of Integer; SwapFile = file; { nie określono typu elementów } SwapFile = file; { nie określono typu elementów }

6 var f:file of real; x,y:real; x,y:real;begin assign(f,'dane.rrr'); assign(f,'dane.rrr'); rewrite(f); {w C/C++ jedna operacja kojarzy nazwę } rewrite(f); {w C/C++ jedna operacja kojarzy nazwę } {z plikiem i otwiera plik} {z plikiem i otwiera plik} x:=5.3; x:=5.3; y:=74.5; y:=74.5; write(f,x); write(f,x); write(f,x,y); write(f,x,y); { writeln(f,x); <<< invalid file type } { writeln(f,x); <<< invalid file type } close(f); close(f);

7 reset(f); reset(f); writeln(filesize(f)); { liczba elementow w pliku: 3 } writeln(filesize(f)); { liczba elementow w pliku: 3 } while not(eof(f)) do while not(eof(f)) do begin begin read(f,x); read(f,x); writeln(x:5:2); { 5.30 5.30 74.50 } writeln(x:5:2); { 5.30 5.30 74.50 } end; end; writeln(filepos(f)); { 3 } writeln(filepos(f)); { 3 } seek(f,filepos(f)-1); seek(f,filepos(f)-1); read(f,y); read(f,y); writeln(y:5:2); { 74.50 } writeln(y:5:2); { 74.50 } close(f); close(f);end.

8 Pliki tekstowe var f : Text; { to już znamy, tego typu jest standardowe we. i wy.} f : Text; { to już znamy, tego typu jest standardowe we. i wy.} i, j : Integer; i, j : Integer;begin Assign(f,'TEST.TXT'); Assign(f,'TEST.TXT'); Rewrite(f); Rewrite(f); Writeln(f,'1 2 3 4 '); Writeln(f,'1 2 3 4 '); Writeln(f,'5 6 7 8 '); { plik zawiera 2 wiersze po 4 cyfry po kazdej spacja } Writeln(f,'5 6 7 8 '); { plik zawiera 2 wiersze po 4 cyfry po kazdej spacja } Reset(f); Reset(f); while not SeekEof(f) do{SeekEof(f) zwraca TRUE jeżeli osiągnięto} while not SeekEof(f) do{SeekEof(f) zwraca TRUE jeżeli osiągnięto} begin{ koniec pliku f } begin{ koniec pliku f } if SeekEoln(f) then{SeekEoln(f) analogicznie koniec wiersza } if SeekEoln(f) then{SeekEoln(f) analogicznie koniec wiersza } Readln; { Go to next line } Readln; { Go to next line } Read(f,j); Read(f,j); Writeln(j); Writeln(j); end; end;end.

9 Pliki elementowe a tekstowe Tekstowe Tekstowe czytelność czytelność przenośność (końce linii DOS/Win --- UNIX) przenośność (końce linii DOS/Win --- UNIX) uniwersalnośc (różne typy elementy) uniwersalnośc (różne typy elementy) Elementowe Elementowe szybkość szybkość łatwość przeszukiwania łatwość przeszukiwania oszczędność pamięci oszczędność pamięci ograniczenie do jednego typu elementow na plik ograniczenie do jednego typu elementow na plik

10 Plik blokowy – ciąg bajtów program CopyFile; var FromF, ToF: file; FromF, ToF: file; NumRead, NumWritten: Word; NumRead, NumWritten: Word; Buf: array[1..2048] of Char; Buf: array[1..2048] of Char;begin Assign(FromF, ParamStr(1)); { plik we. } Assign(FromF, ParamStr(1)); { plik we. } Reset(FromF, ); { rozmiar elementu = 1 Bajt } Reset(FromF, 1); { rozmiar elementu = 1 Bajt } Assign(ToF, ParamStr(2)); { plik we. } Assign(ToF, ParamStr(2)); { plik we. } Rewrite(ToF, 1); Rewrite(ToF, 1); Writeln('Copying ', FileSize(FromF), ' bytes...'); Writeln('Copying ', FileSize(FromF), ' bytes...'); repeat repeat BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockWrite(ToF, Buf, NumRead, NumWritten); BlockWrite(ToF, Buf, NumRead, NumWritten); until (NumRead = 0) or (NumWritten <> NumRead); until (NumRead = 0) or (NumWritten <> NumRead); Close(FromF); Close(FromF); Close(ToF); Close(ToF);end.

11 Moduły, programowanie modularne

12 Moduły w Pascalu cel programowania modularnego cel programowania modularnego realizacja w Pascalu realizacja w Pascalu unit, unit, interface, interface, implementation, implementation, uses uses

13 unit nazwa; interface { deklaracje procedur, funkcji, typów, zmiennych, } { stałych … – eksportowanych przez moduł } implementation { deklaracje procedur, funkcji … – wewnętrznych modułu } { definicje nazw zadeklarowanech w części interface} begin { inicjalizacja modułu } end. { kropka kończy moduł }

14 unit gzolw; interface var XTur, YTur, TAngle: real; procedure forwd(d:real); procedure TurnLeft(f:real); { f-kąt w stopniach } procedure TurnRight(f:real); procedure PenUp; procedure PenDown; function CheckPen: boolean; implementation…

15 implementation uses Graph; var PenState: boolean; { lokalna zmienna modułu } procedure forwd(d:real); var x2,y2:real; begin x2:=XTur+d*cos(TAngle); x2:=XTur+d*cos(TAngle); y2:=YTur-d*sin(TAngle); y2:=YTur-d*sin(TAngle); if PenState then if PenState then Line(round(XTur),round(YTur),round(x2),round(y2)); Line(round(XTur),round(YTur),round(x2),round(y2)); XTur:=x2; XTur:=x2; YTur:=y2; YTur:=y2;end;…

16 procedure TurnLeft(f:real); { f w stopniach } begin TAngle := Tangle + f*Pi/180; TAngle := Tangle + f*Pi/180; while TAngle>2*Pi do TAngle:=TAngle-2*Pi; while TAngle>2*Pi do TAngle:=TAngle-2*Pi; while TAngle<0 do TAngle:=TAngle+2*Pi; while TAngle<0 do TAngle:=TAngle+2*Pi;end; procedure TurnRight(f:real); begin TurnLeft(-f); TurnLeft(-f);end; procedure PenUp; begin PenState:=false; PenState:=false;end;…

17 procedure PenDown; begin PenState:=true; PenState:=true;end; function CheckPen: boolean; begin CheckPen:=PenState; CheckPen:=PenState;end; begin{ inicjalizacja } XTur:=0; XTur:=0; YTur:=0; YTur:=0; TAngle:=0; TAngle:=0;end.

18 Moduły moduły i co dalej? moduły i co dalej? programowanie obiektowe programowanie obiektowe programowanie składnikowe programowanie składnikowe …


Pobierz ppt "Pliki. Pliki Pliki jako pamięć nieulotna Pliki jako pamięć nieulotna Nazwy, atrybuty i prawa dostępu Nazwy, atrybuty i prawa dostępu atrybuty atrybuty."

Podobne prezentacje


Reklamy Google