[英]Store data from a txt file
我有一个txt文件,看起来像这样:
ID Number Hour Name Mood Seconds Hour2
1 29.1 11:32:37 Tim Good 0954 11:32:34 PM
2 31.9 11:33:19 Tim Fine 1251 11:33:15 PM
3 32.0 11:54:16 Tim Excellent 1897 11:54:12 PM
4 36.6 12:00:43 Time Good 0997 12:00:37 PM
如我们所见,它不是CSV值,而是用空格分隔。 如何将这些数据存储在变量中(每列一个)? 一旦我使用html代码或javascript或jQuery将数据存储在变量中,便想使用Flot Charts对其进行绘制 ,但这将在以后发布。
这是应该起作用的东西。 您可能需要稍微调整一下,但这应该会对您有所帮助。
因此,首先我们需要加载文件并将值分配给变量。
var fileContent;
$.ajax({
url : "text.txt",
dataType: "text",
success : function (data) {
fileContent = data;
}
});
然后,正如我所说,您必须寻找空格和换行符。 您知道,发生换行符时,可以说全部“重新开始”。
因此,让我们使用jQuery的.split()
函数,如下所示:
var rows = fileContent.split("\n");
现在,您应该有一个长度为5的数组,每行一个。 遍历这些并用" "
分开。 由于这些不是数据,因此我们跳过第一行(索引0)。 还应注意,最后一个空格必须跳过,因为这是数据的一部分。
var id = "";
var number = "";
var hour = "";
var name = "";
var mood = "";
var seconds = "";
var hour2 = "";
var array = [id,number,hour,name,mood,seconds,hour2];
for(var j = 0; j < rows.length; j++){
var columns = rows[j].split(" ");
for(var i = 0; i < columns.length; i++) {
if(i == 5){
$array[i].= columns[i]+" "+columns[i+1];
break;
}
array[i].= columns[i];
}
}
console.log(array);
这应该对您有很大帮助。 可能不是完美的,但是您明白了。
将数据拆分为行。 然后拆分第一行,并将结果作为其他数据/行的键。 之后,尝试防止未定义的列('PM')并将结果添加到上一列。
var data = 'ID Number Hour Name Mood Seconds Hour2\\n1 29.1 11:32:37 Tim Good 0954 11:32:34 PM\\n1 31.9 11:33:19 Tim Fine 1251 11:33:15 PM\\n3 32.0 11:54:16 Tim Excellent 1897 11:54:12 PM\\n4 36.6 12:00:43 Time Good 0997 12:00:37 PM'; var newData = [], keys; data.split('\\n').forEach(function (row, i) { var res; if (!i) { keys = row.split(' '); } else { res = {}; row.split(' ').forEach(function (el, j) { if (keys[j]) { res[keys[j]] = el; } else { res[keys[j - 1]] += ' ' + el; // time correction } }); newData.push(res); } }); document.getElementById('out').innerHTML = '<pre>' + JSON.stringify(newData, null, 4) + '</pre>';
<div id="out"></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.