簡體   English   中英

VS2010中的VB.NET-嘗試讀取可能包含貨幣符號的csv

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM