AppendText не будет добавляться к следующей строке в текстовом файле / vb
Я делаю программу, которая позволяет вам добавлять информацию об ученике в существующий текстовый файл CSV, но всякий раз, когда я использую текст добавления, он добавляет новую информацию в часть последней строки, а затем в новую строку.
Я хочу сделать это:
Джон Доу,29 лет, мужчина
Джон Доу,29 лет, мужчина
Это делает это вместо этого:
Джон Доу,29 лет, МалеДжо
Доу,29 лет, мужчина
Примечание: на самом деле между каждым набором информации нет пустой строки, я просто хотел, чтобы ее было легко прочитать, когда я разместил ее здесь.
Вот код для этого раздела:
Dim swVar As IO.StreamWriter = IO.File.AppendText(frmMain.fileName)
swVar.WriteLine(txtName.Text & "," & txtAge.Text & "," & gender)
swVar.Close()
Любая помощь будет оценена, спасибо!
2 ответа
Посмотрите, работает ли что-то подобное лучше:
IO.File.AppendText(frmMain.fileName, vbNewLine & txtName.Text & "," & txtAge.Text & "," & gender & vbNewLine)
AppendText откроет запись и закроет все за одну операцию, поэтому нет необходимости в отдельном потоковом писателе. Также не добавляются новые строки, поэтому они должны быть добавлены отдельно
Если, конечно, вы не выполняете серию записей в один и тот же файл, то что-то вроде этого, вероятно, будет более подходящим:
Dim swVar As New IO.StreamWriter(frmMain.fileName, True)
'write your lines here
swVar.WriteLine(txtName.Text & "," & txtAge.Text & "," & gender)
swVar.Close()
Удобным инструментом в VS2010 (и других) являются фрагменты - щелкните правой кнопкой мыши Вставить фрагменты... - множество шаблонов кода для типичных задач. В вашем случае вот модифицированный фрагмент:
Sub AddToFile(textToAdd As String, filePath As String)
My.Computer.FileSystem.WriteAllText(filePath, textToAdd, True)
End Sub
Возможно, вы захотите проверить / добавить vbNewLine к добавляемому тексту, поскольку он не добавляется автоматически, как с WriteLine.
Не прямой ответ на вашу заявленную проблему, а альтернативный метод.