在JavaScript中逐行读取文本文件

时间:2014-03-14 15:12:23

标签: javascript ajax

我有一个这样的文本文件:

User:root
Password:root123

我需要逐行通过JavaScript访问此文本文件,并存储在数组中,以便我可以使用:

拆分该数组中的每个值

我尝试了很多方法,但没有用。

xmlHttp.onreadystatechange = function() {
  var tmpDoc, re=/^(.+)$/gm, arr=[], oP, arrSplit=[], arrSpl=[];
  if(xmlHttp.readyState === 4) {
    if(xmlHttp.status === 200){
      alert("AS");
      tmpDoc = xmlHttp.responseText;    
      arrSpl = tmpDoc.split(",");
      var arrGlobalHost = arrSpl[0].split(':');
      var arrGlobalUser = arrSpl[1].split(':');
      var arrGlobalPass = arrSpl[2].split(':');
      strGlobalHost = arrGlobalHost[1];
      strGlobalUser = arrGlobalUser[1];
      strGlobalPass = arrGlobalPass[1];
      xmlHttp=null;
    }
  }
}; 
xmlHttp.open("POST", fileName, true); // Use POST to prevent use of cached file
xmlHttp.send(); 

我在按钮点击事件上调用了这个,但我没有第一次获得输出。因为只有在第一次加载页面后才保持就绪状态,所以我需要在第一次加载页面时这样做。

3 个答案:

答案 0 :(得分:0)

在Windows中 - JScript + ActiveXObject(“Scripting.FileSystemObject”)

http://msdn.microsoft.com/en-us/library/2z9ffy99(v=vs.84).aspx

var fso, f1, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile ("c:\\test1.txt");
f1 = fso.GetFile("c:\\test1.txt");
ts = f1.OpenAsTextStream(ForWriting, true);
while (!ts.AtEndOfStream()) {
   var line = ts.ReadLine();
}

在其他 - Node.js +“文件系统”

http://nodejs.org/api/fs.html

http://nodejs.org/api/stream.html#stream_class_stream_readable

var fs = require('fs');
var readable = fs.createReadStream('sample.txt', {start: 90, end: 99});
readable.on('data', function(chunk) {
  console.log('got %d bytes of data', chunk.length);
});

答案 1 :(得分:0)

从网上拍摄目录

<!DOCTYPE html>
<html>
<head>
<script     src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$("button").click(function(){
   $("#div1").load("demo_test.txt");
});
});
</script>
 </head>

<div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div>
<button>Get External Content</button>

   

建议,谷歌搜索

答案 2 :(得分:0)

我用自己的技术获得了它 我刚刚用逗号分隔

编辑了文本文件(config.txt)
User:root,
Password:root123

我还添加了一个名为user的隐藏字段来获取通过ajax读取的文件的响应 然后我写的代码如下:

var xmlHttp = new XMLHttpRequest();// Specify HTTP GET by default and supply the relative url  
xmlHttp.open("POST", "config.txt", false);  // Start a synchronous AJAX request and wait for the response 
xmlHttp.send(null); 
var result = document.getElementById('user').value;
var result= xmlHttp.responseText; 
var arrSplt = new Array;
arrSplt = result.split(',');//seperating commas
var arrSplittedCredHost = new Array;var arrSplittedCredUser = new Array;
var arrSplittedCredPass = new Array;
arrSplittedCredHost = arrSplt[0].split(':');
arrSplittedCredUser = arrSplt[1].split(':');
arrSplittedCredPass = arrSplt[2].split(':');