[英]VB.NET in VS2010 - Trying to read in a csv that can contain currency signs
我正在开发一个应用程序,该应用程序将读取分隔的文件并在datagridview上显示前几行,然后它将使用这些行中的某些元素进行SQL查询(邮政编码查找)。 我一直运转良好,直到我们得到一些数据,其中一个列值中包含一个£,当它显示在数据网格中时,它看起来像是带有?的菱形。 在其中,但更糟的是,当它回写文件(添加了SQL结果)时,它的输出为�
我以为我可能需要指定编码,但是我使用的是以下没有找到的编码设置:
Sub ParseFile(inputfile)
Dim dataFile = My.Computer.FileSystem.OpenTextFieldParser(inputFile)
Using dataFile
dataFile.TextFieldType = FileIO.FieldType.Delimited
If DelimiterComboBox.SelectedItem = ".csv" Then
dataFile.SetDelimiters(",")
ElseIf DelimiterComboBox.SelectedItem = ".txt" Then
dataFile.SetDelimiters(vbTab)
End If
Dim currentRow As String()
currentRow = dataFile.ReadFields()
我尝试将其更改为使用TextFieldReader,这将允许指定Encoding,但是当出现转换错误时,我无法将文件名作为变量传递。 然后,我尝试将变量定义为文件名流,但随后得到:无法将类型为“ System.String”的对象转换为类型为“ System.IO.Stream”。
我在想,我需要以某种方式从文件名构造一个流,并将其输入到“ dataFile”对象中,以便随后可以控制(甚至检测)编码。
我应该指出,此应用需要使用各种定界文件(.csv,制表符和管道是最常见的)。
尝试
Using dataFile As TextFieldParser = My.Computer.FileSystem.OpenTextFieldParser(New System.IO.StreamReader(inputFile, encoding))
...
End Using
有关可为encoding
参数指定的内容的更多信息,请参见http://msdn.microsoft.com/zh-cn/library/system.text.encoding(v=vs.90).aspx 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.