TextFieldParser 分隔符无法识别字符串

TextFieldParser Delimiter not recognizing string

觉得很简单,但是我不明白为什么会有下面这样的东西

Dim MyDelimeter as string = "vbTab"
MyReader.Delimiters = New String() {MyDelimeter }

无法将 MyDelimeter 识别为制表符。如果我有逗号它的工作。

Dim MyDelimeter as string = ","

你能解释一下为什么会这样吗?我的分隔符来自 xml 序列化文件,所以我想把它们放在不幸的是它不适用于 vbtab。

使用

MyReader.Delimiters = New String() {vbTab}

而不是

MyReader.Delimiters = New String() { "vbTab" }

vbTab 是制表符的视觉基本常量,而字符串文字 "vbTab" 只是文本 "vbTab".

如果您已将值 "vbTab" 存储在文件中以指示应使用的分隔符,则必须使用 If...ElseSelect..Case 才能使用 vbTab持续的。当然你也可以在文件中存储真正的制表符,但我猜你不想要那个,因为它不是真正可见的。

例如

If delimiterInFile = "vbTab" Then
    MyReader.Delimiters = New String() {vbTab}
ElseIf delimiterInFile = "comma" Then
    MyReader.Delimiters = New String() {","}
ElseIf delimiterInFile = "pipe" Then
    MyReader.Delimiters = New String() {"|"}
    ' ....
Else
    MyReader.Delimiters = New String() {","}
End If