Помогите с использованием массива для вставки элементов в текстовое поле vb.net - PullRequest
0 голосов
/ 28 апреля 2011

Я все еще студент без особого опыта использования vb.net, и у меня возникают проблемы с разбиением строки в массиве на 2 значения.Например, в моем текстовом поле у ​​меня есть несколько строк измерений: длина х ширина: 20х14, 10х8, 16х13.Каждое измерение находится на отдельной линии.Я пытаюсь разделить все значения ширины, которые больше 12, на 2 отдельных измерения, поэтому в последнем примере у меня будет 5 измерений (ДхШ): 20х12, 20х2, 10х8, 16х12, 16х1, затем я хотел бы добавитьэти измерения в новое текстовое поле с каждым измерением в отдельной строке.

Вот код, который я имею до сих пор.Опять же, я очень новичок в программировании, и это первый серьезный проект для меня со времен «Hello World», так что у меня может быть далеко.Заранее спасибо.

    Dim room As String = RoomsTextBox.Text
    If room.EndsWith(vbCrLf) Then room = room.Substring(0, room.Length - vbCrLf.Length)
    Dim roomarray() As String = room.Split(vbCrLf)
    Dim Cuts(roomarray.Length - 1, 0) As String
    RoomsTextBox.Select(0, 0)

    Dim CutLength As Integer
    Dim CutWidth As Integer
    Dim i As Integer
    Dim j As Integer
    CutsTextBox.Select()

    Cuts(i, j) = (Val(roomarray(i).Split("x")(0))) & Val(roomarray(j).Split("x")(1))
    For i = 0 To Cuts.GetUpperBound(0)
        For j = 0 To Cuts.GetUpperBound(1)
            Cuts(i, j) = 0
        Next
        If Val(roomarray(i)) > 12 Then
            CutWidth = Val(roomarray(i)) - 12
            CutLength = Val(roomarray(j))

        Else
            CutWidth = Val(roomarray(i))
            CutLength = Val(roomarray(j))
        End If
        Dim inserttext = CutsTextBox.Text
        Dim insertposition As Integer = CutsTextBox.SelectionStart
        CutsTextBox.Text = CutsTextBox.Text.Insert(0, CutLength.ToString & "x" & _  
        CutWidth.ToString)
        CutsTextBox.SelectionStart = insertposition + inserttext.Length
    Next i

Я даже попробовал это, вставив измерения в ListBox.Вот код для этого:

    Dim room As String = RoomsTextBox.Text
    Dim roomarray() As String = room.Split(vbCrLf)
    Dim Cuts(roomarray.Length - 1, 0) As String

    Dim CutLength As Integer
    Dim CutWidth As Integer
    Dim i As Integer
    Dim j As Integer
    CutsTextBox.Select()

    Cuts(i, j) = (Val(roomarray(i).Split("x")(0))) & Val(roomarray(j).Split("x")(1))
    For i = 0 To Cuts.GetUpperBound(0)
        For j = 0 To Cuts.GetUpperBound(1)
            Cuts(i, j) = 0
        Next
        If Val(roomarray(i)) > 12 Then
            CutWidth = Val(roomarray(i)) - 12
            CutLength = Val(roomarray(j))

        Else
            CutWidth = Val(roomarray(i))
            CutLength = Val(roomarray(j))
        End If
        ListBox1.Items.Add(CutLength.ToString & "x" & CutWidth.ToString)
    Next i

1 Ответ

1 голос
/ 28 апреля 2011

Попробуйте это.

Dim dimensions As String() = txtInput.Text.Split(vbCrLf)
    Dim final As New List(Of String)

    For Each item In dimensions
        Dim lw As String() = item.Split("x")

        Dim length As String = lw(0)
        Dim width As Integer = CInt(lw(1))

        If width > 12 Then
            Dim new1 As String
            Dim new2 As String

            new1 = length & "x" & (width - 12).ToString
            new2 = length & "x12"

            final.Add(new1)
            final.Add(new2)

        Else
            final.Add(item)
        End If

    Next

    For Each item In final
        txtOutPut.Text += item & vbCrLf
    Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...