Страница: 1 | 2 |
|
Вопрос: Поиск элементов
|
Добавлено: 29.06.10 11:33
|
|
Автор вопроса: goodwen
|
Здравствуйте, как можно сделать поиск элементов? У меня есть грубо говоря список тех элементов которые нужно искать: Q001, Q002,Q003,Q004,Q005,Q006,Q007,Q008,Q009,Q010,Q011,Q012. Но в одной строке, где происходить поиск, может быть только несколько элементов (которые нужно найти):
{Мальчик}:Q009 Q001 Q025 Q026 Q027 Q028 Q040 Q041
То есть должно найтись Q009 и Q001.
Тут получается так, есть Label где прописана эта строка:{Мальчик}:Q009 Q001 Q025 Q026 Q027 Q028 Q040 Q041
И есть список элементов которые можно найти, но в данной строке их (которые нужно найти) всего два:Q009 и Q001, и после того, как каждый элемент нашёлся он заносится в одномерный массив по отдельным ячейкам, то есть Q009 будет в 1-ой ячейке, а Q001 будет во 2-ой ячейке. Подскажите пожалуйста, как это можно сделать.
Я знаю, что есть Split, но я могу записать только такую строку:
y=Split(label1, "Q001"; "Q002";"Q003";"Q004";"Q005";"Q006";"Q007";"Q008";"Q009";"Q010";"Q011";"Q012", -1)
А дальше не знаю, как написать.
Ответить
|
Номер ответа: 2 Автор ответа: goodwen
Вопросов: 26 Ответов: 65
|
Профиль | | #2
|
Добавлено: 29.06.10 13:31
|
На языке VB6, а по поводу ячейки я же написал: как каждый элемент нашёлся он заносится в одномерный массив по отдельным ячейкам, то есть Q009 будет в 1-ой ячейке, а Q001 будет во 2-ой ячейке. когда нашёлся элемент он заноситься в одномерный массив объявленный в VB6.
Есть список символов, которые должны искаться:Q001, Q002,Q003,Q004,Q005,Q006,Q007,Q008,Q009,Q010,Q011,Q012
но вмести их никогда в строке не будет! будет к примеру только Q001, Q009 или Q005,Q012.
Пример строки, которая написана в label:
{Мальчик}:Q009 Q001 Q025 Q026 Q027 Q028 Q040 Q041
Вы видите здесь, что есть только Q009 Q001, но нету остальных символов, которые я описал в списке, который нужен для поиска.
И херню пишите вы молодой человек.
Ответить
|
Номер ответа: 6 Автор ответа: goodwen
Вопросов: 26 Ответов: 65
|
Профиль | | #6
|
Добавлено: 29.06.10 20:49
|
Да, всё так, только, есть строка с элементами и нужно найти, какие из них присутствуют в строке, которая записана в label1 (где мальчик),и те элементы, которые там присутствуют занести в массив, там по идее будет дальше так, эти найденные элементы, которые записаны в массиве, используются точно так же, как та строка, с элементами (которая не в label1) и также ищется уже их наличие в анологичной строке, только записанной в label2, не подскажете, как это можно сделать?
Ответить
|
Номер ответа: 11 Автор ответа: goodwen
Вопросов: 26 Ответов: 65
|
Профиль | | #11
|
Добавлено: 29.06.10 21:38
|
-
- Private Sub Command1_Click()
- Dim str()
- str = Array("Q001", "Q002", "Q003", "Q004", "Q005", "Q006", "Q007", "Q008", "Q009", "Q010", "Q011", "Q012")
- Dim arr() As String
- ReDim arr(0)
- For i = 0 To UBound(str)
- If InStr(Label1.Caption, str(i)) > 0 Then
- ReDim Preserve arr(UBound(arr) + 1)
- arr(UBound(arr)) = str(i)
- End If
- Next
-
- For i = 1 To UBound(arr)
- Dim arrr() As String
- ReDim arrr(0)
-
- If InStr(Label2.Caption, arr(i)) > 0 Then
- ReDim Preserve arrr(UBound(arrr) + 1)
- arrr(UBound(arrr)) = arr(i)
- End If
- Next
-
-
- For i = 1 To UBound(arrr)
- MsgBox ("Общий эллемент ") + arrr(i)
- Next
- End Sub
-
- Private Sub Form_Load()
- Label1.Caption = "{Мальчик}:Q009 Q001 Q003 Q026 Q027 Q028 Q040 Q041"
- Label2.Caption = "{пошёл}:Q009 Q013"
- End Sub
-
Вот, мне подсказали, я доделал до полного варианта, и если нажать на кнопку, то находит общий символ Q001, но если в label2 заменить Q009 на Q001, то должен найтись общий элемент Q001, но этого не происходит, можете найти ошибку?
Не знал, что вежливость это переигрывание, но если это вас так смешит, ради бога.
Ответить
|
Номер ответа: 14 Автор ответа: Smith
ICQ: adamis@list.ru
Вопросов: 153 Ответов: 3632
|
Профиль | | #14
|
Добавлено: 29.06.10 23:25
|
Не уверен, что правильно понял, но вот:
- Option Explicit
- Private Sub Command1_Click()
- Dim Stri() As Variant
- Dim Arr1() As String
- Dim Arr2() As String
- Dim I As Long
- Dim M1 As Long
- Dim M2 As Long
- Stri = Array("Q001 ", "Q002 ", "Q003 ", "Q004 ", "Q005 ", "Q006 ", "Q007 ", "Q008 ", "Q009 ", "Q010 ", "Q011 ", "Q012")
- Label1 .Caption = "Q001 Q002 Q003"
- Label2 .Caption = "Q001 Q002 Q005"
- For I = 0 To UBound(Stri)
- If InStr(Label1 .Caption, Stri(I)) > 0 Then
- ReDim Preserve Arr1 (M1)
- Arr1 (M1) = Stri(I)
- M1 = M1 + 1
- MsgBox Stri(I)
- End If
- Next
- M1 = M1 - 1
- For I = 0 To M1
- If InStr(Label2 .Caption, Arr1 (I)) > 0 Then
- ReDim Preserve Arr2 (M2)
- Arr2 (M2 ) = Arr1(I)
- M2 = M2 + 1
- MsgBox Arr1(I)
- End If
- Next
- End Sub
Ответить
|
Страница: 1 | 2 |
Поиск по форуму