С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/12: Рейтинг темы: голосов - 12, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 10
1

Чтение файла из JS

14.10.2013, 21:20. Показов 2193. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, ребята!
Хотел спросить совета. Я считываю следующей функцией файл на домашнем сервере (первая просто формирует список динамически).
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function createList(data) {
  var list = document.createElement("ul");
  for (var i = 0; i < data.length; i++) {
    var newItem = document.createElement("li");
    var newText = document.createTextNode(data[i]);
    
    newItem.appendChild(newText);
    list.appendChild(newItem);
  }
  return list;
}
 
window.onload = function() {
    // Reads entire file into a string
    //
    // +   original by: Legaev Andrey
    // %        note 1: This function uses XmlHttpRequest and cannot retrieve resource from different domain.
 
    var req = null;
    try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
        try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {
            try { req = new XMLHttpRequest(); } catch(e) {}
        }
    }
    if (req == null) throw new Error('XMLHttpRequest not supported');
    req.open("GET", "http://localhost/demo1/test_1.txt", false);
    req.send(null);
    
    var list = createList(req.responseText);
    document.body.appendChild(list);
    return req.responseText;
Файл text_1.txt содержит просто запись слов через пробел в строку, например: 2 dog собака машина.

После этого мне нужно результирующую строку req.responseText в этом же скрипте (даже в этой функции) перевести в массив, да причем так, чтобы вычленялись отдельные слова. Я использовал все возможные функции вроде split и explode (есть на js аналог), пытался вручную все это конвертить - шиш. Роюсь вот уже 4 дня.

Хотел спросить, может кто знает, как это по-человечески сделать? Или, возможно, работали с файлами из js по-другому, более корректно?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2013, 21:20
Ответы с готовыми решениями:

Чтение чисел из файла. Чтение после конца потока невозможно
Товарищи, помогите. В Pascal'e я не силен, так что не бейте меня ногами, но есть задача: написать...

Как заменить чтение строки из консоли на чтение текстового файла?
основное задание: найти частоту суффикса (например, &quot;ing&quot;) в текстовом документе. в...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит...

Чтение заголовка PCX файла и чтение растровых данных PCX файла
Привет форумчане! Столкнулся с такой проблемой. Нужно считать заголовок PCX файла и растровые...

2
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 2
14.10.2013, 23:23 2
для подобного лучше json использовать

что приходит из txt? если строка, то split() по пробелу, если не строка, то попробовать преобразовать к ней через toString() и потом split()
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
14.10.2013, 23:44 3
полученный от сервера ответ responseText - это всегда переменная типа String, т.е. строка символов

метод, который преобразует строку в массив - он в javascript'e единственный: это метод split (разделитель)

судя по вашему описанию - "запись слов через пробел в строку, например: 2 dog собака машина" - разделителем в данном случае является символ пробела

соответственно, вашу функцию createList () следует переписать следующим образом:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function createList (str) // функция получает в качестве аргумента строку символов str
{
var arr = str.split (' '); // из строки символов str создаём массив arr по разделителю "символ пробела"
var tegUL = document.createElement ('UL'); // создаём тег UL
 
for (var j = 0, J = arr,length; i < j; i++) // цикл будет крутиться столько раз, сколько слов было передано с сервера
   {
   var tegLI = document.createElement ('LI'); // создаём элемент LI
   var txtLI = document.createTextNode (arr [j]); // создаём текстовое содержание тега LI из очередного переданного слова
   tegLI.appendChild (txtLI); // прописываем слово в тег LI
   tegUL.appendChild (tegLI); // добавляем тег LI в тег UL
   }
return tegUL;
}
0
14.10.2013, 23:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.10.2013, 23:44
Помогаю со студенческими работами здесь

Чтение бинарного файла - чтение первых 9 байт
Есть код, который читает первые 9 байт бинарного файла(заголовок записи) void...

Переделать в коде чтение из файла в чтение с клавиатуры
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен за помощь! //файл...

Чтение файла CSV и чтение из Table View
Здравствуйте, задача считать столбцы и строки excel в TextEdit. Прошу помощи в реализиции. ...

Чтение из файла. Повторное чтение файла
Добрый день. Необходимо реализовать в программе функцию повторного чтения данных из файла, в случае...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru