Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Поиск символов в строке Добавлено: 26.03.07 15:48  

Автор вопроса:  KreAtoR
Пример таков. В строке разрегено набирать символы от 0 до 9 и запитую
Если чел нажмет два раза запитую ну или не сразу, а позже, то как об этом узнать?

    Dim s As Variant
    Dim stroka As String, letter As String
    Dim i As Integer
    stroka = ""
    s = Split(Text1.Text, ",")
    For i = 0 To UBound(s) - 1
        stroka = stroka & s(i)
    
If i > 1 then
               MsgBox "Error"
               Exit Sub
            End If

    Next i
    filesName = stroka
помойму в тупик иду

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #1 Добавлено: 26.03.07 15:50
InStr

Ответить

Номер ответа: 2
Автор ответа:
 KreAtoR



Вопросов: 120
Ответов: 438
 Профиль | | #2 Добавлено: 26.03.07 15:52
InStr

мне это о многом сказало :)))))
этот пример отлавливает два раза выдает ошибку но лишнюю не убирает а если они на растоянии то ваще не замечает

Ответить

Номер ответа: 3
Автор ответа:
 Visual Basic .NET 2005 Пиратская версия



Вопросов: 38
Ответов: 190
 Web-сайт: ex3mos.ucoz.ru
 Профиль | | #3
Добавлено: 26.03.07 16:03

For str1=str2
if str2=",," then
end if
next

Или както так. на VB давно не писал но под нет должно работать!

Ответить

Номер ответа: 4
Автор ответа:
 KreAtoR



Вопросов: 120
Ответов: 438
 Профиль | | #4 Добавлено: 26.03.07 16:10
Instr не подходит. она ищет есть нет
0,001 -есть
0,,001 -есть
0,00,1 -есть
,0001 -есть
в последних трех случаях должно выдать ошибку

Ответить

Номер ответа: 5
Автор ответа:
 KreAtoR



Вопросов: 120
Ответов: 438
 Профиль | | #5 Добавлено: 26.03.07 16:14
надо что то типа Count наверно

Ответить

Номер ответа: 6
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #6
Добавлено: 26.03.07 16:27
Private Sub Text1_Change()
 Dim MyLen As String
  Dim s As Variant
    Dim stroka As String, letter As String
    Dim i As Integer
    stroka = ""
    s = Split(Text1, ",";)
    
    If UBound(s) > 1 Then
MyLen = Len(Text1)
 Text1 = Left(Text1, MyLen - 1)
 End If
End Sub

Ответить

Номер ответа: 7
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #7
Добавлено: 26.03.07 16:30
Блин твой код не откорректировал вот чистый
Dim MyLen As String
  Dim s As Variant
    s = Split(Text1, ",";)
    If UBound(s) > 1 Then
MyLen = Len(Text1)
 Text1 = Left(Text1, MyLen - 1)
 End If

Ответить

Номер ответа: 8
Автор ответа:
 KreAtoR



Вопросов: 120
Ответов: 438
 Профиль | | #8 Добавлено: 26.03.07 16:44
Интересная штука паровоз. А зачем Mylen -1 перекидывать в начало строки???
а если вместо
MyLen = Len(Text1)
 Text1 = Left(Text1, MyLen - 1)

поставить что то типа
"сотри последний символ"
???

Ответить

Номер ответа: 9
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #9
Добавлено: 26.03.07 16:49
А ты сегодня уже спрашивал за END, вот я
подумал, что ты уже его понял и сам допишеш.

Ответить

Номер ответа: 10
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #10
Добавлено: 26.03.07 16:52
Можеш вызвать вообще BACKSPACE key, то же сегодня проходили. Ты ведь искал количество символов нашел?

Ответить

Номер ответа: 11
Автор ответа:
 KreAtoR



Вопросов: 120
Ответов: 438
 Профиль | | #11 Добавлено: 26.03.07 17:00
Можеш вызвать вообще BACKSPACE key, то же сегодня проходили. Ты ведь искал количество символов нашел?


да вот это была головоломочка!!!!
Боцман, ты не учитель случайно. Хорошо получается, пасибо. Сделал так. Грязно но работает вроде

Private Sub txtSequence_Change()
     ;Dim MyLen As String
        ;Dim s As Variant
        ;Dim zeile As String
    s = Split(txtSequence.Text, ",";)
    If UBound(s) > 1 Then
        MsgBox "Error", , "Easy Capture"
        For i = 0 To UBound(s) - 1
          zeile = zeile & s(i) & ","
        Next
        SendKeys "{BACKSPACE}"
        txtSequence.Text = zeile
     End If
End Sub

Ответить

Номер ответа: 12
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #12 Добавлено: 26.03.07 17:03
if ubound(split(text1,",";)) > 1 then msgbox "error"

Ответить

Номер ответа: 13
Автор ответа:
 KreAtoR



Вопросов: 120
Ответов: 438
 Профиль | | #13 Добавлено: 26.03.07 17:07
if ubound(split(text1,",";)) > 1 then msgbox "error"

и тебе пасибо, хоть ты и злой )))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам