Javascript:将文本文件读入矩阵
Javascript: Read text file into a matrix
我想读取一个带有数字的文本文件,并使用JavaScript将它们放入矩阵中
我知道如何加载和读取文件,甚至显示带有警报的内容,但我不知道如何将内容放入矩阵中。我一直在使用FileReader API。
我的想法是获取数字并与巴比伦一起使用.js这样我就可以在画布上绘制点
另一个问题是我想跳过很多行并开始从一个确切的单词开始阅读,这在 JavaScript 上甚至可能吗?
编辑:
<input type="file" id="fileinput" />
<script type="text/javascript">
if (window.File && window.FileReader && window.FileList && window.Blob) {
function readSingleFile(evt) {
var f = evt.target.files[0];
if (f) {
var r = new FileReader();
var contents = 'empty';
r.onload = function(e) {
contents = e.target.result;
alert( "File loaded:" + f.name + "'n");
alert(contents);
}
r.readAsText(f);
} else {
alert("Failed");
}
}
document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
} else {
alert('The File APIs are not fully supported by your browser.');
}
</script>
阅读文件后,我想输入这些数字:
2.50000000000000E+0002 -2.00000000000000E+0002 2.00000000000000E+0001 3.09941176470588E+0002 -1.59941176470588E+0002 8.58823529411765E+0001 0.00000000000000E+0000 0.00000000000000E+0000 1.00000000000000E+0000
进入矩阵[x][9],其中x是文件上的行数。
前六个数字表示画布中的坐标(x,y,z),后三个数字表示对象颜色
编辑2:来自@NOBrien的请求文件基本上是这样的:
NUM_GRUPOS 1
[GRUPO]
TAM 64
[PONTOS]
ROTULO 1
2.50000000000000E+0002 -2.00000000000000E+0002 2.00000000000000E+0001 0.00000000000000E+0000 0.00000000000000E+0000 1.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000
ROTULO 2
3.54000000000000E+0002 -2.52000000000000E+0002 3.90000000000000E+0002 1.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000 0.00000000000000E+0000
... //A bunch of other numbers
[ARESTAS]
TAM 60
2.50000000000000E+0002-2.00000000000000E+0002 2.00000000000000E+0001 3.09941176470588E+0002-1.59941176470588E+0002 8.58823529411765E+0001 0.00000000000000E+0000 0.00000000000000E+0000 1.00000000000000E+0000
我想跳过所有这些第一行并开始从 [ARESTAS] 关键字开始阅读,我还需要获取单词 TAM 后面的数字
这可能吗?
假设每行数据都在新行上,并且每个数据值由一个空格分隔:
更新的示例将仅添加keyword
行出现后出现的值。 仅记录包含 2 个以上字段的行。
var matrix = [];
var keyWord = '[ARESTAS]';
if (window.File && window.FileReader && window.FileList && window.Blob) {
function readSingleFile(evt) {
var f = evt.target.files[0];
if (f) {
var r = new FileReader();
var contents = 'empty';
r.onload = function(e) {
contents = e.target.result;
var pastKey = false;
contents.split(''n').forEach(function(line, i) {
if (pastKey) {
var vals = line.trim().split(' ');
if (vals.length > 2) {
matrix.push(vals);
}
}
if (line.trim() === keyWord) {
pastKey = true;
}
})
}
r.readAsText(f);
} else {
alert("Failed");
}
}
document.getElementById('fileinput').addEventListener('change', readSingleFile, false);
} else {
alert('The File APIs are not fully supported by your browser.');
}
代码笔:http://codepen.io/nobrien/pen/ONodwO
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- Sails.js:同时发布文本输入和一个文件
- 使用不带文本文件的OpenLayers显示POI
- 从单独的html文件预览Javascript文本
- 使用JSON文件中的变量(字符串)填充文本区域
- 使用javascript从文本文件中获取值
- 从javascript中的文本文件中获取值
- 在移动浏览器上显示大型文本文件
- 搜索文本文件并附加到表中
- 将文本文件加载到javascript中
- Angular http.get没有'我不喜欢在开头和结尾加方括号的文本文件
- 一个javascript实现base64图像编码并将结果写入文本文件
- 用javascript读取文本文件的第一行
- 从文本文件js中读取列表
- 使用JavaScript将压缩文本文件加载到字符串中
- 可以设置输入类型=文件的文本框的高度
- 数组在手动写入时有效,但从文本文件加载时无效
- 在浏览器中打开文本文件-服务器上出现错误
- 使用SeleniumWebdriver将文本复制到文件时出现编译错误的解决方案
- 使用 d3 或 ajax 读取本地文件文本(制表符分隔值)会导致 Firefox 开发控制台中的语法错误