读取txt文件并使用js或jquery获取一行的值

时间:2016-04-04 19:19:34

标签: javascript jquery

我有一个input.txt个文件,其中包含3列:

1   0   0
2   8   8
3   272 280
4   462 742
5   702 1,444
6   990 2,434
7   1,326   3,760
8   1,691   5,451
9   2,200   7,651
10  2,640   10,291
...

我需要一个函数(jQuery或javascript)来查找input.txt上的一行,然后返回第三列中包含值的行!

示例:

HTML文件

...
<script type="text/javascript">
        var numberX = document.getElementById('id_x').value;
        //FUNCTION
          //var result = return of the function;
</script>

如果numberX = 3,760,该函数打开我的文件,请检查所有最后一列,直到找到该号码并返回7,所以result = 7

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

尝试这样的事情:

var xhr = new XMLHttpRequest();
var data = null;

xhr.open("GET", "input.txt", true);
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
        data = xhr.responseText.split('\n');
        data = data.map(function(row) {
            return row.split(/\s+/);
        });
    }
};
xhr.send();

var getRecord = function(lastValue) {
    return data.find(function(row) {
        return row[2] === lastValue;
    })[0];
};

你会像这样使用它:

getRecord('3,760')

答案 1 :(得分:0)

首先,您需要找到一种方法来读取您的文件。尝试使用XMLHttpRequest。

var xhttp = new XMLHttpRequest();
xhttp.open("GET", "input.txt", false);
xhttp.send();

答案 2 :(得分:0)

您拥有XMLHttpRequest对象的真实文件,并将结果处理为字符串。

我有一个快速的plunker演示。

var value = '3,760';
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET', 'data.txt');
xmlhttp.onreadystatechange = function() {
  if (xmlhttp.readyState == 4) {
    var text = xmlhttp.responseText;
    var rows = text.split('\n');
    for (var i = 0; i < rows.length; i++) {
      var columns = rows[i].split(' ');
      for (var j = 0; j < columns.length; j++) {
        if (columns[j] == value)
          alert(columns[0]);
      }
    }
  }
}
xmlhttp.send();

https://plnkr.co/edit/5TlTltp0TaZi98IPF8Ii?p=preview