WORLD OF WARCRAFT

Тема: Нужна помощь с JavaScript  (Прочитано 5041 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Kermit

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 8586
Нужна помощь с JavaScript
« : 19 Марта, 2009, 11:36:35 »
  • Рейтинг:0 (+0 | 0)



Свершилось чудо! Благодаря неоценимой помощи Moos и Бармалейки проблема решена и скрипт написан. Ух, теперь живем. :)



Есть следующая проблема. При переводе патч нотов, да и чего угодно, каждый раз, встречая английское название заклинания, таланта или предмета, приходится лезть на вовхед и находить там его русское название и вовхедовскую ссылку. Когда за одним и тем же талантом приходится лезть из патча в патч, это просто бесит, не говоря уже о том, что отнимает кучу времени. Реально, оформить статью со ссылками на заклинания занимает столько же времени, сколько ее перевести.

Сегодня опять вышел новый билд на PTR, я посмотрел на него и подумал - хватит, надоело. Надо этот процесс автоматизировать.

Задача. Есть набор строк, вида
Английское_название,Русское_название,Ссылка
Набор хранится в файле на локальном диске, или же в файле скрипта. В нем могут быть пробелы и апострофы.
Требуется написать JS-функцию, которая ищет в этом наборе строк переданную ей в качестве параметра другую строку. Если параметр совпадает с Английское_название, на выходе функции должно быть Русское_название,Ссылка (отформатированное, это неважно).

Почему JS? Потому что его я смогу прилепить к броузеру и вызывать при выделении текста из меню по правой кнопке мыши. Это будет удобно и сэкономит гигантское количество времени, даже учитывая изначальное создание массива руками.

Думаю, что смогу написать все и сам, но не знаю сколько времени у меня это займет. Эту же просьбу я изложил в надежде, что среди читателей сайта есть люди, пишущие на JS, для которых задача окажется простой.

Ушел читать справочник. Ждите через пару дней. :)
« Последнее редактирование: 19 Марта, 2009, 18:17:32 by Kermit »

Pitkin

  • Новичок
  • *
  • Сообщений: 30
Re: Нужна помощь с JavaScript
« Ответ #1 : 19 Марта, 2009, 11:48:50 »
  • Рейтинг:0 (+0 | 0)
Помочь ничем не могу,но марально с тобой!!!Молодец чувак!!!

Бармалейка

  • Новичок
  • *
  • Сообщений: 7

  • Варкрафт: +
    • Имя: Бармалейка
Re: Нужна помощь с JavaScript
« Ответ #2 : 19 Марта, 2009, 12:59:23 »
  • Рейтинг:0 (+0 | 0)
Наверное что то наподобе.  :)

function GetIndex(array , name) {
 for (var i = 0; i < array.length; i++) {
  var s = new String(array<i>);
  var position = s.indexOf(',');
  if (position != -1 && s.substr(-1 , position - 1) == name) {
   return s.substr(position + 1);
  }
 }
 //Если ни чего не нашли :)
 return '';
}

З.Ы. Треуголные скобки надо поменять на квадратные :)
« Последнее редактирование: 19 Марта, 2009, 16:39:24 by Бармалейка »

Kermit

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 8586
Re: Нужна помощь с JavaScript
« Ответ #3 : 19 Марта, 2009, 13:15:16 »
  • Рейтинг:0 (+0 | 0)
Забивать в форме массива - не наш метод. :) Как его обновлять потом? Это же замумукаешься. Надо массив откуда-то считать.

Moos

  • Новичок
  • *
  • Сообщений: 1
Re: Нужна помощь с JavaScript
« Ответ #4 : 19 Марта, 2009, 13:21:59 »
  • Рейтинг:0 (+0 | 0)
Кинь контакты в ПМ - помогу.

Бармалейка

  • Новичок
  • *
  • Сообщений: 7

  • Варкрафт: +
    • Имя: Бармалейка
Re: Нужна помощь с JavaScript
« Ответ #5 : 19 Марта, 2009, 13:22:51 »
  • Рейтинг:0 (+0 | 0)
Ну можно записывать данные в textarea и разбирать потом строки как элементы массива  :)

Kermit

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 8586
Re: Нужна помощь с JavaScript
« Ответ #6 : 19 Марта, 2009, 13:51:10 »
  • Рейтинг:0 (+0 | 0)
Ну можно записывать данные в textarea и разбирать потом строки как элементы массива  :)
Пример можно? :)

Orbion

  • Новичок
  • *
  • Сообщений: 22
Re: Нужна помощь с JavaScript
« Ответ #7 : 19 Марта, 2009, 14:26:46 »
  • Рейтинг:0 (+0 | 0)
ммм если не найдешь на JS, могу на PHP парсер написать к примеру с вовхеда

parter

  • Старожил
  • ***
  • Сообщений: 1172

  • Варкрафт: +
    • Класс: Охотник
    • Сервер: РФ
Re: Нужна помощь с JavaScript
« Ответ #8 : 19 Марта, 2009, 16:05:15 »
  • Рейтинг:0 (+0 | 0)
а чо новостей никаких не будет(? :-[

Бармалейка

  • Новичок
  • *
  • Сообщений: 7

  • Варкрафт: +
    • Имя: Бармалейка
Re: Нужна помощь с JavaScript
« Ответ #9 : 19 Марта, 2009, 16:44:53 »
  • Рейтинг:0 (+0 | 0)
Пример можно? :)

Самый простой способ. Разбиваем textarea на значения массива по строкам.

function GetTextAreaValue (form) {   
 var text = new String(form.myarea.value);
 var startIndex = 0;
 var endIndex = text.indexOf("\n");
 var array = new Array();
 var arrayIndex = 0;
 while (endIndex != -1) {
  array<arrayIndex> = text.substring(startIndex,endIndex - 1);
  startIndex = endIndex + 1;
  text = text.substring(startIndex);
  endIndex = text.indexOf("\n");
  arrayIndex++;
 }
 return array;
}

З.Ы. Не ужели нет народа который WEB - дизайном занимается?

Шакур

  • Новичок
  • *
  • Сообщений: 5
Re: Нужна помощь с JavaScript
« Ответ #10 : 19 Марта, 2009, 16:55:26 »
  • Рейтинг:0 (+0 | 0)
а чо новостей никаких не будет(? :-[

пока админу скрипт не напишите - никаких не будет

Kermit

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 8586
Re: Нужна помощь с JavaScript
« Ответ #11 : 19 Марта, 2009, 17:05:21 »
  • Рейтинг:0 (+0 | 0)
казалось бы, причем тут шантаж

Бармалейка

  • Новичок
  • *
  • Сообщений: 7

  • Варкрафт: +
    • Имя: Бармалейка
Re: Нужна помощь с JavaScript
« Ответ #12 : 19 Марта, 2009, 17:28:36 »
  • Рейтинг:0 (+0 | 0)
Без массивов и т.д

function GetValue(text , name) {
 var sText = new String(text);
 var sName = new String(name);
 var startIndex = sText.indexOf(name);
 if (startIndex != -1) {
  var endRussian = sText.indexOf(',' , startIndex + sName.length);
  var endLink = sText.indexOf(',' endRussian + 1);
  return sText.substring(startIndex + sName.length , endLink - 1);
 }
 return '';
}

З.Ы. если надо как сылку то return "<a href = \""+sText.substring(endRussuian + 1 , sText.indexOf(',' endRussian + 1) - 1) + "\">"+ sText.substring(startIndex + sName.length , endRussian + 1 ) + "</a>";
« Последнее редактирование: 19 Марта, 2009, 17:35:54 by Бармалейка »

Kermit

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 8586
Re: Нужна помощь с JavaScript
« Ответ #13 : 19 Марта, 2009, 17:53:09 »
  • Рейтинг:0 (+0 | 0)
Спасибо, уже виден свет в конце туннеля. :)

Бармалейка

  • Новичок
  • *
  • Сообщений: 7

  • Варкрафт: +
    • Имя: Бармалейка
Re: Нужна помощь с JavaScript
« Ответ #14 : 19 Марта, 2009, 21:22:48 »
  • Рейтинг:0 (+0 | 0)
Хорошо. Я просто сам первый раз на JS писал  :)

 

закрыть