0

我在这里看过这个问题几次,但我似乎找不到正确的答案。我目前有一个我正在用 VB 编写的 Windows 窗体应用程序,它可以创建玩家配置文件(这是一个学校项目)。在“注册”页面上,我获取信息并将其读取到一个 .txt 文件中,每个字段用逗号分隔符逐行。这使得 .txt 看起来像这样:

 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”的底部添加一个新行,最后更新信息,但旧行仍然存在。我怎样才能代替旧线?

4

1 回答 1

0

由于您正在将整个文件读入内存,因此使用一个类来表示信息可以让您为每个字段添加有意义的名称。(您还记得一两年后每个字段代表什么吗?)一种保存集合的方法该数据位于 DataTable 中,该 DataTable 非常易于与 DataGridView 一起使用,以显示数据以供读取和编辑。另一种选择是使用 .xml 文本格式而不是 .csv 文本格式。这允许更轻松地读取和写入文件,因为 DataTable 具有为此设计的方法。

在任何情况下,编辑特定记录都需要覆盖或重写文件,除非您当然想退后一步并使用旧的遗留方法 FileOpen、FileGet 和 FilePut。

于 2014-05-01T17:21:10.453 回答