Получить кусок текста из Text в виде Text

  • Автор темы Автор темы dhead
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

dhead

Участник
Топикстартер
Сообщения
48
Реакции
0
Нужно осуществить поиск строки во фрагменте текста объекта Text.
делаю так:
cTxt=par.texts.itemByRange(leftTxtMargin,par.texts[0].characters.lastItem());
par типа XMLElement, leftTxtMargin - символ, с которого начинается нужный мне кусок.
после этого в cTxt.contents вижу то, что и ожидалось, но contents при этом почему-то не String, а array с одним элементом, содержащим строку с моим куском.
при этом cTxt.findGrep()[n] возвращает не текстовый объект, а нечто:[object Text],[object InsertionPoint],[object Text],[object InsertionPoint],[object Text],[object InsertionPoint],[object Text],[object InsertionPoint],[object Text],[object Character],[object InsertionPoint],[object InsertionPoint],[object InsertionPoint],[object InsertionPoint],[object InsertionPoint],[object InsertionPoint],[object InsertionPoint],[object InsertionPoint],[object InsertionPoint].

что я делаю неправильно?
 
Ответ: Получить кусок текста из Text в виде Text

Код:
alert(cTxt.findGrep()[0][n].contents);
У меня получилось так. Почему именно так, пока сказать не могу, но явно с массивами надо выяснять, кому что присвоено, и почему массив двумерный в итоге получается.
 
Ответ: Получить кусок текста из Text в виде Text

Проблема в том, что этот cTxt передается как Text в качестве аргумента функции. И в других случаях аргументом являются "нормальные" объекты Text. Можно, конечно, делать проверку на "нормальность", но это, мне кажется, это как-то ненормально)) Все-таки хочется понять, каким образом можно заполучить фрагмент Text-а типа Text. Вообще, метод itemByRange объекта Text должен возвращать Array of Text, но при попытке взять первый элемнт этого массива (par.texts.itemByRange(leftTxtMargin,par.texts[0].characters.lastItem())[0]) происходит ошибка.
 
Ответ: Получить кусок текста из Text в виде Text

Вести с полей:
Чтобы избавиться от странности вышеприведенного объекта, заключающейся в том, что ряд его свойств превращаются в массивы, состоящие из одного элемента, содержащее бывшее свойство, нужно делать так:
вместо cTxt=par.texts.itemByRange(leftTxtMargin,par.texts[0].characters.lastItem());
писать cTxt=par.texts.itemByRange(leftTxtMargin,par.texts[0].characters.lastItem()).texts[0];
 
Статус
Закрыто для дальнейших ответов.