- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 TextFieldParser
类来读取逗号分隔值 (.csv) 文件。此文件中的字段用双引号引起来,例如 "Field1","Field2"
。
因此,为了读取文件,我将 TextFieldParser
对象的 HasFieldsEnheldInQuotes
属性设置为 true。但是,当任何字段开头包含双引号 (`"+ ) 时,我会收到 MalformedLineException
错误。
示例:""Field2"with extra"
在这里,我应该看到 "Field2"with extra
作为输出。
但是,如果 "
位于除第一个位置之外的任何位置,那么它就可以正常工作。就像 "Field2 "with"additional"
的行工作得很好,并给了我 Field2 "with"additional
作为输出。
有人有同样的问题吗?有什么办法可以解决这个问题吗?
这是我的代码:
Private Sub ReadTextFile(ByVal txtFilePath As String)
Dim myReader As tfp = New Microsoft.VisualBasic.FileIO.TextFieldParser(txtFilePath)
myReader.Delimiters = New String() {","}
myReader.TextFieldType = FileIO.FieldType.Delimited
myReader.HasFieldsEnclosedInQuotes = True
myReader.TrimWhiteSpace = True
Dim currentRow As String()
Dim headerRow As Integer = 0
While Not myReader.EndOfData
Try
currentRow = myReader.ReadFields()
'Read Header
If (headerRow = 0) Then
'Do work for Header Row
headerRow += 1
Else
'Do work for Data Row
End If
Catch ex As Exception
Dim errorline As String = myReader.ErrorLine
End Try
End While
End Sub
这是我在 csv 文件中的数据:
"Column1","Column2","Column3""Value1","Value2",""A" Block in Building 123"
最佳答案
您的示例 ""A"Block"
是格式错误的 CSV;因此,TextFieldParser 完全有权拒绝它。 CSV standard说:
7. If double-quotes are used to enclose fields, then a double-quote
appearing inside a field must be escaped by preceding it with
another double quote. For example:
"aaa","b""bb","ccc"
如果您对数据进行了正确编码,即...
"Column1","Column2","Column3"
"Value1","Value2","""A"" Block in Building 123"
... TextFieldParser 工作正常并正确返回 123 号楼的“A” block
。
因此,第一步是告诉生成 CSV 文件的人创建一个有效的 CSV 文件,而不是看起来像 CSV 但不是的文件。
如果您无法做到这一点,您可能需要对文件进行两次遍历:
关于vb.net - TextFieldParser 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16588454/
我正在尝试从 .csv 文件读取数据并将数据插入 mysql 数据库中。 .csv 文件和数据库有 4 列。 我能够将数据插入数据库。连接工作正常,但我无法从数据库中的正确字段中的 .csv 文件获取
我正在尝试使用在 Reading CSV files using C# 中找到的 TextfieldParser .我正在使用 VS 2010 并在 C# 中执行此操作。 我一直收到“找不到类型或命名
我正在使用 TextFieldParser 类来读取逗号分隔值 (.csv) 文件。此文件中的字段用双引号引起来,例如 "Field1","Field2"。 因此,为了读取文件,我将 TextFiel
.NET 用TextFieldParser 可以分配定界符。 但是 Enclosed 是 bool 值 TextFieldParser.HasFieldsEnclosedInQuotes 如何为随附的
我正在使用 TextFieldParser 来解析 csv 文件。如果它是格式正确的 csv,则 Tt 可以正常工作。但是,在某些情况下,某些行的 csv 格式不正确: 111,2222,"3333'
我正在尝试读取文本字段中包含一些 \n 的 CSV 文件。当我使用我在 DrawString 中阅读的内容时,\n 出现在文本中,而不是换行符。查看调试器中的字符串,似乎 TextFieldParse
我正在尝试使用 TextFieldParser 导入 CSV 文件.一个特定的 CSV 文件由于其非标准格式而给我带来了问题。有问题的 CSV 的字段用双引号括起来。当特定字段中存在一组额外的未转义双
读取 CSV 文件和 TextFieldParser 会跳过标题行。 知道如何确保跳过第一行。 String[] Col3Value = new string[40]; TextFieldPars
使用 Microsoft.VisualBasic.FileIO 中的 TextFieldParser 可以像下面这样解析 CSV 文件: using (TextFieldParser parser =
我正在使用 TextFieldParser 类来读取 CSV 文件。它有两种获取数据行的方法:ReadFields() 和 ReadLine()。正如您想象的那样,前者将数据视为柱状数据,由预设分隔符
我最近学习了 TextFieldParser 来解析 words,而以前我会使用 string.Split 来这样做。我有一个关于新学的 class 的问题。 如果我们使用 string.Split
我有一个 Validate(Stream inputStream) 方法。此方法通过将 inputStream 传递给每个方法来调用其他几种验证方法。其中每一个都会创建一个新的 TextFieldPa
我编写了一个小函数,它使用 textField 逐行读取 csv 文件,编辑特定字段,然后将其写回 CSV 文件。 代码如下: private void button2_Click(object se
是否可以在Byte上使用TextFieldParser?我正在使用 Byte 通过 Web 服务上传文件,但我在确定是否可以直接访问此 CSV 还是需要先将其写入磁盘时遇到一些问题。将其写入磁盘很容易
我已经在很多网站上多次看到上述问题,但我还没有看到解决问题的答案。 场景是这样的...我在 .NET Framework 4.0 上,使用 Razor View 引擎在 VisualStudio 20
我正在使用 C# 开发 CSV 解析器 TextFieldParser类。 我的 CSV 数据由 , 分隔,字符串由 " 字符括起来。 但是,有时数据行单元格也可以有一个 ",这似乎使解析器抛出异常。
过去,对于 c# .net MVC 项目,我使用 Visual Basic 引用中的 TextFieldParser。现在有了 .Net Core 1,这似乎不再是一种选择。至少我不知道如何添加 vi
我有一些非常典型的代码来使用 Microsoft.VisualBasic.FileIO.TextFieldParser 解析 CSV 文件: using (TextFieldParser parser
我是一名优秀的程序员,十分优秀!