Я видел этот вопрос здесь несколько раз, но я не могу найти правильный ответ. В настоящее время у меня есть приложение Windows Form, которое я пишу в VB, который создает профили игроков (это школьный проект). На странице «Регистрация» я беру информацию и читаю ее в .txt-файл с каждым разделителем поля запятой по строкам. Это делает для .txt, который выглядит примерно так:Удалите определенную строку в TXT-файле и замените новой строкой vb.net
Dan,Boyle,M,39,(707) 555-1234,555 S. West Street,18,D,R
Justin,Braun,M,27,(916) 555-1255,858 W. South St,5,D,L
я побежал вправо новые линии к этому, и назвать это просто прекрасно, но то, что мне нужно сделать для моего проекта является возможность редактирования профиля игрока. То, что я нашел до сих пор, заключается в том, что лучшим способом было бы переписать всю строку, что мне удалось сделать. Но я не могу понять, как удалить текущую строку и заменить ее.
Dim FileString As String = "MasterRoster.txt"
Dim index As Integer = Home.cbPlayerLookUp.SelectedIndex
Dim playerInfo() As String = File.ReadAllLines(FileString)
Dim FieldString() As String
Dim RecordString As String = ""
If Not playerInfo.Length < index Then
FieldString = playerInfo(index).Split(","c)
'Update Player stats)
If CInt(FieldString(16)) = index Then
FieldString(12) = CStr(CInt(FieldString(12)) + CInt(txtGoals.Text))
FieldString(13) = CStr(CInt(FieldString(13)) + CInt(txtAssists.Text))
FieldString(14) = CStr(CInt(FieldString(14)) + CInt(txtPIM.Text))
FieldString(15) = CStr(CInt(FieldString(15)) + CInt(txtGames.Text))
'(FirstName0, LastName1, Gender2, Age3, Phone4, Address5, Experience6, Position7, Handedness8, Team9, Jersey#10, imgPath11, Goals12, Assists13, PIM14, Total Games15, playerID Number16)
RecordString = FieldString(0) & "," & FieldString(1) & "," & FieldString(2) & "," & FieldString(3) & "," & FieldString(4) & "," & FieldString(5) &
"," & FieldString(6) & "," & FieldString(7) & "," & FieldString(8) & "," & FieldString(9) & "," & FieldString(10) & "," & FieldString(11) & "," & FieldString(12) & "," &
FieldString(13) & "," & FieldString(14) & "," & FieldString(15) & "," & FieldString(16) & vbNewLine
End If
My.Computer.FileSystem.WriteAllText(FileString, RecordString, True)
End If
Это в настоящее время добавить новую строку в нижней части моего файла .txt «MasterRoster.txt» с обновленной информацией в конце, но старый все еще там. Как заменить старую строку?
текст CSV-файлы не являются произвольным доступом. вам придется заменить файл, пропустив старую запись и добавив новую. – Plutonix
получил я. Итак ... Мне нужно будет прочитать в старом файле, изменить то, что я хочу изменить, и перепечатать – user2788749
, так как у вас, видимо, нет файла, загруженного в память, да: прочитайте его по строкам из одного потока, ищите имя просто изменилось и пропустит его, если они совпадут, иначе напишите строку обратно в выходной поток, а затем добавьте измененную запись. там ** ** более эффективны, так как вам нужно было прочитать его, чтобы отредактировать запись. Кроме того, есть намного лучшие механизмы хранения, чем старомодные массивы, но это может быть частью задания. – Plutonix