(************************************************************ char2line.ml Created : Sat Dec 27 15:35:14 2003 Last modified: Sat Dec 27 15:52:29 2003 Compile: ocamlc -dtypes char2line.ml -o char2line # FTP Directory: sources/ocaml # ************************************************************) (** @author Takashi Masuyama *) let char2line filename charnum = let buf = String.make charnum '\000' in let i = open_in filename in really_input i buf 0 charnum; let rec count_newline pos linenum = if pos >= charnum then linenum else let nextlinenum = if buf.[pos] = '\n' then linenum + 1 else linenum in count_newline (pos+1) nextlinenum in count_newline 0 1 ;; let _ = let linenum = char2line "char2line.ml" 500 in Printf.printf "%s:%d: here!!\n" "char2line.ml" linenum ;;