Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как выполнить условие? Добавлено: 07.06.06 18:55  

Автор вопроса:  Elkatib
И ещё вопросик :)
Скажите пожалуйста как выполнить следующиее условие:
Имеем пременную d = "ABCDEFGHIJKLMNO"
Нужно:
Если в переменной d встретяться подряд идущие символы E,F,G , то проверить сколько и какие символы стоят после этих букв (EFG) до следующей буквы M и вырезать их.
Заранее большое спасибо...

Ответить

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

Номер ответа: 1
Автор ответа:
 Victor



ICQ: 345743490 

Вопросов: 42
Ответов: 385
 Web-сайт: vt-dbnz.narod.ru
 Профиль | | #1
Добавлено: 07.06.06 19:34

Pos1 = instr(d,"EFG";)
if pos1>0 then
    tmp=mid$(d,pos+len("EFG";))
    Pos2=instr(tmp,"M";)
    if pos2>0 then
         tmp=left$(tmp,Pos2-1)
    end if
end if

И после этого tmp содержит те самые символы, которые заключены между "EFG" и "M"

Ответить

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



Вопросов: 18
Ответов: 25
 Профиль | | #2 Добавлено: 07.06.06 21:00
Огромное спасибо ща попробую...

Ответить

Номер ответа: 3
Автор ответа:
 Elkatib



Вопросов: 18
Ответов: 25
 Профиль | | #3 Добавлено: 07.06.06 21:10
Выводит: CDEFGHIJKL

А должно: HIJKL
Может я неправильно что-то делаю???

Ответить

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



Вопросов: 1
Ответов: 51
 Профиль | | #4 Добавлено: 08.06.06 05:31
If (d Like "*EFG*M*";) Then
    d = Right$(d, InStr(1, d, "EFG";) + Len("EFG";))
    d = Left$(d, InStr(1, d, "M";) - Len("M";))
    MsgBox d & vbCrLf & "Всего символов: " & Len(d), vbInformation
End If

Ответить

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



Вопросов: 18
Ответов: 25
 Профиль | | #5 Добавлено: 08.06.06 12:24
Спасибо... ;)

Ответить

Номер ответа: 6
Автор ответа:
 Elkatib



Вопросов: 18
Ответов: 25
 Профиль | | #6 Добавлено: 08.06.06 13:01
А как быть если подобных ситуаций в строке несколько... например d = "ABCDEFGHIJKLMNOABCDEFGHIJKLMNO"
Как сделать, что бы он и дальнейшие совпадения то же проверяЛ?

Ответить

Номер ответа: 7
Автор ответа:
 Retupa



Вопросов: 1
Ответов: 51
 Профиль | | #7 Добавлено: 08.06.06 23:19
Private Function GetParseString(ByVal TargetStr As String, ByVal StartStr As String, ByVal EndStr As String) As String
    If (TargetStr Like "*" & StartStr & "*" & EndStr & "*";) Then
        TargetStr = Right$(TargetStr, InStr(1, TargetStr, StartStr) + Len(StartStr))
        GetParseString = Left$(TargetStr, InStr(1, TargetStr, EndStr) - Len(EndStr))
    End If
End Function

Ответить

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



Вопросов: 1
Ответов: 51
 Профиль | | #8 Добавлено: 09.06.06 00:49
А вызов функции:
Если надо проверить одно совпадение
Dim a$
a = GetParseString("ABCDEFGHIJKLMNO", "EFG", "M";)
a = IIf(Len(a), a & vbCrLf & "Всего символов: " & Len(a), "Совпадений нет.";)
MsgBox a, vbInformation
Если надо проверить несколько совпадений, обрезай строку поиска после каждого успешного вызова...

Ответить

Страница: 1 |

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



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