Импорт данных из 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, время: 07:28. |