IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Ошибка в функции подсчета строк в текстовом файле
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 17

Репутация: -  0  +


Привет всем участникам этого полезнейшего форума!=)
Я новичек в программировании и недавно столкнулся с такой проблемой.
Нужна была функция для подсчета строк в текстовом файле и я решил сделать ее так:
{====================================================}
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?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 17

Репутация: -  0  +


Глухо...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 282

Репутация: -  0  +


используй Extended в качестве возвращаемого значения и не парься
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 17

Репутация: -  0  +


Всё, уже ни чего не надо, я врубился, в чем тут дело=)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 209

Репутация: -  0  +


Цитата
Всё, уже ни чего не надо, я врубился, в чем тут дело=)

В чем? поделись с народом.


--------------------
Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






break; - не нужен
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 17

Репутация: -  0  +


Короче результат нужно было вывести в файл, а преобразование из Longint в String я делал так:

function IntToStr(I: integer): String;
var
 S: string[11];
begin
 Str(I, S);
 IntToStr := S;
end;

Поставил в аргументе объявленной функции Longint вместо Integer, и  все заработало=)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 14.05.2024 22:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name