Plilki elementowe x2


Pliki elementowe

Organizacja plików elementowych jest taka sama, jak w Pascalu. Poniżej, dla przypomnienia, przedstawione są podstawowe operacje w kolejności występowania w programach obsługujących pliki.

Kolejne czynności związane i obsługą plików elementowych:

Przykłady realizacji:

Deklaracja typu elementu pliku

Type Prac=record

Nazwisko:string[20];

//konieczne podanie długości łańcucha

Pensja:Currency;

end;

Deklaracja zmiennej plikowej oraz zmiennej do komunikacji z plikiem

var Plik:File of Prac;

P1:Prac;

Przypisanie zmiennej plikowej do zbioru na dysku

AssignFile(Plik,'C:\Nazwa.ele')

Otwarcie pliku

Rewrite(Plik) lub Reset(Plik)

Operacje typu: zapis przygotowanego rekordu do pliku, odczyt rekordu z pliku

Write(Plik, P1)

Read(Plik,P1)

Zamkniecie pliku

CloseFile(Plik)

Procedury i funkcje wspomagające bezpośredni dostęp do elementów pliku

W poniższej tabelce Typ Pliku oznacza dowolny typ przedstawiający plik elementowy.

Nagłówek procedury:

Działanie:

function FileSize(var Plik: TypPliku): Integer

Zwraca liczbę elementów w pliku

function FilePos(var Plik: TypPliku): Integer

Zwraca numer bieżącej pozycji wskaźnika pliku

procedure Seek(var Plik: TypPliku; N: Longint)

Ustawia wskaźnik pliku przed elementem o numerze N

procedure Truncate(var Plik: TypPliku)

Obcina plik na pozycji wskaźnika pliku

Sposoby otwarcia pliku:

Rewrite(Plik) - tworzy plik o nazwie podanej w procedurze Assign; jeśli plik istnieje, zostanie wymazany

Reset(Plik) - otwiera plik do odczytu/dopisywania, wskaźnik pliku jest na początku pliku. Aby przejść do możliwości dopisywania elementów do pliku, należy wywołać procedurę: Seek(Plik, FileSize(Plik)). Spowoduje to ustawienie wskaźnika pliku na końcu pliku.

Do operacji związanych z plikiem należy dodawać obsługę błędu, aby brak pliku nie spowodował błędu wykonania

Ćwiczenie 2.10

Zadanie aplikacji

Zapis i odczyt elementów z pliku elementowego. Typ elementu pliku:

Prac=record

nazwisko: String[20];

pensja: Currency;

end;

Na formularzu podstawowym, pełniącym rolę sterowania dla aplikacji, umieszczone są dwa przyciski Button Zapis do pliku i Odczyt z pliku. Przyciski te otwierają okna dialogowe utworzone na formularzach typu Dialogs. Pobieranie informacji od użytkownika i wyświetlanie zawartości pliku dokonuje się poprzez pola edycji w formularzach dialogowych.

Nowe umiejętności

Dodawanie formularzy typu Dialogs do aplikacji. Organizacja zapisu i odczytu z pliku elementowego.

  1. Umieść na formularzu dwa przyciski: Zapis do pliku i Odczyt z pliku.

  2. Wybierz z menu: FiIe->New, następnie kartę Dialogs i element Standard Dialog. Do aplikacji zostanie dołączony formularz o nazwie OKBottomDlg pełniący rolę okna dialogowego. W tym projekcie z formularzem związany jest moduł Unit2.pas. Sprawdź klawiszami Shift+F12 obecność formularza w projekcie.

  3. Dodaj do formularza OKBottomDlg przycisk Button z napisem Koniec, dwa okna edycyjne Eidt do wprowadzania pól rekordu i dwie etykiety label do opisu okien. Umieść na etykietach napisy: Nazwisko i Pensja. Zmień właściwość Caption formularza na Zapis do pliku.

  4. W module Unit2 wpisz w miejscu deklaracji typów:

Prac=record

Nazwisko:string[20];

Pensja:currency;

end;

  1. W deklaracji zmiennych globalnych modułu (po słowie var przed słowem Implementation) wpisz deklarację zmiennej plikowej:

Plik: file of Prac;

  1. Ustaw właściwość Caption przycisku OK na Zapisz. Dla zdarzenia OnClick wpisz procedurę, która zapisuje do pliku rekord o polach pobranych z pól edycji:

procedure TOKBottomDlg.OKBtnClick(Sender: TObject);

var

Pl:Prac;

begin

If Edit1.Text<>'' then

//zapis do pliku następuje w sytuacji, gdy okno edycyjne nie jest puste

begin

P1.Nazwisko:=Editl.Text;

P1.Pensja:=StrToCurr(Edit2.Text);

Write(Plik.P1);

Edit1.Text: = ''; //wyczyszczenie okna

Edit2.Text:='0';

end;

end;

  1. Ustaw właściwość Caption przycisku Cancel na Anuluj. Dla zdarzenia OnCIick wpisz procedurę:

Procedure TOKBottomDlg.CancelBtnClick(Sender: TObject);

begin

Edit1.Text: ='' ; //wyczyszczenie okna

Edit2.Text: ='0';

end;

  1. Dla zdarzenia OnActivate formularza OkBottomDlg wpisz procedurę, która otwiera plik do dopisywania:

procedure TOKBottomDlg.FormActivate(Sender: TObject); begin

AssignFile(Plik,'C:\Plik.ele');

try -

Reset(Plik);

except

Rewrite(Pli k);

end;

Seek(Plik,FileSize(Plik)); //przygotowanie pliku do dopisywania

Edit1.Text :=''; //wyczyszczenie pól edycji

Edit2.Text :='0';

end;

Brak pliku podczas pierwszego uruchomienia w środowisku kompilatora spowoduje zawieszenie programu (aby zadziałała obsługa błędu, należy uruchomić program poza środowiskiem). Można przy pierwszym uruchomieniu opatrzyć komentarzem instrukcję try i zastosować otwarcie pliku procedurą Rewrite.

Przy następnych uruchomieniach wracamy do pierwotnej wersji programu.

  1. Do przycisku z napisem Koniec wpisz procedurę-zdarzenie:

procedure TOKBottomDlg.ButtonlClick(Sender: TObject); begin

CloseFile(Plik);

OkBottomDlg.Close; //zamknięcie formularza z dialogiem

end;

  1. Dodaj do formularza podstawowego drugie okno dialogowe. Przyjmie ono nazwę OKBottomDlg1, a odpowiadający mu moduł Unit3.pas.

  2. Ustaw właściwość Caption formularza OKBottomDlg1 na Odczyt z pliku.

  3. Wpisz w module Unit3 po słowie uses deklarację korzystania z modułu Unit2.

  4. Dodaj do formularza dwa okna edycyjne Edit do wyświetlania rekordów z pliku oraz dwie etykiety do opisu tych okien. Ustaw dla okien właściwość:

Enabled False //brak możliwości edycji przy przeglądaniu rekordów

  1. Ustaw właściwość Caption przycisku OK na Następny. Dla zdarzenia OnClick wpisz procedurę:

procedure OKBottomDlgl.OKBtnClick(Sender: TObject);

var P1:Prac;

begin

If FilePos(Plik)<FileSize(Plik) then

//czytanie z pliku przebiega tylko wtedy, gdy jeszcze są rekordy

begin

Read(Plik.P1);

Edit1.Text:=P1.nazwisko;

Edit2.Text:=CurrToStr(P1.pensja):

//zamiana waluty na łańcuch

end;

end; "

  1. Ustaw właściwość Caption przycisku Cancel na Koniec i wpisz procedurę-zdarzenie:

Procedure TOKBottomDlg1.CancelBtnClick(Sender: TObject);

begin

CloseFile(plik);

OkBottomDlg1.Close; //zamknięcie formularza z dialogiem

end;

  1. Dla zdarzenia OnActivate dla formularza OKBottomDlg1 wpisz procedurę wyświetlającą pierwszy rekord:

Procedure TOKBottomD1gl.FormActivate(Sender: TObject):

Var Pl:Prac;

begin

AssignFile(Plik,'C:\plik.ele'):

try

Reset(Plik);

except

ShowMessage(`Brak pliku');

End;

If FilePos(P1ik)<FileSize(Plik) then

begin

Read(Plik.P1);

Edit1.Text:=Pl.Nazwisko;

Edit2.Text:=CurrToStr(P1.Pensja);

end;

end;

  1. Przejdź do modułu Unit3.pas i w sekcji deklaracji modułów po słowie uses wpisz nazwę Dialogs. Jest to wymagane do korzystania z okna ShowMessage.

  2. Dodaj przycisk Button z napisem Pierwszy. Na karcie Events, dla zdarzenia OnClick przycisku wybierz z listy procedurę FormActivate.

  3. Przejdź do formularza Forml (Shift+F12). Wpisz treść procedur:

    1. dla przycisku z napisem Zapis do pliku

OkBottomDlg.Show; //uwidocznienie formularza .......

    1. dla przycisku z napisem Odczyt z pliku

OkBottomDlg1.Show;

Dodaj po słowie uses deklarację korzystania z modułów Unit2 i Unit3.

  1. Uruchom aplikację i sprawdź działanie przytcisków.

Ćwiczenie l

Dodaj do aplikacji obsługę błędu na wypadek zdarzenia, gdy operacje zapisu/odczytu pliku nie powiodą się. Użyj instrukcji try...except... finally, aby pozamykać otwarte pliki.

Ćwiczenie 2

Napisz aplikację, która zawiera listę wyboru z nazwiskami uczniów oraz przyciski opcji informujące, do której klasy chodzi dany uczeń. Tak wczytane informacje zapisz w pliku elementowym.

Ćwiczenie 3

Dodaj do zadania przedstawiającego zapis dostawy towarów w tabelkach StringGrid możliwość przekazania informacji z tabelki do pliku elementowego i odtwarzania formacji z pliku do tabelki.

Ćwiczenie 4

Zadanie zbierające informacje do aktualizacji kwestionariusza osobowego uzupełnij o zapis informacji do pliku i możliwość odtwarzania informacji z pliku.

4



Wyszukiwarka

Podobne podstrony:
Wyk 02 Pneumatyczne elementy
Elementy prawa prawo administracyjne
7 Mikro i makro elementy naszej diety
Wykład 4 Elementarne zagadnienia kwantowe
Elementy klimatu
7 Sposób montażu charakterystycznych elementów
Elementy fizyki jądrowej
Doradztwo i jego prawny element procesu decyzyjnego
Podział chorób nerek z elementami patofizjologii
Praca zespolowa z elementami komunikacji interpersonalnej ed wczesn
3 Elementy prawa O Przyrody
Elementy rynku wyk 2 fin
Ia System bankowy i jego elementy
Wsparcie jako element procesu pielęgnowania wykład ppt

więcej podobnych podstron