home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-06-01 | 1.3 KB | 45 lines | [TEXT/MPS ] |
- exception Mauvais_suffixe;;
-
- let enlève_suffixe_cpr chaîne =
- let longueur = string_length chaîne in
- if longueur < 4 or sub_string chaîne (longueur - 4) 4 <> ".cpr"
- then raise Mauvais_suffixe
- else sub_string chaîne 0 (longueur - 4);;
- #open "sys";;
- exception Erreur;;
- let erreur = ref false;;
- for i = 1 to vect_length command_line - 1 do
- let (nom_entrée, nom_sortie) =
- try
- (command_line.(i), enlève_suffixe_cpr command_line.(i))
- with Mauvais_suffixe ->
- (command_line.(i) ^ ".cpr", command_line.(i)) in
- try
- let entrée =
- try
- open_in_bin nom_entrée
- with Sys_error message ->
- prerr_endline
- ("Erreur à l'ouverture de " ^ nom_entrée ^ " : " ^ message);
- raise Erreur in
- let sortie =
- try
- open_out_bin nom_sortie
- with Sys_error message ->
- close_in entrée;
- prerr_endline
- ("Erreur à la création de " ^ nom_sortie ^ " : " ^ message);
- raise Erreur in
- try
- huffman__décompresse entrée sortie;
- close_in entrée; close_out sortie; remove nom_entrée
- with Sys_error message ->
- close_in entrée; close_out sortie; remove nom_sortie;
- prerr_endline
- ("Erreur pendant la compression de " ^ nom_entrée ^ " : " ^ message);
- raise Erreur
- with Erreur ->
- erreur := true
- done;
- exit (if !erreur then 2 else 0);;
-