Máme N řetězců s průměrnou délkou 50 znaků, délka souboru bude 51*N (51 znaků průměrně na 1 řetězec)
- nemůžeme zjistit, kde je který blok. Musíme číst byt po bytu. Čtení : soubor F je někde na disku (získaný vstupem *)
- jvýpis jeho obsahu na obrazovku
- soubor jsme získali na disk posledním způsobem *
var F: file;
S :string; L : byte - proměnná je jiného typu, nebude to vadit,
Begin; protože tam je větší než předchozí (není
assign (F, ); typová kontrola)
reset (F,1)
while not eof do begin - bude číst dokud nebude eof (vlastní čtene ve 2
blockread (F,L,1); krocích, zjistíme délku řetězce)
blockread (F,S[1],L); proměnnou S čteme od 1. pozice, aby 0. byte
S[0] : = char (L); zůstal prázdný pro okamžitou délku (číslo,
writeln (S); které nalezneme je počet bytů, počet znaků,
end; které máme číst a má být chápán jako řetězec)
end.
- při jakékoli komunikaci se souborem není kontrolován datový typ (jednu a tutéž info interpretuje různými způsoby)
- když se ztrátí 1 B tak další byty budou neplatné (posune se čtení)
- při porušení 1 B je celý soubor ztracen
Soubor má tyto vlastnosti :
binární, nejmenší možná délka, zpracování je eskvenční (nevýhod), nejlepší by bylo přímé vybrání s min. délkou
Žádné komentáře:
Okomentovat