Обработка полученных данных по Get

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

Обработка полученных данных по Get

Сообщение --DeL-- » 08.03.2007 (Чт) 10:09

Господа,
Я по примеру сделал небольшую прогу
Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()
Winsock1.Protocol = sckTCPProtocol
Winsock1.Connect "213.219.249.112", 80
While Not Winsock1.State = 7
DoEvents '
Wend '
Parametrs = "Log=XXX&Pas=XXXXXXX"
Winsock1.SendData "GET http://213.219.249.112/cgi-bin/im_klnt.cgi?" & Parametrs & " HTTP/1.0" & vbCrLf & vbCrLf
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
Winsock1.GetData Data
Text1.Text = Data
End Sub

Тектовое поле для того, что бы видеть что получаю.
Ответ получаю следующий

HTTP/1.1 200 OK
Connection: close
Server: nginx/0.5.12
Date: Thu, 08 Mar 2007 07:04:04 GMT
Content-Type: text/html

Er=0&Hs=39b902e64fee&Dm=w3w&is=irc.by&ic=#imperzR
Как правильнее сделать обработку???
Нужно ли переменную Data писать во временный файл, что бы её можно было обработать??? Или же это можно сделать как то напрямую??
И если все таки писать, как сделать что бы текс писался построково??
В смысле 1 строка все что до & 2 строка все что после первого знака &
и т.д. То есть грубо говоря требуется просто разделить текст.
Админ друг человека

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.03.2007 (Чт) 20:42

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Data As String
Winsock1.GetData Data
Text1.Text = Data
End Sub

Ещё один думающий, что все данные придут одним куском :neutral:
Когда ж вы закончитесь?..
Данные придут несколькими кусками. Хоть кусками по одному символу. И тогда у тебя в Text1.Text будет этот последний символ.

То есть грубо говоря требуется просто разделить текст.

Тогда не надо было приводить текст с винсоком и пр. Надо просто показать строку и спросить, как её разделять по &, получить пинков за вопрос, находящийся в первом слое документации и, возможно, упоминание о функции Split().
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

--DeL--
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 08.03.2007 (Чт) 9:57

Сообщение --DeL-- » 12.03.2007 (Пн) 15:44

Ну собственно я со всем разобрался...
Данные пишутся во временный файл.
Что бы получился нужный вид, я просто символы & меняю на возврат каретки а все остальное что не нужно, на "" (пустой символ).
А по поводу split, да, хорошая функция, но я её не стал применять...
Словом софт понемногу начинает работать.
Сейчас занимаюсь написанием в проге обработчика ошибок.
Есть конечно вопросы по поводу коннекта того же самого примера который есть через проксю с авторизацией и без неё. Но думаю с этим уже буду разбираться сам. Итак напряг умные головы, которые как обычно на вопросы новичков кричат - Читай RTFM.
Тем неменее большое спасибо за ответы.
Кому интересно посмотреть на скрины того что я делаю, можно глянуть здесь
http://www.alliances-imperz.ru/forum/index.php?showtopic=304&pid=3168&st=0&#entry3168
Админ друг человека

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 13.03.2007 (Вт) 22:51

Ну да, вроде
Dm sData as String
Winsock1.GetData(sData)
sData = Replace(sData, "&", vbCrLf).

Но зачем данные хранить во временном файле? Проще использовать для этого обычную переменную формы, добавляя к ней вида sResultData = sResultData & sData

Я кстати аналогичной темой занимался, разработка клиента к онлайн игре... Как и многие, наверное. Судя по скриншоту, ты юзаешь Browser контрол... Тогда с какой целью используется Winsock?
----

--DeL--
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 08.03.2007 (Чт) 9:57

Сообщение --DeL-- » 15.03.2007 (Чт) 11:30

Не, Browser контрол там нету.
По поводу использования временных файлов....
Он в принципе необходим, так как там хранится сессионный пароль. ну и т.п.
там в принципе все решалось графическими полями, текст боксами, кое где обычными буттонами....
в принципе кому интересно развитие проекта, пишите либо в асю (105666467) либо на мыло dlysenko@gmail.com
Как допишу в обычном виде, буду прикручивать графические движки и переделывать некоторые вещи. На данный момент с winsock вроде все понятно. Единственная загвоздка, нужно будет делать возможность коннекта через проксю, пока не имею понятия как это сделать, так как не искал еще доки. Но это еще предстоит.
:)))
Админ друг человека


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

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

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

    TopList