gpt4 book ai didi

c# - TextFieldParser 从字符串而不是文件解析 CSV

转载 作者:太空狗 更新时间:2023-10-29 22:07:08 28 4
gpt4 key购买 nike

使用 Microsoft.VisualBasic.FileIO 中的 TextFieldParser 可以像下面这样解析 CSV 文件:

using (TextFieldParser parser = new TextFieldParser(CSVPath))
{
parser.TextFieldType = FieldType.Delimited;
parser.SetDelimiters(",");
parser.HasFieldsEnclosedInQuotes = true;
while (!parser.EndOfData) { string[] fields = parser.ReadFields(); }
}

然而,这依赖于使用 CSV 文件路径初始化 TextFieldParser。是否可以在传递包含数据记录本身的字符串时产生相同的效果?

例如,使用值为 Data1,6.5,"Data3 ""MoreData""" 的 CSV 数据记录(请注意,由于转义引号,最后用引号引起来的数据)保存在一个字符串变量,我可以将数据转换为这样的字符串数组吗:

[0] = "Data1"
[1] = "6.5"
[2] = "Data3 \"MoreData\""

最佳答案

可以将包含原始字符串的 StringReader 传递到新的 TextFieldParser 并以相同的方式进行处理。

StringReader sr = new StringReader("Data1,6.5,\"Data3,\"\"MoreData\"\"\"");
using (var parser = new TextFieldParser(sr))
{
parser.TextFieldType = FieldType.Delimited;
parser.SetDelimiters(",");
parser.HasFieldsEnclosedInQuotes = true;
while (!parser.EndOfData)
{
Console.WriteLine("Line:");
var fields = parser.ReadFields();
foreach (var field in fields)
{
Console.WriteLine("\tField: " + field);
}
}
}

输出到控制台:

Line:
Field: Data1
Field: 6.5
Field: Data3,"MoreData"

关于c# - TextFieldParser 从字符串而不是文件解析 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36209512/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com