Как читать данные через streamreader из файла csv как есть.. означает, что он должен прийти в виде строки

Я читаю файл csv через streamreader. Проблема в том, что в файле csv, если данные похожи на «Чтение», то в steamreader те же данные поступают как ««Чтение»». Как убрать эти лишние кавычки?


person Navneet Duggal    schedule 26.08.2011    source источник
comment
Если вы откроете файл в текстовом редакторе, вы увидите лишние кавычки?   -  person ipr101    schedule 26.08.2011
comment
Да. Если я открою файл в тестовом редакторе, все значения, которые должны быть строковыми, будут отмечены кавычками.   -  person Navneet Duggal    schedule 26.08.2011
comment
Почему бы не просто str = str.Replace("""", "")?   -  person Tim Schmelter    schedule 27.08.2011
comment
Содержит ли файл CSV смесь полей в кавычках и без кавычек? То есть, например, 25,Это текст,абдд,более цитируемый текст?   -  person Tim    schedule 27.08.2011


Ответы (1)


Похоже, вы имеете дело с CSV, в котором указаны некоторые (или все) поля. Если это так, я бы рекомендовал использовать Microsoft.VisualBasic.FileIO.TextFieldParser (о котором многие люди, похоже, не знают, и да, несмотря на пространство имен, его можно использовать с C#).

Imports Microsoft.VisualBasic.FileIO.TextFieldParser;

Dim csvString As String = "25,""This is text"",abdd,""more quoted text"""

Dim parser as TextFieldParser = New TextFieldParser(New StringReader(csvString))

' You can also read from a file
' Dim parser As TextFieldParser = New TextFieldParser("mycsvfile.csv")

parser.HasFieldsEnclosedInQuotes = True
parser.SetDelimiters(",")

Dim fields As String()

While Not parser.EndOfData

    fields = parser.ReadFields()

    For Each (field As String in fields)
        Console.WriteLine(field)
    Next
End While

parser.Close()

Вывод должен быть:

25
This is text
abdd
more quoted text

Microsoft.VisualBasic.FileIO.TextFieldParser

Чтобы импортировать это, вам нужно добавить ссылку на Microsoft.VisualBasic в свой проект.

person Tim    schedule 26.08.2011