2016-01-12 2 views
1

Как я могу получить и вывести VB, разделенные запятой, каждую строку файла EXCEPT последней строки?
Вот мой код:VB для каждой строки в файле, положить строку в текстовое поле

Dim ofd As New OpenFileDialog 
    ofd.FilterIndex = 1 
    If ofd.ShowDialog = Windows.Forms.DialogResult.OK Then 
     TextBox13.Text = ofd.FileName 
    Else : Exit Sub 
    End If 
    For Each line In IO.File.ReadLines(TextBox13.Text) 
     TextBox5.Text = line + ", " 
    Next 
End If 

Пример:

line1 
blabla 
asdfghj 

Выход в textbox5:

line1, blabla, asdfghj 

И НЕ

line1, blabla, asdfghj, 
+0

'Dim Lines = File.ReadLines (...)' // 'TextBox5.Text = String.Join (", ", Lines)' – Plutonix

+0

@merdolodafoca Когда сообщение отвечает на ваш вопрос, вы можете [отметить его как принятый ] (http://meta.stackexchange.com/a/5235/308647). –

ответ

1

Вместо того, чтобы поместить Валу эс непосредственно в TextBox, первый положил их в коллекции:

Dim lines As New List(Of String) 
For Each line In IO.File.ReadLines(TextBox13.Text) 
    lines.Add(line) 
Next 

Или, еще проще ...

Dim lines = IO.File.ReadLines(TextBox13.Text) 

Затем, когда коллекция заполняется, используйте String.Join, чтобы присоединиться к нему вашим сепаратором:

TextBox5.Text = String.Join(", ", lines) 
2

Вы можете использовать String.Join так:

TextBox5.Text = String.Join(", ", IO.File.ReadLines(TextBox13.Text)) 

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

Отредактировано для добавления: Обратите внимание, что в целях обеспечения удобочитаемости и, следовательно, ремонтопригодности вы не должны пытаться делать слишком много вещей в одной строке. Это не совсем толкает его для одной строки, но если бы я, скажем, тоже создавал путь к файлу, я бы использовал отдельную строку с другой переменной, чтобы удерживать результат Path.Combine, а не писать его все в одной большой линии.

+0

Спасибо, много! –

 Смежные вопросы

  • Нет связанных вопросов^_^