c#使用CsvHelper
By
admin
at 2023-02-09 • 0人收藏 • 805人看过
public class LineCode
{
public string masterCode { get; set; }
public string slaveCode { get; set; }
public string code1 { get; set; }
public string code2 { get; set; }
}
public void runCode( LineCode code)
{
switch (code.masterCode)
{
case "运动控制":
switch (code.slaveCode)
{
case "相对运动":
Console.WriteLine($"运动控制/相对运动/{code.code1}/{code.code2}");
break;
case "绝对运动":
Console.WriteLine($"运动控制/绝对运动/{code.code1}/{code.code2}");
break;
default:
break;
}
break;
default:
break;
}
}
private void simpleButton1_Click(object sender, EventArgs e)
{
if (File.Exists("file.csv"))
{
using (var reader = new StreamReader("file.csv",Encoding.GetEncoding("GB2312")))
using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
{
var records = csv.GetRecords<LineCode>();
foreach (var item in records)
{
runCode(item);
}
}
}
else
{
List<LineCode> Listv = new List<LineCode>
{
new LineCode { masterCode = "运动控制", slaveCode = "绝对运动", code1 = "轴1", code2 = "1000" },
new LineCode { masterCode = "运动控制", slaveCode = "相对运动", code1 = "轴2", code2 = "2000" },
new LineCode { masterCode = "运动控制", slaveCode = "绝对运动", code1 = "轴3", code2 = "3000" },
new LineCode { masterCode = "运动控制", slaveCode = "相对运动", code1 = "轴4", code2 = "4000" },
};
using (var writer = new StreamWriter("file.csv",false, Encoding.GetEncoding("GB2312")))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(Listv);
}
}
}
2 个回复 | 最后更新于 2023-02-10
登录后方可回帖
C#读写csv的方式和Golang很像,都是先要申明好Record的数据结构,然后把csv的记录依次读到结构体中。
而aardio和Python读写csv就简单得多,基本就当成一个列表或者数组就行了。
当然,严谨的好处就是处理速度快,出错的几率小。而宽松的好处就是语法简单,对于数据量小的数据(百万级以下)其实读写速度差异并不明显。