powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск в MSFlexGrid.
14 сообщений из 14, страница 1 из 1
Поиск в MSFlexGrid.
    #36314669
Terr0909
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем, добрый день!
Есть 2-а ФлексГрида. Нужно осуществить поиск совпадающих строк. Т.е если строка из флекса 1 нашла свою копию во флексе2, добавить эти значения во флекс3.

Попытался вот так...запутался и получилась муть..
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
For r= 1  to MSFlexGrid1.Rows- 1 
For h= 1  to  4 
   for q= 1  to MsflexGrid2.Rows- 1 
      for w= 1  to  4 
If InStr(MSFlexGrid2.TextMatrix(q,w),Msflexgrid2.textmatrix(q,w)) then
.............
end if
            next w 
       next q
    next h
next r
Заранее спасибо!
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36314787
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Terr0909,
попробуй, хз может сканает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
For r= 1  to MSFlexGrid1.Rows- 1 
     for q= 1  to MsflexGrid2.Rows- 1 
        For h= 1  to  4 
          for w= 1  to  4 
            If InStr(MSFlexGrid2.TextMatrix(q,w),Msflexgrid2.textmatrix(q,w)) then
            .............
            end if
            next w 
       next h
    next q
next r
сначало выбираются строки, а потом сравниваются элементы в каждой строке
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36314851
Terr0909
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.Михаил., спс за ответ!
Но тут получится что, первая строка сравнивается с первой, вторая со второй и так далее....
Просто 1-я строка во флексе 1, находится в 15 строке флекса 2. И получается мы ее не найдем(
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36332687
Terr0909
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С поиском разобрался, сделал. Но появился другой вопрос.

Задача. Осуществить поиск повторяющихся строк в MSFlexGrid.Если нашли удалить.
Я сделал так.


FOR i=1 to MSFlexGrid1.rows-1

a=Msflexgrid1.TextMatrix(i,1)
b=Msflexgrid1.TextMatrix(i,2)
c=Msflexgrid1.TextMatrix(i,3)

For k=1 to MsFlexGrid1.Rows-1
d=Msflexgrid1.TextMatrix(k,1)
e=Msflexgrid1.TextMatrix(k,2)
f=Msflexgrid1.TextMatrix(k,3)

IF(a=d And b=e And c=f) Then
MsflexGrid1.removeItem k
Exit For
End If
Next k
Next i

В итоге, все правильно делается, удаляется, НО...число строк в msflex сокращается и на цикле выпадает ошибка. Как исправить это?

Заранее спасибо.
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36332778
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Terr0909
> В итоге, все правильно делается, удаляется, НО...число строк в msflex сокращается и на цикле выпадает ошибка. Как
> исправить это?

Не удалять, а запоминать что нужно удалить, после полного прохода удалить
или
переделать со статических циклов с заранее определенным колличеством итераций, на условные

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36332808
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Terr0909
В итоге, все правильно делается, удаляется, НО...число строк в msflex сокращается и на цикле выпадает ошибка. Как исправить это?

1)
заменить
For k=1 to MsFlexGrid1.Rows-1

на
While k<MsFlexGrid1.Rows

2)
после
Exit For

добавить
else k=k+1

ну и инициализацию k в начале цикла
вам точно надо с 1 начинать, а не с 0?
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36332818
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, соответственно еще Next на Wend, Exit For на Exit Do, ну до этого, надеюсь, сами догадались
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36332823
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой, я вам наврал........... поторопился
так как вылет происходит во внешнем цикле, а не во внутреннем, то все это надо делать для i, а не для k
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36332836
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Terr0909В итоге, все правильно делается, удаляется

Какой-то театр одного актера в виде меня...

А вы уверены, что все правильно удаляется?
По-моему алгоритм должен будет тупо удалить все строки в сетке, так как первое, что найдет внутренний цикл, это будет та же самая строка, он сравнит ее сам с собой и удалит
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36332859
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Shocker.Pro
> Какой-то театр одного актера в виде меня...

“Не торопись выполнять приказ, поступит команда “Отставить!” (с) Старая солдатская мудрость

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36332982
Terr0909
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за ответы!
Сейчас буду пробовать.
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36333048
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
число строк в msflex сокращается и на цикле выпадает ошибка. Как исправить это?
В MSFlexGrid1 не разбираюсь, но если как в Excel, удалять снизу?
Код: plaintext
1.
FOR i=MSFlexGrid1.rows- 1  to  1  Step - 1 
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36333100
Terr0909
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProА вы уверены, что все правильно удаляется?
По-моему алгоритм должен будет тупо удалить все строки в сетке, так как первое, что найдет внутренний цикл, это будет та же самая строка, он сравнит ее сам с собой и удалит

Да, действительно, Ерунда получается.(
...
Рейтинг: 0 / 0
Поиск в MSFlexGrid.
    #36333163
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Terr0909Да, действительно, Ерунда получается.(

Просто вам внутренний цикл надо начинать не с k=1, а с k=i+1

а внешний цикл должен идти не до MsflexGrid1.Rows - 1, а до MsflexGrid1.Rows - 2


И еще, зачем вам Exit For из внутреннего цикла?
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск в MSFlexGrid.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]