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.

Не прямой ответ на вашу заявленную проблему, а альтернативный метод.

Другие вопросы по тегам