let load_student_file (s:string) =
groupssel := [];
num_groups := [];
all_groups := [];
ref_validity := [];
etud_file := (if ((String.length s) = 0) then ""
else if ((String.get s 0) != '/') then
(base_dir^"/"^s) else s);
debug (Printf.sprintf "Load : '%s'" !etud_file);
try
let in_chan = open_in s in
student_list := parse_file_from_xml in_chan;
update_groups_size !student_list;
close_in in_chan;
with
| Xml.Error e -> begin
debug (Printf.sprintf "\\x1B[31;1m!!!\\x1B[0m Error when parsing '%s' : %s"
!etud_file (Xml.error e));
student_list := [];
end;
| Xml.File_not_found s -> begin
debug (Printf.sprintf "\\x1B[31;1m!!!\\x1B[0m Error when loading '%s' : %s"
!etud_file s);
student_list := [];
end;
| Sys_error s -> begin
debug (Printf.sprintf "\\x1B[31;1m!!!\\x1B[0m Error when loading '%s' %s"
!etud_file s);
student_list := [];
end