编写 CSV 文件 VB.NET

Posted

技术标签:

【中文标题】编写 CSV 文件 VB.NET【英文标题】:Writing CSV file VB.NET 【发布时间】:2017-11-26 19:20:22 【问题描述】:

我只是在 VB.NET 中使用 CSV 文件保存代码时遇到问题

我正在尝试保存将在 DataGridView 中读取的 CSV 文件。我刚刚制作了“阅读”代码,效果很好!保存文件有什么问题?

Public Class Builder

Sub Create_Records()
    Dim i As Integer
    For i = 0 To Manager.Grid.Rows.Count - 1
        Manager.Grid.Rows.Add("ciao;", "comestai")
    Next
End Sub

Sub Write()
    If (Not System.IO.Directory.Exists("C:\MyPCBuilder")) Then 
        System.IO.Directory.CreateDirectory("C:\MyPCBuilder")
    End If
  
    Dim Write As New System.IO.StreamWriter("C:\MyPCBuilder\builds.csv")
    For i = 0 To Manager.Grid.Rows.Count - 1
        Text = ""
        For j = 0 To 1
            If Text = Text & Manager.Grid.Rows(i).Cells(j).Value & ";" Then
            Else
                Text = Text & Manager.Grid.Rows(i).Cells(j).Value
            End If
        Next
        Write.WriteLine(Text)
    Next
    Write.Close()
End Sub

Private Sub btn_Confirm_Click(sender As Object, e As EventArgs) Handles btn_Confirm.Click
    Create_Records()
    Write()
End Sub

End Class

【问题讨论】:

你还没有调试过这个吧?请阅读How to Ask 并采取tour 【参考方案1】:

内部循环中的 If 语句是错误的。 Then 部分是空的,条件很奇怪。由于您只有 2 列,因此只需编写

For i = 0 To Manager.Grid.Rows.Count - 1
    Text = Manager.Grid.Rows(i).Cells(0).Value & ";" & Manager.Grid.Rows(i).Cells(1).Value
    Write.WriteLine(Text)
Next

如果你想保留这个内部循环(以防你有更多列或可变数量的列),请改为测试索引(未显示外部循环)

Text = ""
For j = 0 To 1
    If j > 0 Then
        Text = Text & ";"
    End If
    Text = Text & Manager.Grid.Rows(i).Cells(j).Value
Next

【讨论】:

以上是关于编写 CSV 文件 VB.NET的主要内容,如果未能解决你的问题,请参考以下文章

用vb.net编写的程序怎么封装?

求大神指点vs2012里的vb.net 编写的windows 服务怎么启动呀

在 vb.net 中编写 sql 代码

VB.net编写的dll,供vb6调用时dll中的函数不可见?

用vb.net编写的程序怎么封装?

如何编写 vb.net 代码来编译 C/C++ 程序?