我有一个.txt文件作为输入,并希望将其保存到二维数组
示例输入:
到目前为止21 16 91 //第一个数据块
22 156 106 //第二块数据
23 120 164 //第3块数据
24 159 207 //等
25 168 83
26 83 27
27 189 29
代码:
function leseConfig (input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
};
我如何实现我的目标?
也许有人能给我一个简短的例子来做这样的事情?
答案 0 :(得分:1)
要在input
准备后实际阅读reader
文件,您可以使用
reader.readAsText(input.files[0]);
要在reader.onload
中获取读取文件的文本,您可以使用
reader.result
所以有HTML:
<input id="file" type="file"/>
<input id="read" type="button" value="read"/>
您可以使用以下内容:
$(document).ready(function()
{
$('#read').click(function()
{
leseConfig($('#file')[0]);
});
});
function leseConfig(input)
{
if (input.files && input.files[0])
{
var reader = new FileReader();
reader.onload = function()
{
var arr = [];
var rows = reader.result.split('\n');
for (var i = 0; i < rows.length; i++)
{
var elements = rows[i].split(/\s/);
if (elements.length >= 3)
{
arr.push([elements[0], elements[1], elements[2]]);
}
}
handleArray(arr);
}
reader.readAsText(input.files[0]);
}
};
答案 1 :(得分:0)
这是将文件转换为2D数组的简单方法:
var array;
function leseConfig (input)
{
if (input.files && input.files[0])
{
var reader = new FileReader();
reader.onload = function (e)
{
array = e.target.result.split('\n');
for(key in array)
array[key] = array[key].split(' ');
}
}
}