我有一个文本文件,其中包含多个数据格式:
1 2016-01-01 17:23:24 0 0 1 1
2 2016-02-01 07:15:23 0 0 2 1
1 2016-03-01 12:13:24 0 0 1 1
3 2016-04-02 13:34:19 0 0 3 1
.....
代码:
<table>
<tr>
<td colspan="2" style="font-weight:bold;">
Upload time sheet for yards with biometrics
</td>
</tr>
<tr>
<td colspan="2" style="font-weight:bold;">
<input type="file" name="fileUpload" id="fileUpload" size="40">
</td>
</tr>
<tr>
<td colspan="2" >
</td>
</tr>
<tr>
<th>Date From:</th><th>Date To:</th>
</tr>
<tr>
<td><input type="date" id="from_date"></td><td><input type="date" id="to_date"></td>
</tr>
<td colspan="2" align="right">
<input type="button" value="Process File" id="btn_process_file" onclick="Upload()">
</td>
</table>
我需要在文件的每一行上获取某些值以放置在数组中。我只需要前3个&#34;值&#34;对于数组中的每一行。根据我上面的示例,我只需要:
1 2016-01-01 17:23:24
2 2016-02-01 07:15:23
1 2016-03-01 12:13:24
制作如下数组:
var x = [[1,2016-01-01,17:23:24][2,2016-02-01,07:15:23][1,2016-03-01,12:13:24]]
答案 0 :(得分:0)
您还可以将输入文件用于<input type="file" accept='text/plain' onchange='readText(this)'/>
因此您可以使用文件阅读器获取所选文件的内容:
function readText(filePath) {
var output = "";
if(filePath.files && filePath.files[0]) {
reader.onload = function (e) {
output = e.target.result;
displayContents(output);
};
reader.readAsText(filePath.files[0]);
var result = output.split("\t");
console.log(result);
}
}
var result = output.split("\t");
将您的字符串拆分为数组。按标签划分。
您还可以在系统上的文件上创建GET-Request。
如果你不使用jquery,请选择:
var file = "file://your path"
var toread= new XMLHttpRequest();
toread.open("GET", file, false);
toread.onreadystatechange = function ()
{
if(toread.readyState === 4)
{
if(toread.status === 200 || toread.status == 0)
{
var allText = toread.responseText;
}
}
}
toread.send(null);
var result = allText.split("\\n");
使用jquery会让它更容易一些:
$.get('file://your path', function(allText ) {
var result = (allText.split("\\n");
}, 'text')
答案 1 :(得分:0)
你可以这样使用它。
$.get('file://your path', function(allText ) {
var result = allText.split("\t");
//and access them with index value like this
alert(result.1);
});
答案 2 :(得分:-1)
function Upload(){
var files = document.getElementById('fileUpload').files;
if(files.length){
var file = files[0]; // first
var reader = new FileReader();
reader.onload = onReadFile;
reader.onerror = onError;
reader.readAsText(file);
}
}
function onReadFile(file){
var txt = file.target.result;
var list = txt.split('\n');
var result = list.map(function(item){
return item.split(' ');
});
console.log(result);
}
function onError (){
//**//
}