Visual Basic: как объединить все строковые значения из многострочного текстового поля с определенным разделителем - PullRequest
0 голосов
/ 09 сентября 2018

Мне нужна ваша помощь, чтобы исправить мой VB-код.

Мне нужно объединить все строки из буфера обмена с этим разделителем ","

только между строк, а не в начале и конце

Затем вставьте его в многострочное текстовое поле и в буфер обмена тоже.

Я сделал все, но у меня возникла проблема с конкатенацией:

Пример:

пользователь скопирует этот текст с помощью Ctrl + C из блокнота:

12345

12345

12345

Я могу получить это соединение с моим кодом:

'' 12345

12345

12345' , '

Но мне нужен код для этого:

12345' , '12345', '12345

Вот мой код VB:

'This part gets the clipboard content with the delimiter (',') 

If My.Computer.Clipboard.ContainsText Then

   TextBox4.Text = "','" & My.Computer.Clipboard.GetText & "','"

End If

как бы вы изменили код, чтобы получить разделитель только между каждой строкой, а не во всем блоке, как я?

Большое спасибо !!!

Отредактированный ответ:

У меня другой подход (тестирование копии разделителя из текстового поля в текстовое поле)

For Each s As String In Me.TextBox4.Text.Split(vbNewLine)
            TextBox3.Text += s & "','"
Next

Я почти получил это, я получил это сейчас:

12345','
12345','
12345','

но мне нужно это:

12345','
12345','
12345

какая-нибудь последняя идея, чтобы это исправить?

Еще раз спасибо.

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

Как мое первое настоящее приложение на VB, я думаю, что это не самое подходящее решение, но, по крайней мере, оно работает!

For Each s As String In Me.TextBox4.Text.Split(vbNewLine)
            TextBox3.Text += s & "','"
        Next

        Dim t As String
        t = TextBox3.Text

        TextBox3.Text = (t.Substring(0, t.Length - 3))

Ouput:

12345','12345','12345

Спасибо всем, я действительно счастлив!

0 голосов
/ 09 сентября 2018

Вы можете это:

Dim initial As String 'Set String with line breaks here.
Dim final As String = String.Join("','", initial.Split({Environment.NewLine}, StringSplitOptions.None))

или, еще проще, это:

Dim initial As String 'Set String with line breaks here.
Dim final As String = initial.Replace(Environment.NewLine, "','")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...