CSV 格式会破坏我的算法以替换客户数据



我正在尝试创建一个脚本,将客户数据(例如公司名称(替换为随机选择的名称。我的问题是 CSV 文件(第 3 行(在列数据中有一个中断

("登录: #休息# #休息# 用户名 #休息#电子邮件 #休息# 密码: ***********"(.

我的示例 CSV 文件看起来像这样(我缩写了它并替换了客户数据(:

"607";"2017-07-10 16:28:32";"2017-07-10 16:28:32";"686";"companyName";"street";"PLZ";"CITY";"";"0";"";"1";"N";"F";"customer";"0";"4";"7";"1";"z";"d";"d";"d";"d";"d";"0";"Y";"0";"75";"0";"0"
"608";"2017-07-10 16:28:32";"2017-07-10 16:28:32";"687";"companyName";"street";"PLZ";"CITY";"";"0";"";"1";"N";F";"customer";"0";"5";"12";"1";"z";"Y";"d";"d";"d";"d";"0";"Y";"0";"75";"0";"0"
"609";"2017-07-10 16:28:32";"2017-07-10 16:28:32";"688";"companyName";"Street";"PLZ";"City";"";"0";"Login:
USERNAME
EMAIL
Passwort: *******************";"0";"N";"";"";"0";"299";"170";"0";"k";"Y";"d";"d";"d";"d";"0";"";"0";"0";"0";"0"
"610";"2017-07-10 16:28:32";"2017-07-10 16:28:32";"689";"companyName";"Street";"PLZ";"City";"";"0";"";"0";"N";"";"customer";"0";"9";"12";"0";"k";"d";"d";"d";"d";"d";"0";"";"0";"0";"0";"0"
"611";"2017-07-10 16:28:32";"2017-07-10 16:28:32";"690";"companyName";"Street";"PLZ";"City";"";"0";"";"0";"N";"";"customer";"0";"24";"21";"0";"k";"Y";"d";"d";"d";"d";"0";"";"0";"0";"0";"0" '

在我的脚本中,我写道,每次中断后,数组都会获取上次中断后和下一次中断之前的所有值。

为了更好地理解:数组在第一次循环传递后如下所示:

"607";"2017-07-10 16:28:32";"2017-07-10 16:28:32";"686";"companyName";"Street";"PLZ";"City";"";"0";"";"1";"N";"";"customer";"0";"4";"7";"1";"z";"d";"d";"d";"d";"d";"0";"Y";"0";"75";"0";"0""

数组的大小为 31。但是当CSV文件的ID"609"被执行时,我(当然(只会得到这个:

"609";"2017-07-10 16:28:32";"2017-07-10 16:28:32";"688";"companyName";"Street";"PLZ";"City";"";"0";"Login:

所以我的整个算法都坏了。

这是我的上传功能:

function Upload() {
var vorname = [];  // actually 1000 first names
var nachname = []; // acutally 1000 surnames
var cells;
var strWholeFile = "";
var lineToReplace = 4;
var counter;
var fileUpload = document.getElementById("fileUpload");
var regex = /^([a-zA-Z0-9s_\.-:])+(.csv|.txt)$/;
if (regex.test(fileUpload.value.toLowerCase())) {
if (typeof (FileReader) != "undefined") {
var reader = new FileReader();
/* Reader.onload function */
reader.onload = function (e) {
var rows = e.target.result.split("n");
rows.length = rows.length - 1;
console.log(strWholeFile);
/** For every "return" the loop will 
*  be executed once **/
for (var i = 0; i < rows.length; i++) {
if (i == 0) {
cells = rows[i].split(";");
counter = cells.length;
}
else {
cells = rows[i].split(";");
}
if (cells.length == counter && i != 0) {
cells[lineToReplace] = """ + vorname[getRandom(0, 999)] + " " + nachname[getRandom(0, 999)] + """;
}
console.log(strWholeFile);
/** For every column the loop will
*  be executed once **/
for (var j = 0; j < cells.length; j++) {
strWholeFile += cells[j] + ";";
console.log(strWholeFile);
}
if (cells.length == counter) {
strWholeFile += "n";
console.log(strWholeFile);
}
}
};
reader.readAsText(fileUpload.files[0]);
}
else {
alert("Dieser Webbrowser unterstützt kein HTML5.");
}
}
else {
alert("Bitte wählen Sie einen gültige CSV-Datei aus.");
}
}

你们中是否有人对我如何解决我的问题有一个聪明但仍然简单的想法?我从 1 个月开始学习 Javascript,所以我不太了解 JavaScript(我不是新手(。

我更改了行

var rows = e.target.result.split("n");

var rows = e.target.result.split(""n");

CSV 文件行的每一端如下所示:

"data"#BREAK

所以不是只查询中断,而是查询引号和中断

示例行尾:

"data"#Break

示例中断内部数据:

"Login#BREAK
Email[...]"

最新更新