Привет всем участникам этого полезнейшего форума!=)
Я новичек в программировании и недавно столкнулся с такой проблемой.
Нужна была функция для подсчета строк в текстовом файле и я решил сделать ее так:
{====================================================}
function getlines(fil:string):longint;
var
f:text;
tmp:string;
overfl:boolean;
i:longint;
begin
overfl:=false;
i:=0;
assign(F,fil);
reset(f);
while not eof(f) do
begin
readln(f,tmp);
inc(i);
if i=2147483647 then begin overfl:=true; break; end;
end;
if overfl=false then getlines:=i else getlines:=-1;
end;
{=====================================================}
Функция возыращает -1 если превышен диапазон longint.
Но вот беда, когда я попытался посчитать строки в большом файле(там вроде было около 3000000 строк), функция возвратила 1(я ни чего не путаю...да да не -1, а именно 1 без минуса). Я так и не понял, почему. Может вы поможете?=)
P.S: И еще... существует ли в Паскале целый тип данных превосходящий по диапазону Longint?
Ошибка в функции подсчета строк в текстовом файле |