Проблема с SubString в JavaScript - возвращает неожиданное значение - PullRequest
0 голосов
/ 18 сентября 2018

Я стек.

Почему строка 5 не работает?

Я пытаюсь создать программу в скриптах Google, которая проверит мое расписание и добавит уроки в мойGoogle Callendar.

function GetCodeFromURL возвращает HTML со страницы

function GetRightTable возвращает HTML-подстроку с html-страницы, которая содержитпросто таблица

Функция GetPosition возвращает позицию (n) stsubstring

function myFunction() {
  var d = GetCodeFromURL('https://bakalari.randovka.cz/rozvrh.aspx?nazev=0&tisk=1');
  var t = GetRightTable('<table cellspacing="0" cellpadding="0" class="r_roztable">', d);
  var r = GetRowOnIndex(t, 3);
  var c = GetColumnOnIndex(r,6);
}

//FCE returns Column in table in row
function GetColumnOnIndex(code2, column)
{
  var p2 = GetPosition(code2, '<td>', column);
  var value2 = code2.substring(p2, code2.length-1);
  value2 = value2.substring(0, value2.indexOf("</td>")+5);
     return value2;
}

//FCE returns row in table
function GetRowOnIndex(code, row)
{
  var p = GetPosition(code, '<tr>', row);
  var value = code.substring(p, code.length-1);
  value = value.substring(0, value.indexOf("</tr>")+5);
     return value;
}

Спасибо за вашу помощь.

Honza

1 Ответ

0 голосов
/ 18 сентября 2018

Цель состоит в том, чтобы создать функцию, которая будет принимать URL-адрес и возвращать HTML-код для одного поля / поля таблицы (подтекст).

Просто GetCollumnOnIndex не работает, он возвращает «>».Я не знаю, почему я использовал тот же код, что и для GetRowOnIndex, и просто изменил «td».Существует полный код:

function myFunction() {
  var d = GetCodeFromURL('https://bakalari.randovka.cz/rozvrh.aspx?nazev=0&tisk=1');
  var t = GetRightTable('<table cellspacing="0" cellpadding="0" class="r_roztable">', d);
  var r = GetRowOnIndex(t, 3);
  var c = GetColumnOnIndex(r,6);
  
  Logger.clear()
  Logger.log(c);
  
  
  PrintInToDoc("https://docs.google.com/document/d/1OqOhJxyMQSNMsvIawzZUdwna6IrCfCAVpWxhZcSu9Vk/edit?usp=sharing", c)
}

//FCE returns position of substring
function getPosition(string, subString, index) {
   return string.split(subString, index).join(subString).length;
}

//FCE returns Column in table in row
function GetColumnOnIndex(code2, column)
{
  var p2 = getPosition(code2, '<td>', column);
  var value2 = code2.substring(p2, code2.length-1);
  value2 = value2.substring(0, value2.indexOf("</td>")+5);
     return value2;
}

//FCE returns row in table
function GetRowOnIndex(code, row)
{
  var p = getPosition(code, '<tr>', row);
  var value = code.substring(p, code.length-1);
  value = value.substring(0, value.indexOf("</tr>")+5);
     return value;
}

//FCE returns subtring with table
function GetRightTable(tableTag, code)
{
  i = code.indexOf(tableTag);
  return code.substring(i, code.length);
}

//FCE prints into docfile
function PrintInToDoc(docUrl, text)
{
  var doc = DocumentApp.openByUrl(docUrl);
  var body = doc.getBody();
  var par = body.insertParagraph(0, text);
}
...