Получить пересечение последовательностей чисел - VB
Формулировка задачи:
Приветствую!
Пишу программку
вот тут скрин окошка.
мне надо считать данные из нескольких текстбоксов (txt11, txt12, txt21, txt22, txt31, txt32) таким образом:
слепить txt11 и txt12, txt21 и txt22, txt31 и txt32 в одну строку, перевести числа из них (разделитель - пробел) в Double и записать в двумерный массив (строка 1, 2 и 3 соответственно; число столбцов будет увеличиваться в зависимости от введённого в текстбоксы).
Текстбоксов будет много (порядка 25-30), но обработка их будет однотипная и их число известно (первая размерность массива).
Как считать, слепить и перевести в Double одну пару текстбоксов я написал:
Теперь большой вопрос - как этот метод распространить на другие текстбоксы, чтобы не копировать миллион раз это, а в одном цикле сделать?
P.S. Если ещё можно что-то оптимизировать, подскажите пожалуйста. Давно не писал, сейчас делаю по принципу "чтоб работало"
P.P.S Я не знаю, сюда ли это, или в .NET, честно..
Решение задачи: «Получить пересечение последовательностей чисел»
textual
Листинг программы
Function Intersect(A() As Integer, B() As Integer) As Integer() Dim AB() As Integer na% = UBound(A, 1) nb% = UBound(B, 1) If na% < nb% Then nab% = na% Else nab% = nb% End If ' первоначальный размер = минимум размерностей ReDim AB(0 To nab%) As Integer p% = 0 For i% = 1 To na% aa% = A(i%) For j% = 1 To nb% If aa% = B(j%) Then p% = p% + 1 AB(p%) = aa% Exit For End If Next j% Next i% ' отрезаем неиспользуемые элементы ReDim Preserve AB(0 To p%) As Integer Intersect = AB End Function Sub Test_int() Dim A(1 To 10) As Integer Dim B(1 To 20) As Integer Dim AB() As Integer For i% = 1 To 10 A(i%) = i% Next i% For i% = 1 To 20 B(i%) = 5 + i% Next i% AB = Intersect(A(), B()) For i% = 1 To UBound(AB, 1) Debug.Print AB(i%) Next i% End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д