c# - 如何使 readfield 读取下一个字段
问题描述
我的 csv 文件包含 8 列和 300k 行。这是我的 csv 文件的示例“0195153448”;“古典神话”;“Mark PO Morford”;“2002”;“牛津大学出版社”;“ http://images。 amazon.com/images/P/0195153448.01.THUMBZZZ.jpg ";" http://images.amazon.com/images/P/0195153448.01.MZZZZZZZ.jpg ";" http://images.amazon.com/images/ P/0195153448.01.LZZZZZZZ.jpg “
0002005018”;“Clara Callan”;“Richard Bruce Wright”;“2001”;“HarperFlamingo Canada”;” http://images.amazon.com/images/P/0002005018.01.THUMBZZZ .jpg ";" http://images.amazon.com/images/P/0002005018.01.MZZZZZZZ.jpg ";"http://images.amazon.com/images/P/0002005018.01.LZZZZZZZ.jpg "
现在我有这个代码供阅读
string path = @"C:\Users\SEMRUK\Desktop\exceller\kitaplik.csv";
public DataTable GetDataTabletFromCSVFile(string PathFile)
{
DataTable csvData = new DataTable();
TextFieldParser csvReader = new TextFieldParser(PathFile);
csvReader.SetDelimiters(new string[] {";"});
csvReader.HasFieldsEnclosedInQuotes = true;
string[] colFields = csvReader.ReadFields();
foreach (string column in colFields)
{
DataColumn datecolumn = new DataColumn(column);
datecolumn.AllowDBNull = true;
csvData.Columns.Add(datecolumn);
}
string[] fieldData = csvReader.ReadFields();
while (!csvReader.EndOfData)
{
for (int i = 0; i < fieldData.Length; i++)
{
if (fieldData[i] == "")
{
fieldData[i] = null;
}
MessageBox.Show(fieldData[i]);
}
csvData.Rows.Add(fieldData);
}
return csvData;
}
这样我可以读取前 8 行。但是在那之后我什么都不能读取。它只读取第 8 行。我怎样才能告诉代码它也应该在选项卡之后读取。我尝试将 \t 添加到 setdelimiters 但没有不行。有什么建议吗?
解决方案
static void Main(string[] args)
{
string path = "your_file_path";
string text = System.IO.File.ReadAllText(path);
string[] parsedText= text.Split(';');
foreach (var item in parsedText)
{
//do some
}
}
推荐阅读
- javascript - 滚轮滚动上的触发事件只有一次js
- java - 将具有动态键名的 java 属性文件映射到 POJO
- reactjs - 根据密钥更改状态
- scala - 如何在 Akka Classic Actor 中记录文件名和行号?
- html - 如何在不使用 JSP 的情况下向 Spring Boot 提交 html 表单?
- python - python有没有办法在列表理解中遍历矩阵
- html - 通过电子邮件应用程序脚本在一封电子邮件中发送多个值
- python - 如何从 requirements.txt 中“pip install”最新版本的模块而忽略用 REQUIREMENTs.TXT 编写的旧版本?
- linux - 将文本文件每一行中出现的字符与一个数字进行比较,并根据条件添加更多该字符
- python - 如何在 tensorflow 1.x 中的每个训练时期保持模型的输出?