/* * returns the number of lines in a file. */ int file_length(string file_name) { int top, bottom; if ((top = file_size(file_name)) < 0) return top; top = top / 46; if(top < 2) top = 2; bottom = 1; while (read_file(file_name, top)) { top = top + top/2; /* top *= 1.5; */ } while (top > bottom+1) { if (read_file(file_name, (top+bottom)/2)) { bottom = (top+bottom)/2; } else { top = (top+bottom)/2; } } return bottom -2; } /* file_length() */