|
|
Модератор форума: JonMagon |
Сообщество uCoz Вебмастеру JavaScript, Flash и прочие технологии Помогите разобрать текст на части (Нужно разобрать текст на составляющие без участия PHP) |
Помогите разобрать текст на части |
Есть импортированный с OZ список товаров. Но он импортируется в виде простого текста такого вида:
Цитата НОМЕР ТОВАРА~НАЗВАНИЕ~~КРАТКОЕ ОПИСАНИЕ~URL КАРТИНКИ~URL СТРАНИЦЫ ТОВАРА И так энное количество строк. Вопрос: Как выбирать из этого случайную строку и разделять её на составляющие присваивая значения переменным. В программировании я не полный ноль (владею Visual Basic), но вот с js не дружу. Подскажите в какую сторону копать (желательно ссылками на примеры). Подозреваю, что надо загнать всё в массив и там разлагать. Вот страница с результатом импорта: ссылка |
а какой формат (расширение) у полученного файла... может быть все же проще сначала посредством скажем Эксела привести файл к стандартному виду CSV?
(думаю для этого понадобится использовать функцию Заменить.. (заменить все точки в файле на запятые) ? какова конечная цель? вы хотите использовать данный файл для подгрузки товаров в магазин или что то другое? |
а какой формат (расширение) у полученного файла... может быть все же проще сначала посредством скажем Эксела привести файл к стандартному виду CSV? (думаю для этого понадобится использовать функцию Заменить.. (заменить все точки в файле на запятые) ? какова конечная цель? вы хотите использовать данный файл для подгрузки товаров в магазин или что то другое? Импортирую с магазина с помощью "Импорта удаленного кода". Магазин предоставляет ссылку для импорта следующего вида: Цитата Скрипт экспорта товаров доступен по адресу http://oz.by/data/export.phtml?type=<тип товара>&limit=<кол-во изделий>&topic=<подраздел>&img=<размер картинки> и отдается в текстовом формате (в конце строк стоит символ "\n"). Список состоит из строк вида "ID~Название~Автор\Актеры~Описание~Изображение~Ссылка" (параметры разделены символом тильда "~"). Половину работы я уже сделал: Код <div id="my"></div> <script> var impstr = []; var texti = '[b]ТЕКСТ ИМПОРТИРУЕМЫЙ С ПОМОЩЬЮ RCODE_1'; var target = '.html'; // цель поиска var pos = 0; alert (texti); while(true) { var foundPos = texti.indexOf(target, pos); if (foundPos == -1) break; impstr.push(texti.substring(pos,foundPos+5)); pos = foundPos + 6; } var rand = Math.floor( Math.random() * impstr.length ); var texti = impstr[rand]+"~"; var target = '~'; var strvar = []; var pos = 0; while(true) { var foundPos = texti.indexOf(target, pos); if (foundPos == -1) break; strvar.push(texti.substring(pos,foundPos)); pos = foundPos + 1; } document.getElementById('my').innerHTML = "<a href='"+ strvar[5] +"' target='_blank'><table border='1' width='200'><tr><td>" + strvar[1] + "</td></tr><tr><td><img src='" + strvar[4] + "' /><br />"+ strvar[3]+"</td></tr></table></a>"; </script> Добавлено (16 Сен 2014, 15:46:17) |
Ура!!!!
Проблема решена. Код <div id="mydata" style='display:none;'>$RCODE_1$</div> // загоняем импортированные данные в скрытый div <script> var impstr = []; var texti = document.getElementById("mydata").innerText; // выдираем данные из div в переменную var target = '.html'; var pos = 0; // разбиваем текст на нужные строки с данными о товаре и складываем в массив while(true) { var foundPos = texti.indexOf(target, pos); if (foundPos == -1) break; impstr.push(texti.substring(pos,foundPos+5)); pos = foundPos + 6; } var rand = Math.floor( Math.random() * impstr.length ); // выбираем случайный товар из массива var texti = impstr[rand]+"~"; // добавляем в конце выбранной строки ~ (так надо, а то не будет работать как надо) var target = '~'; var strvar = []; var pos = 0; // разбиваем строку на составляющие while(true) { var foundPos = texti.indexOf(target, pos); if (foundPos == -1) break; strvar.push(texti.substring(pos,foundPos)); pos = foundPos + 1; } // Создаём строку с html-разметкой и выбранными данными товара и вставляем в div в который мы импортировали данные магазина document.getElementById('mydata').innerHTML = "<a href='"+ strvar[5] +"' target='_blank'><table border='1' width='200'><tr><td>" + strvar[1] + "</td></tr><tr><td><img src='" + strvar[4] + "' /><br />"+ strvar[3]+"</td></tr></table></a>"; document.getElementById('mydata').style.display = "block"; // делаем div видимым </script> Вуаля. Рекламный банер готов. Он берёт случайный товар из списка в случайном порядке при загрузке страницы. Может кому пригодится. Значение строк массива для формирования кода банера: strvar[0] - № товара; strvar[1] - заголовок; strvar[2] - пустой; strvar[3] - описание товара; strvar[4] - ссылка на картинку товара; strvar[5] - ссылка на страницу товара в магазине. Возможно мой код грубый, но извиняйте. Первый раз пишу на Java Script. Добавлено (16 Сен 2014, 16:55:10) --------------------------------------------- Результат работы скрипта можно посмотреть на моем сайте http://lokalizator.ucoz.ru/ справа блок "Рекомендуем" Сообщение отредактировал Vlad-Soft - Вторник, 16 Сен 2014, 17:15:59
|
| |||
| |||