我正处于创建一个c#app的开始阶段,该应用程序下载.zip文件,提取.csv文件,然后将其插入到mssql db中。问题是文件在文件开头包含2个不必要的行。有没有办法剥去前2行?这是来自maxmind.com的geoip数据。理想情况下,程序会读取.csv,删除行,然后重新保存。欢迎任何建议。下面的示例行。
Copyright (c) 2011 MaxMind Inc. All Rights Reserved.
"beginIp","endIp","beginIpNum","endIpNum","countryCode","countryName"
"1.0.0.0","1.0.0.255","16777216","16777471","AU","Australia"
"1.0.1.0","1.0.3.255","16777472","16778239","CN","China"
"1.0.4.0","1.0.7.255","16778240","16779263","AU","Australia"
答案 0 :(得分:3)
正如@ itsme86在评论中所说,你可能最好只是跳过这两行
reader.ReadLine();
reader.ReadLine();
这样,您就不必担心复制整个文件并完全重新保存。但是,如果你想这样做(我注意到你说"理想情况下,程序会读取.csv,删除线条并重新保存它们"),你可以查看我对类似问题的回答:Cut and paste line of text from text file c#。
从本质上讲,您必须阅读整个文件并将其复制到另一个文件中。
using (var writer = new StreamWriter(newFile))
using (var reader = new StreamReader(oldFile)) // or you could take this from your `WebResponse` `Stream` if applicable.
{
reader.ReadLine();
reader.ReadLine();
string line;
while ((line = reader.ReadLine()) != null)
{
writer.WriteLine(line);
}
}
答案 1 :(得分:1)
.Net中有一个内置的csv解析器
以下链接显示了一个示例 http://coding.abel.nu/2012/06/built-in-net-csv-parser/
只需跳过第一行和第二行,就像示例跳过第一行一样。