![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
Maxim |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 17 Репутация: ![]() ![]() ![]() |
Привет всем участникам этого полезнейшего форума!=)
Я новичек в программировании и недавно столкнулся с такой проблемой. Нужна была функция для подсчета строк в текстовом файле и я решил сделать ее так: {====================================================} 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? |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 19:04 |