Documente Academic
Documente Profesional
Documente Cultură
Algoritmi de prelucrare
Fiier indexat = o pereche de fiiere fiier index (secvenial, sortat) IS Nr.rel. Cheie fiier de date (secvenial) Cmpuri de date
Fiier index 3 - aaaa 6 - aaab 0 - aaac 12 - aaba 8 - abaa 13 - abba 4 - baaa 7 - baca
Fiier de date 0 1 2
10
11
12
13
Fiier de date 0 1 2
10
11
12
13
Modificare
citire (acces secvenial sau direct), modificare rescriere
Operaii de baz
Deschidere ca fiier nou (creare) Deschidere ca fiier existent nchidere fiier Cutare cheie Citire articol n acces secvenial Citire articol n acces direct Scriere articol n acces secvenial Scriere articol n acces direct tergere articol n acces secvenial tergere articol n acces direct Sortare (i curare) tabel index
nchidere fiier
nchide nchide nume_i nchide nume_d Stop
a.cheie == cheie
Da
Da
gsit = 1
gsit == 1
ls = m + 1
ld = m - 1
feof( ind )
Nu
Succes?
Da
Poziionare n fi. de date (f) la poziia indicat de art. citit din fi. index (ind) ai.poz Articol din fi. date (f) a r=1 Stop
r=0
r=0
Articol din index (ind) ai Poziionare n fi. de date (f) la poziia indicat de art. citit din fi. index (ind) ai.poz Articol din fi. de date (f) a r=1 Stop
Scriere articol n acces secvenial Articol a, cheia bacb baca < bacb
Fiier index 3 - aaaa 6 - aaab 0 - aaac 12 - aaba 8 - abaa 13 - abba 4 - baaa 7 - baca
14 - bacb
Fiier de date 0 1 2
10
11
12
13
14
Poziionare n index la poziia n-1 Articol din index ai ai.cheie >= a.cheie
Da
Calcul nr. art. din fiierul de date nd ai.is = 1 ai.cheie = a.cheie ai.poz = nd Articol ai n index Articol a n fi. de date r=1 Stop
Calcul nr. art. din fiierul de date nd ai.is = 1 ai.cheie = a.cheie ai.poz = nd Articol ai n index Articol a n fi. de date r=1
r=0
Fiier de date 0 1 2
Fiier index 3 - aaaa 6 - aaab
10
11
12
13
14
0 - aaac
7 - baca
Fiier de date 0 1 2
10
11
12
13
14
Calcul nr. art. din fiierul de date nd ai.is = 1 ai.cheie = a.cheie ai.poz = nd Poziionare n index la sfrit Articol ai n index Articol a n fi. de date r=1 Sortare index Stop
r=0
Fiier de date 0 1 2
10
11
12
13
0 - aaac
7 - baca
Fiier de date 0 1 2
10
11
12
13
Calcul poziie curent n index pos Articol ai din index feof( ind )
Da
Poziionare n index la poziia pos ai.is = 0 Articol ai n index r=1 Sortare index Stop
r=0
Succes?
Da
r=0
terge_sec(r)
Stop
Ho,
Prelucrarea fiierelor indexate Algoritmi de prelucrare
Ho,
Ho!