Можете ли вы читать построчно в JavaScript? - PullRequest
2 голосов
/ 02 апреля 2012

Есть ли способ читать файл построчно в javascript, в частности это файл , который является словарем.Я пытался создать копию решателя java-анаграммы, которую я сделал несколько месяцев назад, но столкнулся с проблемой невозможности прочитать файл построчно.Я мог бы загрузить файл и сохранить его локально, если это будет иметь какое-либо значение для возможности его чтения.

Ответы [ 3 ]

3 голосов
/ 02 апреля 2012

Использовать YQL:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fdocs.oracle.com%2Fjavase%2Ftutorial%2Fcollections%2Finterfaces%2Fexamples%2Fdictionary.txt%22&format=json&diagnostics=true&callback=cbfunc

Вот как выглядит скрипка:

window.callback = function(a) { window.file = a.query.results.body.p; go(); };

$.getScript('http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fdocs.oracle.com%2Fjavase%2Ftutorial%2Fcollections%2Finterfaces%2Fexamples%2Fdictionary.txt%22&format=json&diagnostics=true&callback=callback');

window.go = function() {
    var terms = file.split(' ');

    for (var i = 0; i < 100; i++)
        console.log(terms[i])
};

Скрипка делает только первые 100, но вы понимаете (я надеюсь).

1 голос
/ 02 апреля 2012

В большинстве случаев вы можете просто прочитать файл в память и затем разобрать его в строки. Если вы прочитаете все это в памяти с помощью вызова ajax, вы можете просто использовать data.split("\n") для преобразования его в массив строк.

0 голосов
/ 02 апреля 2012

Вы должны инициировать Ajax-запрос для такой операции. Чтение файла построчно, хотя и не рекомендуется через Ajax, так как вы в конечном итоге создадите множество запросов к серверу в процессе, так как JavaScript связан с клиентской стороной и ограниченным доступом. Ajax-запрос к серверу является надстройкой последних лет.

Определенно, вы ищете некоторую информацию, используя некоторые ключевые слова; поэтому было бы целесообразно добавить логику поиска в функции сервера; вызовите конкретную функцию через Ajax и верните набор результатов обратно в браузер. Эта функция может быть файлом, который генерирует результат, или веб-сервисом. Вы выбираете свой вкус.

Альтернативным вариантом будет перекодировать информацию о файле в JSON ( о JSON ) при запуске и позволить ему перейти в сценарий js клиента. Я бы не рекомендовал XML для этого, так как он потребляет много памяти браузера в терминах обработки. Был там! :(. Так как JavaScript имеет встроенную поддержку JSON, он будет работать гладко. Внимание, это подвергает данные локальному.

...