将vbNewLine添加到我的CSV文件中以进行文本格式化

时间:2017-09-15 07:41:02

标签: vb.net csv formatting

我正在使用VB.NET创建一个简单的测验程序,该程序从两个CSV文件中读取问题和可能的答案,并将其显示给用户。

问题CSV文件:

Question ID, Question Text, Correct Answer
1, "Which of these are green? A: Grass B: The Ocean C: A Strawberry D: A tree leaf", A

回答CSV文件,其中包含四个与ID问题匹配的答案

Question ID, Answer A, Answer B, Answer C, Answer D
1, "A & D", "A & C, "D & B, "B & C"

我使用文本字段解析器读取我的CSV文件,并将每个问题的“问题”文本存储为字符串。因此,问题ID 1的问题文本将是"Which of these are green? A: Grass, B: The Ocean, C: A Strawberry, D: A tree leaf"

然后我使用标签文本属性在GUI上显示此问题文本。我的问题是,因为字符串全部在一行上,所以格式为:

“哪一个是绿色的?草海洋一个草莓一个树叶”。

我喜欢将其格式化为:

其中哪些是绿色的?

A:草

B:海洋

C:草莓

D:树叶

现在显然只是在CSV文件中的所需位置添加vbNewLine只会将“vbNewLine”添加为字符串的一部分,而不是将其作为代码读取。

还有其他解决方案,我可以在CSV中添加一些内容以获得所需的格式吗?

1 个答案:

答案 0 :(得分:0)

如果该值包含在引号中,则CSV文件可以在字段值中包含换行符和其他特殊字符。只需将换行符添加到CSV文件中,TextFieldParser就会按预期读取它们。 E.g。

1,“其中哪一个是绿色的?

A:草

B:海洋

C:草莓

D:树叶“,A

Using reader As New TextFieldParser(Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments,
                                                 "Test.txt")) With {.Delimiters = {","},
                                                                    .HasFieldsEnclosedInQuotes = True}
    Dim fields = reader.ReadFields()

    For Each field As String In fields
        MessageBox.Show(field)
    Next
End Using