Импорт данных из txt
Часть кода
var data = [ { label: "США", data: [[1990, 18.9], [1991, 18.7], [1992, 18.4], [1993, 19.3], [1994, 19.5], [1995, 19.3], [1996, 19.4], [1997, 20.2], [1998, 19.8], [1999, 19.9], [2000, 20.4], [2001, 20.1], [2002, 20.0], [2003, 19.8], [2004, 20.4]] }, { label: "Россия", data: [[1992, 13.4], [1993, 12.2], [1994, 10.6], [1995, 10.2], [1996, 10.1], [1997, 9.7], [1998, 9.5], [1999, 9.7], [2000, 9.9], [2001, 9.9], [2002, 9.9], [2003, 10.3], [2004, 10.5]] }, { label: "Англия", data: [[1990, 10.0], [1991, 11.3], [1992, 9.9], [1993, 9.6], [1994, 9.5], [1995, 9.5], [1996, 9.9], [1997, 9.3], [1998, 9.2], [1999, 9.2], [2000, 9.5], [2001, 9.6], [2002, 9.3], [2003, 9.4], [2004, 9.79]] }, { label: "Германия", data: [[1990, 12.4], [1991, 11.2], [1992, 10.8], [1993, 10.5], [1994, 10.4], [1995, 10.2], [1996, 10.5], [1997, 10.2], [1998, 10.1], [1999, 9.6], [2000, 9.7], [2001, 10.0], [2002, 9.7], [2003, 9.8], [2004, 9.79]] }, { label: "Дания", data: [[1990, 9.7], [1991, 12.1], [1992, 10.3], [1993, 11.3], [1994, 11.7], [1995, 10.6], [1996, 12.8], [1997, 10.8], [1998, 10.3], [1999, 9.4], [2000, 8.7], [2001, 9.0], [2002, 8.9], [2003, 10.1], [2004, 9.80]] }, { label: "Швеция", data: [[1990, 5.8], [1991, 6.0], [1992, 5.9], [1993, 5.5], [1994, 5.7], [1995, 5.3], [1996, 6.1], [1997, 5.4], [1998, 5.4], [1999, 5.1], [2000, 5.2], [2001, 5.4], [2002, 6.2], [2003, 5.9], [2004, 5.89]] }, { label: "Норвегия", data: [[1990, 8.3], [1991, 8.3], [1992, 7.8], [1993, 8.3], [1994, 8.4], [1995, 5.9], [1996, 6.4], [1997, 6.7], [1998, 6.9], [1999, 7.6], [2000, 7.4], [2001, 8.1], [2002, 12.5], [2003, 9.9], [2004, 19.0]] } ]; В переменную data нужно записать данные из файлов txt где данные будут иметь вид 21.01.2010/12:10 359.20 22.01.2010/12:15 376.73 Первый столбец - время, которое нужно задать таймстемпе Javascript Второй - значение в данный момент времени Для каждого лэйбэла будет свой txt с данными |
И какой у вас вопрос? Что не получается?
|
Не могу реализовать импорт данных из txt файла.
Так же нужно перевести данные в таймстеп JavaScript |
Загружайте данные с помощью XMLHttpRequest
|
Хорошо. Попробую разобраться.
Каким образом после загрузки данных их преобразовать в таймстеп JavaScript? |
|
Задрасля с XMLHttpRequest.
Не работает и все. Работает, но только с xml. С txt ничего не выводит Можно пример импорта двух txt файла в Javascript и вставить их в var data = [ { label: "США", data: [[1990, 18.9], [1991, 18.7], [1992, 18.4], [1993, 19.3], [1994, 19.5], [1995, 19.3], [1996, 19.4], [1997, 20.2], [1998, 19.8], [1999, 19.9], [2000, 20.4], [2001, 20.1], [2002, 20.0], [2003, 19.8], [2004, 20.4]] }, { label: "Россия", data: [[1992, 13.4], [1993, 12.2], [1994, 10.6], [1995, 10.2], [1996, 10.1], [1997, 9.7], [1998, 9.5], [1999, 9.7], [2000, 9.9], [2001, 9.9], [2002, 9.9], [2003, 10.3], [2004, 10.5]] } Где 1992 первый столбец 13.4 - второй столбец |
Ну так покажите код, а лучше тестовую страничку с кодом, в котором у вас возникают ошибки или что-то не получается.
|
http://propukal.ru/ajax/examples/1/test.html
Выводит сообщение только из xml файла, причем только из первой строчки. Ну раз выводит, значит читает. Это хорошо. Но суть в том, что мне нужно прочитать именно txt файл, т.к. данные записываются именно в него. Таких файлов n. Нужный мне скрипт в принципе готов, нужно только реализовать чтение данных из txt файлов и вставить данные соответственно для label: "США", label: "Россия" ... label: "n" |
Чтение данных происходит точно так же, только вместо responseXML нужно использовать responseText, затем регулярным выражением вытаскиваете из текста каждую строчку.
var responseText = "21.01.2010/12:10 359.20\r\n22.01.2010/12:15 376.73"; var lines = responseText.split(/\r\n/); alert(lines[1]); Ну и сервер для txt-файла должен посылать заголовок Content-Type: text/plain. |
Octane, помогите пожалуйста объединить 2 скрипта.
Нужно, чтобы данные в массиве d заменялись на данные в подгружаемом txt. 1 читает txt (причем, как я понимаю по нажатию кнопки) 2 рисует график. 1 скрипт: load_text('http://www.site.ru/data.txt'); var req; function load_text(url) { if (window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); } if (req != undefined) { req.onreadystatechange = function() {loadDone();}; req.open("GET", url, true); req.send(""); } else { alert("Can't load file"); } } function loadDone() { if (req.readyState == 4) { if (req.status == 200) { alert("loaded:\n" + req.responseText); } else { alert("error:\n" + req.status + "\n" +req.statusText); } } } Второй: <script id="source" language="javascript" type="text/javascript"> $(function () { var d = [[-373597200000, 315.71], [-370918800000, 317.45], [-368326800000, 317.50], [-363056400000, 315.86], [-360378000000, 314.93], [-357699600000, 313.19], [-352429200000, 313.34], [-349837200000, 314.67], [-347158800000, 315.58], [-344480400000, 316.47], [-342061200000, 316.65], [-339382800000, 317.71], [-336790800000, 318.29], [-334112400000, 318.16], [-331520400000, 316.55], [-328842000000, 314.80], [-326163600000, 313.84], [-323571600000, 313.34], [-320893200000, 314.81], [-318301200000, 315.59], [-315622800000, 316.43], [-312944400000, 316.97], [1159653600000, 379.03], [1162335600000, 380.17], [1164927600000, 381.85], [1167606000000, 382.94], [1170284400000, 383.86], [1172703600000, 384.49], [1175378400000, 386.37], [1177970400000, 386.54], [1180648800000, 385.98], [1183240800000, 384.36], [1185919200000, 381.85], [1188597600000, 380.74], [1191189600000, 381.15], [1193871600000, 382.38], [1196463600000, 383.94], [1199142000000, 385.44]]; $.plot($("#placeholder"), [d], { xaxis: { mode: "time" } }); $("#whole").click(function () { $.plot($("#placeholder"), [d], { xaxis: { mode: "time" } }); }); $("#nineties").click(function () { $.plot($("#placeholder"), [d], { xaxis: { mode: "time", min: (new Date("1990/01/01")).getTime(), max: (new Date("2000/01/01")).getTime() } }); }); $("#ninetynine").click(function () { $.plot($("#placeholder"), [d], { xaxis: { mode: "time", minTickSize: [1, "month"], min: (new Date("1999/01/01")).getTime(), max: (new Date("2000/01/01")).getTime() } }); }); }); </script> Содержимое txt: [[-373597200000, 315.71], [-370918800000, 317.45], [-368326800000, 317.50], [-363056400000, 315.86], [-360378000000, 314.93], [-357699600000, 313.19], [-352429200000, 313.34], [-349837200000, 314.67], [-347158800000, 315.58], [-344480400000, 316.47], [-342061200000, 316.65], [-339382800000, 317.71], [-336790800000, 318.29], [-334112400000, 318.16], [-331520400000, 316.55], [-328842000000, 314.80], [-326163600000, 313.84], [-323571600000, 313.34], [-320893200000, 314.81], [-318301200000, 315.59], [-315622800000, 316.43]] Не знаю нужны ли крайние квадратные скобки. |
1-й скрипт не нужен, раз вы в проекте используете jQuery. В этом фреймворке есть методы для асинхронной загрузки данных.
|
:help: я повешусь... Держите меня семеро!
Всю ночь не спал, а все оказалось так... |
Правильно ли я получаю данные из файла data.txt?
$.get("data.txt", function(data){ alert("Data Loaded: " + data); }); Может можно таким образом? Нужно загрузить массив данных в var d Это функция, по описанию, только для html и xml $("#feeds").load("feeds.txt"); Правда #feeds указывает на id=feeds. Не знаю что там нужно указывать |
|
Цитата:
|
Часовой пояс GMT +3, время: 03:21. |