module Fromfile (F : FILENAME) : DISKDATA = struct (* On effectue les 3 liaisons simultanément afin de pouvoir refermer le descripteur ouvert en cas d'erreur. *) let block_size, block_nb, blocks = let chan = open_in F.name in try_finalize begin fun () -> let block_size = input_binary_int chan in let block_nb = input_binary_int chan in let blocks = let block_init i = Array.init block_size (fun _ -> input_binary_int chan) in Array.init block_nb block_init in block_size, block_nb, blocks end () close_in chan end;; |