我正在尝试编写一个脚本来帮助我吐出无聊的工作代码。
所以有时,我会得到一个 .csv 文件,指示我创建表格字段,有时一次最多 50 个!(使用 AL,一种 Business Central 编程语言。)
我试着写这个;
const fs = require('fs');
const path = require('path');
const csv = require('csv-parser');
const CreatesFile = fs.createWriteStream(path.resolve(__dirname, 'final.txt'), {
flags: 'a' //flags: 'a' preserved old data
})
fs.createReadStream(path.resolve(__dirname, 'AutomateVAR.csv'))
.on('error', () => {
// handle error
})
.pipe(csv())
.on('data', (row) => {
if (row["Var Type"] == "Text" || "Code") {
CreatesFile.write( `field(; "${row["Var Name"]}"; ${row["Var Type"]}[${row["Var Length"]}]) {DataClassification = CustomerContent;} ` + '\r\n');
}
if (row["Var Type"] == "Boolean") {
CreatesFile.write( `field(; "${row["Var Name"]}"; ${row["Var Type"]}) {DataClassification = CustomerContent;} ` + '\r\n');
}
if (row["Var Type"] == "Option")
{
CreatesFile.write( `field(; "${row["Var Name"]}"; ${row["Var Type"]}) { OptionMembers = ${row["Var Value"]};} ` + '\r\n');
}
})
.on('end', () => {
})
并有这个测试 .csv 文件;
Var Name,Var Type,Var Value,Var Length
Customer,Code,,20
Employee,Text,,50
Cash Customer,Boolean,,
Car Type,Option,"""One"",""Two""",
这个想法是读取 .csv 文件,遍历每一行,然后写入一个文本文件,然后我将在我正在处理的代码文件中传递该文件。听起来可能很无聊,但可以为我节省大量时间。我是一个菜鸟 Javascript/Node 开发人员,所以请原谅我的缺点。
运行代码后,text.txt中的输出为;
field(; "Customer"; Code[20]) {DataClassification = CustomerContent;}
field(; "Employee"; Text[50]) {DataClassification = CustomerContent;}
field(; "Cash Customer"; Boolean[]) {DataClassification = CustomerContent;}
field(; "Cash Customer"; Boolean) {DataClassification = CustomerContent;}
field(; "Car Type"; Option[]) {DataClassification = CustomerContent;}
field(; "Car Type"; Option) { OptionMembers = "One","Two";}
这是不正确的。正确的结果应该是;
field(; "Customer"; Code[20]) {DataClassification = CustomerContent;}
field(; "Employee"; Text[50]) {DataClassification = CustomerContent;}
field(; "Cash Customer"; Boolean) {DataClassification = CustomerContent;}
field(; "Car Type"; Option) { OptionMembers = "One","Two";}
高度赞赏指导。先感谢您!