[英]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.