angular - 逐行读取角度文本文件
问题描述
我有这个文本文件:
"u901_humext ""2019-02-10 00:00"" 99.97 99.97 99.97"
"u901_radpar ""2019-02-10 15:40"" 1002.9 1068.4 1034.3943396226"
我想从以下行中获取数据:
name = u901_humext date = 2019-02-10 00:00 min = 99.97 avg = 99.97 max = 99.97
我有这个类的功能,但只能显示所有数据:
export class LeerArchivoComponent implements OnInit {
private fileText;
private nombre:String;
constructor() { }
ngOnInit() {
}
fileUpload(event){
var reader = new FileReader();
reader.readAsText(event.srcElement.files[0]);
var me = this;
var nombre:String;
reader.onload = function (){
me.fileText = reader.result;
}
}
和像这样的html:
<input id="file-upload"
type="file"
accept=".txt"
(change)="fileUpload($event)">
<textarea rows="4" cols="50">{{fileText}}</textarea>
解决方案
将 ArrayBuffer 转换为字符串,然后尝试按以下行拆分文本:
function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint16Array(buf));
}
const text = ab2str(reader.result);
const lines = text.split(/\r?\n/);
之后,您可以用空格分隔每一行以读取每个单独的值:
lines.forEach(line => {
const vars = line.split(' ');
console.log(vars);
});
推荐阅读
- azure - DSC 脚本问题
- javascript - 嵌套字段上的 MongoDB 聚合 $size
- javascript - 如何使用用户提交的信息更新谷歌地图标记?
- flutter - 如何在 Flutter 中创建重音按钮?
- python - 在 python 中使用 rpy2 运行用户定义的函数时出现 RRuntimeError
- c# - 椭圆变成长方形
- linux - 稍后在分配变量后使用变量引用扩展字符串
- node.js - 无法在 angular4 中使用数组到树的 npm 模块
- mysql - MySQL Workbench 查询返回 1 行,但 Jdbc 中的相同查询返回 0
- c# - 执行在数据集的 .xsd 中配置的存储过程