Восстановление позиции в исходном массиве из позиции в урезанном массиве - PullRequest
0 голосов
/ 22 марта 2010

У меня есть текстовый файл, который содержит следующее:

<ID>
<Time 1> --> <Time 2>
<Quote (potentially multiple line>
<New Line Separator>

<ID>
<Time 1> --> <Time 2>
<Quote (potentially multiple line>
<New Line Separator>

<ID>
<Time 1> --> <Time 2>
<Quote (potentially multiple line>
<New Line Separator>

У меня есть очень простое регулярное выражение для разбивки их в константный блок, так что это просто:

<Quote>
<Quote>
<Quote>

То, что я хотел бы сделать, это представить кавычки в виде блока пользователю и попросить их выбрать его (используя jQuery.fieldSelection), а затем использовать выбранный контент для возврата к исходному массиву, чтобы я мог получить времяи идентификаторы.

Поскольку это должно выходить в HTML, а пользователь должен иметь возможность выбирать текст на экране, я не могу ничего сделать, например, скрытые div или скрытые поля ввода.Единственные данные, которые у меня будут - это диапазон символов, выбранный на экране.

Если быть точным, то это выглядит так:

1
0:00 --> 0:05
He was bored. So bored. His great intellect, seemingly inexhaustible, 
was hungry for new challenges but he was the last of the great innovators

2
0:05 --> 0:10
- society's problems had all been solved.

3
0:11 --> 0:20
All seemingly unconnected disciplines had long since been found to be related in
horrifically elusive and contrived ways and he had mastered them all.

И это то, что я хотел бы представитьпользователю на выбор:

Ему было скучно.Так скучно.Его великий интеллект, казалось бы, неиссякаемый, жаждал новых вызовов, но он был последним из великих новаторов - все проблемы общества были решены.Все, казалось бы, не связанные между собой дисциплины давно были найдены связанными ужасно неуловимыми и надуманными способами, и он освоил их все.Есть идеи, как взять выделенный текст или выделенную позицию и вернуться к исходным метаданным?

1 Ответ

1 голос
/ 22 марта 2010

Это невозможно в общем случае, потому что нет гарантии, что элемент в списке (или даже ряд элементов, длина которых меньше половины общего результата) будет уникальным. Если мы установим ограничение на то, что любой фрагмент текста появится только один раз, мы можем просто выполнить поиск текста в исходном списке и посмотреть, где это происходит (хотя это будет неэффективно). В общем, лучшим решением было бы прикрепить ссылку на исходный фрагмент к урезанной версии. Если вы выполняете преобразование с помощью Javascript, это очень просто - просто сделайте так, чтобы функция преобразования завершила каждое результирующее предложение в промежуток и установила thisSpan.original = 3 или что-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...