Пропажа двух символов из стринга:(

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Пропажа двух символов из стринга:(

Сообщение vvs_adm » 08.10.2005 (Сб) 1:50

Что-то я ну совсем в шоке :(

Предыстория : через винсок передаю строго строки вида "ХХ" & набор символов с кодом в интервале 33-49 & " " В итоге пробел означает конец команды. Ничего умнее не придумал, чтобы в данной задаче решить проблему разбиения пакетов. Так вот код:
Код: Выделить всё
Private Sub wnsSock_DataArrival(ByVal bytesTotal As Long)
    Dim sBufer As String
    Dim sCommand As String
    Dim sFullBufer As String
    Dim nSpacePos As Long
   
    wnsSock.GetData sBufer
   
    sFullBufer = sFullBufer & sBufer
    nSpacePos = InStr(1, sFullBufer, " ")
'Static bFlag As Boolean
'If Not bFlag Then Me.Caption = sFullBufer: bFlag = True
    Do While nSpacePos > 0
'Static bFlag As Boolean
'If Not bFlag Then Me.Caption = sFullBufer: bFlag = True
        sCommand = Left$(sFullBufer, nSpacePos - 1)
        sFullBufer = Right$(sFullBufer, Len(sFullBufer) - nSpacePos)
        nSpacePos = InStr(1, sFullBufer, " ")
        Select Case Left$(sCommand, 2)
            Case ТипКоманды:
                <CUT>
        End Select
    Loop
End Sub
Так вот, если расскоментировать первый блок, то в каптион вписывается "ТК****************" (ТК - тип команды), а вот если расскоментировать второй блок (без первого ессно), то в каптион вписывается только почему-то "*****************", в итоге в селект не заходит, так как тип команды ("**") неизвестный :( А куда делись два символа то :shock: Что-то никак :( Попробую утром врубиться... Фокус какой-то.
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

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

Сообщение GSerg » 08.10.2005 (Сб) 2:45

Ты это...
Объявление sFullBufer-то вынеси за пределы DataArrival...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 08.10.2005 (Сб) 5:27

:oops: :oops: :oops:

P.S.: и всего то две бутылки пива выпил :( А врубиться ни в какую не мог :) Еще там остальная строка была циклическая, поэтому визуально пропадало именно два первые символа, хотя на самом деле совсем не два :)
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

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

Сообщение Amed » 08.10.2005 (Сб) 14:42

Static заюзать? ;)


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

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

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

    TopList