Страница: 1 |
Страница: 1 |
Вопрос: Как выполнить условие?
Добавлено: 07.06.06 18:55
Автор вопроса: Elkatib
И ещё вопросик :)
Скажите пожалуйста как выполнить следующиее условие:
Имеем пременную d = "ABCDEFGHIJKLMNO"
Нужно:
Если в переменной d встретяться подряд идущие символы E,F,G , то проверить сколько и какие символы стоят после этих букв (EFG) до следующей буквы M и вырезать их.
Заранее большое спасибо...
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #1
Добавлено: 07.06.06 19:34
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 & vbCrLf & "Всего символов: " & Len, "Совпадений нет."
MsgBox a, vbInformation
Если надо проверить несколько совпадений, обрезай строку поиска после каждого успешного вызова...