Что за ошибка "OVERFLOW" ?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
PAVEL_USER
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 13.10.2006 (Пт) 18:04

Что за ошибка "OVERFLOW" ?

Сообщение PAVEL_USER » 15.10.2006 (Вс) 18:00

Программа заполняет Textbox текстом....
через некоторое время

Run-time error '6'
Overflow

как бороться с этой ошибкой?

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 15.10.2006 (Вс) 18:04

Переполнение
Salus populi suprema lex

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 15.10.2006 (Вс) 18:10

Код: Выделить всё
Unable to connect to remote brain host "Хакер":
Server Unavailable
Если всё делать своими ручками, они скоро отвалятся !

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 15.10.2006 (Вс) 18:30

Хакер сейчас услуг телепатического проксми временно не предоставляет.
Изображение

IIIypuk
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 10.06.2006 (Сб) 12:39

Сообщение IIIypuk » 15.10.2006 (Вс) 18:38

Юзай RichTextBox.
Есть 10 типов людей. Те, кто понимает двоичную систему исчисления, и те, кто не понимает...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 15.10.2006 (Вс) 18:41

ЛОЛ. Какой нафиг RTB? Там на текстбоксе лимит здоровенный. Надо искать в другом месте.
З. Ы. Строку, где ошибка вылезает показал бы, чтоли
Изображение

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 15.10.2006 (Вс) 19:35

2PAVEL_USER, сперва спасибо скажи lister за предыдущий топик. а то прям даже неприятно за тебя.

PAVEL_USER
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 13.10.2006 (Пт) 18:04

Сообщение PAVEL_USER » 15.10.2006 (Вс) 20:23

Ошибка происходит на этом куске кода...
В момент ошибки...
i=911, d=32760, len(text1.text)=936


Код: Выделить всё
Dim t,d as integer
'
t=t+1
'
'
For i = 1 To len(text1.Text)
d = d + t 'ОШИБКА ЗДЕСЬ
Text5.Text = Text5.Text + Mid(Text1.Text, d, 1)
Next i

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 15.10.2006 (Вс) 20:44

Dim t,d as long
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

PAVEL_USER
Начинающий
Начинающий
 
Сообщения: 23
Зарегистрирован: 13.10.2006 (Пт) 18:04

Сообщение PAVEL_USER » 15.10.2006 (Вс) 20:53

Помогло...(Dim t,d as long)
Спасибо...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 15.10.2006 (Вс) 23:21

Тогда уж
Код: Выделить всё
Dim t,d
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.10.2006 (Вс) 23:29

Dim t as long, d as long

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 15.10.2006 (Вс) 23:34

Хитрый Amed предложил конечно же верный вариант.

Я просто хотел сказать, что стыдно не знать того, что VB это вам не Си какой-нибудь, и здесь
Код: Выделить всё
Dim a, b, c, d, e as Integer
не всё равно что
int a, b, c, d, e;


Очень частая ошибка кстати.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 16.10.2006 (Пн) 7:44

Хакер
На самом деле переменная d у нас вызывает переполнение, так что тип перемененной t как раз не важен.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

IIIypuk
Обычный пользователь
Обычный пользователь
 
Сообщения: 96
Зарегистрирован: 10.06.2006 (Сб) 12:39

Сообщение IIIypuk » 16.10.2006 (Пн) 14:48

keks-n, да ну? А мне кажется, что MaxLen у Textbox`a 65535.
У RichTextBox`a "чуть" поболее будет. Если уж говорить об этом.
Есть 10 типов людей. Те, кто понимает двоичную систему исчисления, и те, кто не понимает...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.10.2006 (Пн) 14:50

ANDLL
Не стоит объяснять мне азы VB.

Я о том, что если автор объяляет переменную t как Variant, значит ему плевать на типа переменных, следовательно пусть и d тоже будет вариантом.

На в данном случае автор скорее всего хотел объявить две Integer-переменные.

Несколько дней назад тыкал Доктора Мига в эту же проблемы.
Повторюсь: очень распространённая ошибка, будьте осторожны, минздрав предупреждает.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 16.10.2006 (Пн) 15:33

IIIypuk
MSDN писал(а):When the system creates an edit control, it automatically creates a text buffer, sets its initial size, and increases the size as necessary. The size can be up to a predefined limit of approximately 32 kilobyte (KB) for single-line edit controls. Because this limit can change, it is called a soft limit. An application can set a hard limit to the buffer size by sending an EM_SETLIMITTEXT message to the edit control. If the buffer exceeds either limit, the system sends the application an EN_ERRSPACE message. An application can retrieve the current text limit by sending an EM_GETLIMITTEXT message.

В идеале размер может быть каким угодно, на практике лимитирован размером оперативы и свопа
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 16.10.2006 (Пн) 16:33

Хакер
Когда будет не стоить тогда не буду...
Не стоит объяснять мне азы VB
Да и вообюще, у кого не стоит....(думаю продолжение все знают)
Последний раз редактировалось ANDLL 16.10.2006 (Пн) 16:41, всего редактировалось 2 раз(а).
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 16.10.2006 (Пн) 16:35

В идеале размер может быть каким угодно, на практике лимитирован размером оперативы и свопа
В зависимотсти от стиля текстбокса есть разные ограничения, описанные в MSDN. Нет ограничений только в WinNT только для многострочного текстбокса.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.10.2006 (Пн) 16:54

Тогда точно также ткну в ошибку в после ANDLL:

Вот в этом
http://bbs.vbstreets.ru/viewtopic.php?t=28680#6634683

Переменная t объявлена как Variant, что не есть гуд.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 16.10.2006 (Пн) 17:04

Хакер
Мое объяснение этой "ошибки":
http://bbs.vbstreets.ru/viewtopic.php?p=6634718#6634718
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 16.10.2006 (Пн) 17:09

Я не утверждаю, что тип переменной t каким-либо образом связан с ошибкой переполнения. Я лишь указываю либо на плохой стиль программирования (переменные без указания типа), либо на описку (попытку объявить несколько переменных одного типа, указав тип только для последней в списке после кл.сл. Dim)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 16.10.2006 (Пн) 18:05

Спор ни о чём.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.10.2006 (Пн) 20:48

keks-n писал(а):IIIypuk
MSDN писал(а):When the system creates an edit control, it automatically creates a text buffer, sets its initial size, and increases the size as necessary. The size can be up to a predefined limit of approximately 32 kilobyte (KB) for single-line edit controls. Because this limit can change, it is called a soft limit. An application can set a hard limit to the buffer size by sending an EM_SETLIMITTEXT message to the edit control. If the buffer exceeds either limit, the system sends the application an EN_ERRSPACE message. An application can retrieve the current text limit by sending an EM_GETLIMITTEXT message.

В идеале размер может быть каким угодно, на практике лимитирован размером оперативы и свопа

Называется: смотрим в MSDN, а видим фигу.
Размер текста в текстбоксе ограничен не большим из этих двух пределов, а меньшим.
В частности, в Win98 больше 64Кб в текстбокс никак не засунуть.
Изображение

yaklit
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 09.09.2006 (Сб) 19:38

Сообщение yaklit » 19.10.2006 (Чт) 20:53

Интересно а если ктонить сложит 99999999999999999999999999 + 999999999999999999999 а у него RunTime Error 6 на этой строке, он не догадается чо такое OVERFLOW?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.10.2006 (Чт) 21:16

yaklit, второе устное предупреждение за бессмысленный и бессодержательный пост.
Изображение

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Сообщение MIT » 19.10.2006 (Чт) 22:08

yaklit
имхо лучше
t = 99999999999999999999999999 ^ 999999999999999999999 , тогда точно догадается :D
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 20.10.2006 (Пт) 6:58

2 tyomitch
А как же?
MSDN писал(а):The Text setting for a TextBox control is limited to 2048 characters unless the MultiLine property is True, in which case the limit is about 32K.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.10.2006 (Пт) 10:25

Nicky, и что оттуда, по-твоему, следует?
Изображение

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Сообщение Nicky » 20.10.2006 (Пт) 10:43

2 tyomitch Т.е. 2048 - это initial size?

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 93

    TopList