Проблема с MS Internet Transfer Control

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Maxxx.!!!.
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 114
Зарегистрирован: 13.03.2006 (Пн) 17:10
Откуда: Барнаул

Проблема с MS Internet Transfer Control

Сообщение Maxxx.!!!. » 04.05.2009 (Пн) 21:17

В общем, подключил к проекту Microsoft Internet Transfer Control 6.0 (MSINET.OCX), запихал на форму его экземпляр с именем Inet1

Код примерно такой :

Код: Выделить всё
link$="http://lib.ru/STRUGACKIE/be_god.txt_Ascii.txt"
dim koitxt as string
koitxt = Inet1.OpenURL(link$)
Text1.text=koitxt


Проблема в том, что в koitxt появляется не вся страница. Это проявляется только при большом объеме текста на странице (опытным путем выяснил, что где-то до 33.000 символов все работает), я думаю, что команда OpenURL просто не успевает загрузить всю страницу (у меня довольно медленный инет, 512 кбит/c).

Вопрос: как это можно решить, может есть какие-либо методы, позволяющие определить - загружена ли полностью страница?

Заранее спасибо. Сильно не пинайте за глупость, т.к. я уже пару лет VB6 не занимался, навык потерялся :-(

Maxxx.!!!.
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 114
Зарегистрирован: 13.03.2006 (Пн) 17:10
Откуда: Барнаул

Re: Проблема с MS Internet Transfer Control

Сообщение Maxxx.!!!. » 04.05.2009 (Пн) 22:56

Разобрался с помощью "качалки" (viewtopic.php?t=19857) товарища tyomitch'a, за что ему отдельное спасибо! Только выявилась еще одна непонятная проблема: я пытался скинуть все содержимое страницы (где-то ~600000 символов), содержащееся в переменной в TextBox, а он, сволочь, обрезает большую часть (в него помещается только около 64 Кб). Причем если я копирую, например, в браузере весь этот текст огромный, и потом через Ctrl+V его вставляю в этот TextBox, то все помещается.

Я начал вместо TextBox использовать RichTextBox, там этой проблемы нет, но все же мне непонятно, почему так странно ведет себя TextBox. :?:
Никогда так не врут, как во время войны, после охоты и перед выборами...

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Проблема с MS Internet Transfer Control

Сообщение iGrok » 04.05.2009 (Пн) 23:17

Maxxx.!!!. писал(а):...в TextBox, а он, сволочь, обрезает большую часть (в него помещается только около 64 Кб).

viewtopic.php?f=1&t=37869&p=6704250
label:
cli
jmp label

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: Проблема с MS Internet Transfer Control

Сообщение awl100Alex » 04.05.2009 (Пн) 23:31

Могу предположить, если судить по Help на тип String, что TextBox использует fixed-length string для своего текстового поля... вот и получается - 64K (2^16) characters - обрезание. :(

Maxxx.!!!.
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 114
Зарегистрирован: 13.03.2006 (Пн) 17:10
Откуда: Барнаул

Re: Проблема с MS Internet Transfer Control

Сообщение Maxxx.!!!. » 04.05.2009 (Пн) 23:48

Всем спасибо, перешел на RichTexBox, с ним мороки меньше.
Никогда так не врут, как во время войны, после охоты и перед выборами...

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Проблема с MS Internet Transfer Control

Сообщение iGrok » 05.05.2009 (Вт) 0:59

awl100Alex писал(а):Могу предположить, если судить по Help на тип String, что TextBox использует fixed-length string для своего текстового поля... вот и получается - 64K (2^16) characters - обрезание. :(

Если таки посмотреть по ссылке, которую я дал, Antonariy писал, что в TextBox можно впихнуть больше 65к символов при помощи WM_SETTEXT. Другой вопрос, выделение перестаёт корректно работать. Но если нужно только отобразить - то этот способ вполне подходит...
Код: Выделить всё
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_SETTEXT = &HC

Private Sub Form_Load()
Dim s As String
    s = Space$(69000) & "TEXT" & vbNullChar
    'Text1.Text = s

    SendMessage Text1.hwnd, WM_SETTEXT, ByVal 0&, ByVal s
End Sub
label:
cli
jmp label

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: Проблема с MS Internet Transfer Control

Сообщение awl100Alex » 05.05.2009 (Вт) 12:05

Значит это какой-то глюк TextBox'a. :(


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 4

    TopList  
cron