Как вы можете читать файл построчно в JavaScript? - PullRequest
7 голосов
/ 28 июля 2011

Я пишу веб-приложение для iPad, которое будет загружать данные из текстового файла. (Примерный набор данных составляет около ~ 400 кб). У меня все настроено, кроме чтения файлов. Как я настроил свой код, вы передаете объект, который читает файл строка за строкой.

Как я могу прочитать файл построчно?

Если нет прямого способа прочитать файл построчно, может кто-нибудь показать мне пример того, как прочитать файл в строковый объект? (чтобы я мог использовать метод split: P)

Ответы [ 4 ]

13 голосов
/ 28 июля 2011

Это может сработать, если я пойму, что вы хотите сделать:

var txtFile = new XMLHttpRequest();
txtFile.open("GET", "http://website.com/file.txt", true);
txtFile.onreadystatechange = function()
{
  if (txtFile.readyState === 4) {  // document is ready to parse.
    if (txtFile.status === 200) {  // file is found
      allText = txtFile.responseText; 
      lines = txtFile.responseText.split("\n");
    }
  }
}
txtFile.send(null);
2 голосов
/ 19 июля 2013

С jQuery:

myObject = {}; //myObject[numberline] = "textEachLine";
$.get('path/myFile.txt', function(myContentFile) {
   var lines = myContentFile.split("\r\n");

   for(var i  in lines){
      //here your code
      //each line is "lines[i]"

      //save in object "myObject": 
      myObject[i] = lines[i]

      //print in console
      console.log("line " + i + " :" + lines[i]);
   }
}, 'text');
2 голосов
/ 28 июля 2011

Mobile Safari не имеет File API , поэтому я предполагаю, что вы говорите о чтении с веб-ресурса.Вы не можете сделать это.Когда вы читаете ресурс через ajax, браузер сначала полностью прочитает его в память, а затем передаст всю строку в ваш обратный вызов ajax в виде строки.

В вашем обратном вызове вы можете взять строку и разбить ее настрок и оберните это в объект, который имеет API, который требуется вашему коду, но вы все равно будете иметь строку в памяти сразу ...

0 голосов
/ 28 июля 2011

Я не думаю, что это возможно, пока вы не используете ajax, чтобы поразить некоторый код на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...