Получать текстовый файл построчно, используя Jquery $ .get () - PullRequest
6 голосов
/ 30 июня 2011

Можно ли построчно получать содержимое текстовых файлов?

Сейчас я использую этот код:

var file = "http://plapla.com/pla.txt";
function getFile(){
     $.get(file,function(txt){
        save(txt.responseText);
 }); 
}

функция сохранения сохраняет содержимое в переменную.И после того, как я распечатал его, все содержимое восстановленного файла находится в конце друг друга (не строка за строкой).

Ответы [ 3 ]

13 голосов
/ 30 июня 2011

Я не уверен, имеете ли вы в виду, что когда вы распечатываете файл, он помещается в одну строку или если вы говорите, что хотите разделить файл на строку.

Еслипроблема в том, что когда вы отображаете его, он объединяется, то есть потому, что вы помещаете его на страницу HTML, а это означает, что переводы строки игнорируются.У вас есть два варианта: либо заменить все новые строки тегами <br />, либо поместить весь текст в предварительный тег.

var file = "http://plapla.com/pla.txt";
function getFile(){
    $.get(file,function(txt){
        save(txt.responseText.replace(/\n/g, "<br />");
    }); 
}

// OR

var file = "http://plapla.com/pla.txt";
function getFile(){
    $.get(file,function(txt){
        save($("<pre />").text(txt.responseText));
    }); 
}

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

var file = "http://plapla.com/pla.txt";
function getFile(){
    $.get(file,function(txt){
        var lines = txt.responseText.split("\n");
        for (var i = 0, len = lines.length; i < len; i++) {
            save(lines[i]);
        }
    }); 
}
4 голосов
/ 30 июня 2011

Javascript может только сделать HTTP-запрос, который вернет вам HTTP-ответ с полным текстом, но у вас нет идеи читать построчно с открытием сокета и читать построчно.

Однако, если вы хотите построчно обрабатывать уже прочитанные данные, вы можете сделать следующее:

lineByLine = readData.split("\n");
process(lineByLine[0]); // First line
0 голосов
/ 16 сентября 2011

Если вы пытаетесь отображать построчно (сохраняя закодированные разрывы строк), самый простой способ сделать это - вставить полученный текст в элемент textarea, а не в div (или аналогичный). Браузер правильно обрабатывает поступающий текст.

Самообновление: заметил, что ни один из методов (data.replace () или просто использование textarea), похоже, не работает в IE9.

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