Вам нужен анализатор CSV, в котором вы можете установить символ кавычки поля.К сожалению, TexFieldParser , который поставляется с VB.NET, не имеет такой возможности.К счастью, другие делают - здесь я использовал LumenWorksCsvReader , который доступен как пакет NuGet *.
Option Strict On
Option Infer On
Imports System.IO
Imports LumenWorks.Framework.IO.Csv
Module Module1
Sub Main()
Dim s = "613,710,200,127,127,'{\""js\"":{\""\"":\""16\"",\""43451\"":\""16\"",\""65815\"":\""16\"",\""43452\"":\""16\"",\""41147\"":\""16\"",\""43449\"":\""16\"",\""43467\"":\""16\"",\""1249\"":\""16\"",\""43462\"":\""16\"",\""43468\"":\""48\"",\""43438\"":\""64\"",\""43439\"":\""80\""}}','rca',95,2048000,3,1,'AABBCCDDEEFFGGHHIIJJKKLL=','xx.xx.xx.xx',NULL"
Using sr As New StringReader(s)
Using csvReader = New CsvReader(sr, delimiter:=","c, quote:="'"c, escape:="\"c, hasHeaders:=False)
Dim nFields = csvReader.FieldCount
While csvReader.ReadNextRecord()
For i = 0 To nFields - 1
Console.WriteLine(csvReader(i))
Next
End While
End Using
End Using
Console.ReadLine()
End Sub
End Module
, который выводит
613
710
200
127
127
{"js":{"":"16","43451":"16","65815":"16","43452":"16","41147":"16","43449":"16","43467":"16","1249":"16","43462":"16","43468":"48","43438":"64","43439":"80"}}
rca
95
2048000
3
1
AABBCCDDEEFFGGHHIIJJKKLL=
xx.xx.xx.xx
NULL
Обратите внимание, чтодвойные кавычки удваиваются в литеральной строке, так как это способ ввести одну двойную кавычку в VB.
Если вы действительно хотите, чтобы обратные слэши сохранялись, удалите параметр escape:="\"c
.
Если вы читаете из файла, тогда вместо StringReader используйте соответствующий StreamReader .
* Инструменты -> Диспетчер пакетов NuGet -> Управление пакетами NuGet для решения... Выберите вкладку «Обзор» -> введите LumenWorksCsvReader -> выберите вкладку Себастьян Лорион и др., -> отметьте название своего проекта на панели справа -> нажмите «Установить».