Страница: 1 |
Страница: 1 |
Вопрос: Сравнить два числа
Добавлено: 19.05.06 16:42
Автор вопроса: Tony Corleone | Web-сайт:
Хочу в гриде сравнить два числа, если число из 2ой колонки больше, чем в 4ой, то строка удаляется. Сделал так:
If Val(MSFlexGrid1.TextMatrix(X, 2)) > Val(MSFlexGrid1.TextMatrix(X, 4)) Then
MSFlexGrid1.RemoveItem (X)
End If
Next
Но получается так, что удаляется только строка с повторением, которая встречается первой, остальные строки пропускаются. Что стоит в этом слукчае делать?
Зарание спасибо за помощь.
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Sergey
ICQ: 283551900
Вопросов: 1
Ответов: 74
Профиль | | #1
Добавлено: 19.05.06 17:54
При удаление X стрики строка X+1 становится X, X+2 становится X+1, …
Следовательно, нельзя увеличивать X при удаление X строки.
Во вторых уменьшается количество строк и нельзя использовать To 10.
Нужно что то такое
Count = MSFlexGrid1.количество_строк или до_какой строки_сканировать
While(i<Count)
{
If условие_на_удаление then
‘удаление строки
MSFlexGrid1.RemoveItem (X)
Count --
Else
‘не удалять строку
i ++
End if
}
Что то такого должно быть.
Извиняюсь за смесь на VB пишу очень редко.
Номер ответа: 2
Автор ответа:
Tony Corleone
ICQ: 312123
Вопросов: 11
Ответов: 19
Web-сайт:
Профиль | | #2
Добавлено: 19.05.06 22:08
непонятно =/
Номер ответа: 3
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #3
Добавлено: 20.05.06 01:17
Може, так понятнее будет?
Dim Ы&
Ы = 1 ' c какой строки начать сканировать
Count = 10
While Ы <= Count
If Val(MSFlexGrid1.TextMatrix(Ы, 2)) > Val(MSFlexGrid1.TextMatrix(Ы, 4)) Then
'удаление строки
MSFlexGrid1.RemoveItem Ы
Count = Count - 1
Else
'не удалять строку
Ы = Ы + 1
End if
Wend
Номер ответа: 4
Автор ответа:
Tony Corleone
ICQ: 312123
Вопросов: 11
Ответов: 19
Web-сайт:
Профиль | | #4
Добавлено: 20.05.06 10:33
Спасибо, так понятнее)
Номер ответа: 5
Автор ответа:
astoro
ICQ: 649109
Вопросов: 31
Ответов: 391
Профиль | | #5
Добавлено: 21.05.06 11:03
можно наверна так еще сделать
For X = 10 To 1 Step -1
If Val(MSFlexGrid1.TextMatrix(X, 2)) > Val(MSFlexGrid1.TextMatrix(X, 4)) Then
MSFlexGrid1.RemoveItem (X)
End If
Next