vb.net выбирает конкретные строки, из одной строки в другую - PullRequest
0 голосов
/ 08 марта 2019

Я хочу написать этот код, но он не работает для меня

    Dim x

    Dim y

    x = TextBox1.Lines(1 - 5)


    y = TextBox1.Lines(6 - 10)


    TextBox2.Text = x
    TextBox3.Text = y

Я хочу получить значение из текстового поля .. х из строки 1 в строку 5 , у от строки 6 до строки 10

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Сначала вы должны указать тип в операторе Dim. Я предполагаю, что вы хотите String, где вы можете хранить эти строки.

Тогда 1 - 5 и 6 - 10 просто вычисляют 1 minus 5 и 6 minus 10 и не указывают диапазоны строк. Вы можете использовать LINQ, чтобы выбрать нужные строки. Но затем вы должны объединить эти строки, перечисленные как строковое перечисление, чтобы построить одну строку.

Dim x, y As String

x = String.Join(vbNewLine, TextBox1.Lines.Take(5)) 'Lines 1 - 5
y = String.Join(vbNewLine, TextBox1.Lines.Skip(5).Take(5)) 'Lines 6 - 10

Также обратите внимание, что свойство Lines возвращает массив строк. Индексы массива основаны на 0 в VB.NET! То есть первая строка TextBox1.Lines(0).

0 голосов
/ 08 марта 2019

Убедитесь, что там 10 строк, в противном случае добавьте немного проверки / обработки ошибок

Dim x = TextBox1.Lines.Take(5)
Dim y = TextBox1.Lines.Skip(5).Take(5)
TextBox2.Text = String.Join(Environment.NewLine, x)
TextBox3.Text = String.Join(Environment.NewLine, y)

Вам даже не нужны x и y в соответствии с вашими правками. Просто это

TextBox2.Text = String.Join(Environment.NewLine, TextBox1.Lines.Take(5))
TextBox3.Text = String.Join(Environment.NewLine, TextBox1.Lines.Skip(5).Take(5))
...