Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Сравнить два числа Добавлено: 19.05.06 16:42  

Автор вопроса:  Tony Corleone | Web-сайт: corleone.name | ICQ: 312123 
Хочу в гриде сравнить два числа, если число из 2ой колонки больше, чем в 4ой, то строка удаляется. Сделал так:
For X = 1 To 10
    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.

Нужно что то такое

i=0 ‘ c какой строки начать сканировать
Count = MSFlexGrid1.количество_строк или до_какой строки_сканировать
While(i<Count)
{
If  условие_на_удаление then
‘удаление строки
MSFlexGrid1.RemoveItem (X)
Count --
Else
‘не удалять строку
i ++
End if
}

Что то такого должно быть.
Извиняюсь за смесь на VB пишу очень редко.

Ответить

Номер ответа: 2
Автор ответа:
 Tony Corleone



ICQ: 312123 

Вопросов: 11
Ответов: 19
 Web-сайт: corleone.name
 Профиль | | #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-сайт: corleone.name
 Профиль | | #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

Ответить

Страница: 1 |

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



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