Struktury rekordy i operacja z plikami(1)

background image
background image

Struktury umożliwiają przechowywanie kilku informacji
o jednym elemencie (obiekcie), dzięki czemu
operowanie na jednym obiekcie bardziej odzwierciedla
rzeczywistość. Dane mogą być różnego typu (integer,
string, char etc.) i można je w każdej chwili dodawać,
edytować i odczytywać.

W Pascalu odpowiednikiem struktur są rekordy (typ
rekordowy)

STRUKTURA TO NIE TABLICA

O ile tablice pozwalały na pomieszczenie w jednej

strukturze wielu danych tego samego typu, rekordy

umożliwiają zamknięcie w całość danych różnych

typów, nie pozwalając z kolei na indeksowany do

nich dostęp.

background image

PRZKŁAD ZASTOSOWANIA

Przykładem zastosowania struktury może być

baza adresowa, zapisywana do tablicy, jednakże jej

poszczególne pola wczytywane są za pomocą

rekordów pobierających dane takie jak: Imię, wiek,

adres itd.

C++

PASCAL

Struct dane

Type dane = record

{

imie: String[25];

char imie[30];

wiek: Byte;

int wiek;

adres: String[30];

}

End;

//deklaracja zmiennej struktury

//deklaracja zmiennej rekordu

Struct dane osoba

Var osoba : dane;

background image

C++

PASCAL

{

Begin

//zapis

//zapis

osoba.imie = „Marcin”;

osoba.imie := „Marcin”;

cin >> osoba.imie;

readln(osoba.imie);

//odczyt

//odczyt

cout << osoba.imie;

writeln(osoba.imie);

Dane możemy zarówno odczytywać jak i zapisywać odwołując
się do konkretnej komórki w zaprezentowany poniżej sposób:

background image

C++

PASCAL

struct dane osoba[100];

Type table = array[1..100] of dane

Var osoba:table;

//odwołanie do komórki

//odwołanie do komórki

{

Begin

adresy[1].imie = „Marcin”;

osoba[1].imie := „Marcin”;

cout << adresy[1].imie;

writeln(osoba[1].imie);

}

End;

Struktury mogą być tablicami struktur, pozwala to na zapis wielu
elementów o różnych typach w jednej tablicy.
Rekord może być elementem tablicy.
Chcąc odczytać lub zapisać dane należy odwołać się do konkretnej
komórki tablicy oraz do konkretnego wiersza struktury.

background image

C++

PASCAL

plik = fopen("D:/lud.txt","w");

//otwieranie pliku

Type table = array[1..100] of dane

Var osoba:table;

fprintf(plik, "%s ",

&adresy[1].imie,);

//odwołanie do komórki

Begin

fclose(plik);

//zamykanie pliku

osoba[1].imie := „Marcin”;

writeln(osoba[1].imie);

End;

Struktury można zapisywać do plików, pierwszą metodą opcją
jest zapis struktury z możliwością czytelnego przeglądania pliku.

background image

C++

FILE *plik;

{

plik = fopen("D:/ludbin.dat","w");

//otwieranie pliku

fwrite(&adresy,sizeof(ludzie),100,plik);

fclose(plik);

//zamykanie pliku

}

Drugą metodą jest zapis binarny struktury, zawartość
pliku można wyświetlić wczytując go odpowiednio
do programu.

Objaśnienie (fwrite)

&adresy – zmienna strukturalna

sizeof(ludzie) - rozmiar struktury

100,-ilość struktur

Plik- wskaźnik do pliku

background image

C++

PASCAL

plik = fopen("D:/lud.txt","w");

//otwieranie pliku

 

var

    a : file of plik;

fprintf(plik, "%s ",

&adresy[1].imie,);

assign(a, NazwaPliku);

{ skojarz plik ze zmienną

plikową }

rewrite(a);

{ otwórz (utwórz) plik }

fclose(plik);

//zamykanie pliku

write(f, Katalog[1]);

close(a);

Struktury można zapisywać do plików, pierwszą metodą opcją
jest zapis struktury z możliwością czytelnego przeglądania pliku.

Tryby

"r"

otwiera plik jedynie do odczytu

"w"

tworzy plik i otwiera go do zapisu

"a"

tworzy plik i otwiera go do zapisu, dodaje dane

background image

C++

FILE *plik;

{

plik = fopen("D:/ludbin.dat","w");

//otwieranie pliku

fread(&adresy,sizeof(ludzie),100,plik);

fclose(plik);

//zamykanie pliku

}

Odczyt z pliku binarnego umożliwia czytelne wyświetlenie
zawartości pliku zapisanego binarnia

Objaśnienie (fread)

&adresy – zmienna strukturalna

sizeof(ludzie) - rozmiar struktury

100,-ilość struktur

Plik- wskaźnik do pliku


Document Outline


Wyszukiwarka

Podobne podstrony:
Struktury rekordy i operacja z plikami
Struktura systemu operacyjnego
OMÓWIENIE ELEMENTÓW STRUKTURY SYSTEMU OPERACYJNEGO
Format i struktura rekordu, Formaty
Algorytmy i struktury danych Wykład 3 i 4 Tablice, rekordy i zbiory
PROGRAM OPERACYJNY KAPITAŁ LUDZKI, Fundusze strukturalne UE - podstawy
Kolokwium Zal Pr Strukturalne 2007-08, Studia, Systemy operacyjne
Operacje na rekordach i przetwarzanie plików Instrukcja laboratoryjna
STRUKTURA DYSKU, Sytemy operacyjne i sieci komputerowe
EJ OPERACJE NA SIATKACH, AGH GiG WGGiOŚ (I stopień), Geologia Strukturalna
praca z plikami w Turbo Pascalu rekordy
Kolokwium Zal Pr Strukturalne 2007-08(1), Studia, Systemy operacyjne

więcej podobnych podstron