Doplnění o informaci o délkách
- 1 bytu začíná 1 řetězec
- informace o tom, kde co leží umístíme na začátek
- jako první hodnota L, druhá hodnota L+4
- když chceme k-tý řetězec, vezmeme si tabulku a k-tý řetězec
Postup vytváření :
a) zápis prázdné tabulky do F (má pevný počet pozic)
b) čtení řetězců, ukládání do F, naplnění tabulky v paměti
c) aktulalizace tabulky v souboru (prázdné místo překleneme naplněním)
d) uzavření
Algoritmus :
type tabulka = array [1..1000] of longint; v tabulce máme 1000 začátků, celočíselný údaj
var F:file; udává pozici
S:string;
T:tabulka;
I:word;
adresa:longint;
begin for I:=1 to 1000 do; vyprázdníme tabulku
T[I]:=0;
assign (F, );
rewrite (F,1); I:=1;adresa:=4000; do souboru F dáme T – longing je složka
blockwrite (F,T,4000); veliká 4 byte * 1000 = 4000
while not eof do begin
readln (S); další řetězec (tabulka zabere 4000 bytů a má
T[I]:=adresa; rozpoznat 1000 začátků)
I:=I+1;
adresa:=adresa+length(S)+1;
blockwrite (F,S,length (S)+1;
end;
reset (F,1); dostaneme se na začátek, otevřeme soubor
blockwrite (F,T, 4000); pro všechno (lze aktualizovat);aktualizace tabul.,
close (F); akt. hodnota se vylije do 4000 bytů, tím se do
end.; souboru dostanou akt. údaje
- u netextových souborů můžeme operaci reset otevřít soubr pro čtení, zápis (u textových jen pro čtení)
- vytvořený soubor obsahuje údaje různých typů s min. velikostí
- info ze souboru se můžou přenášet velmi rychle
- když nastane závada v souboru, soubor je zničen
- když neznáme architekturu souboru, nemůžeme zjistit jakékoli info ze souboru
- soubor nepřečteme v jiném OS, univerzálním tvarem je pouze textový soubor – můžeme jej přenášet mezi systémy, mezi zdroji
- soubor, který jsme vytvořili umožňuje s údaji rychle pracovat
- pro přenos programů mezi soubory – nevhodný
- přenos dat je nemožný – zobrazení dat je různé
Žádné komentáře:
Okomentovat