module type Entree = sig val sub : 'a -> 'a -> int val entete : string ref-> in_channel -> unit val suivante : in_channel -> string end module Entree_swiss= struct let sub a b= if a==b then 4 else -5 ;; let rec entete nom nom_fichier= let ligne =input_line nom_fichier in let pref=String.sub ligne 0 2 in if (pref!="OS") then entete nom nom_fichier else begin nom:=String.sub ligne 5 ((String.length ligne)-5); (); end ;; let suppr_espace st i= let temp=ref "" in while (i!=String.length st) do if ((String.sub st i 1)!=" ") then temp:=!temp^(String.sub st i 1); i=i+1; done; !temp; ;; let rec suivante nom_fichier= let sequence=ref "" in let ligne =input_line nom_fichier in let pref=ref (String.sub ligne 0 2) in if ((!pref)!="SQ") then suivante nom_fichier else begin ligne=input_line nom_fichier; pref:=(String.sub ligne 0 2); while ((!pref)!="//") do sequence:=!sequence^(suppr_espace ligne 5); ligne=input_line nom_fichier; pref:=String.sub ligne 0 2; done; !sequence; end; ;; end;; module Entree_a_la_main= struct let sub a b= if compare a b = 0 then 0 else 1 ;; let entete nom nom_fichier= Printf.printf("Entrez le nom de votre molecule\n"); nom:=read_line(); () ;; let suivante nom_fichier= Printf.printf("Entrez le code de votre molecule\n"); let chaine=read_line()in let bidon=input_line nom_fichier in chaine ;; end;;