У меня есть список текстовых форм, полученных из текста. Этот список включает в себя собственные имена (например, Джон, Мэри, Эдинбург). В другом поле у меня есть список собственных имен. Я хочу получить список всех форм слова без собственных имен.Как удалить слова из одного списка из другого списка (Установить операцию)
я на самом деле нужно allWordForms MINUS properNames
Массивы могут быть использованы как наборы. Но мы имеем только заданные операции Union
и Intersect
.
Сценарий до сих пор
on mouseUp
put field "allWordForms" into tWordForms
split tWordForms by return
-- tWordForms is now an array
put field "properNames" into tProperNames
split tProperNames by return
-- tProperNames is now an array
-- .....
repeat
-- .....
-- .....
end repeat
combine tWordForms using return
put tWordForms into field "wordFormsWithoutProperNames"
end mouseUp
Как повторяющееся цикл выглядеть?
И вот пример.
поле "allWordForms" содержит
Mary
and
John
came
yesterday
They
want
to
move
from
Maryland
to
Petersbourough
`
поле "properNames" содержит
John
Mary
Maryland
Peter
Petersbourough
Желаемый результат должен иметь копию списка allWordForms
с надлежащим имена удалены.
and
came
yesterday
They
want
to
move
from
to
я добавил пример к вопросу. Ваше решение дает в результате следующих строк (включая пустой в начале) 'и пришло вчера Они хотят чтобы движение от земли в sbourough'. Слова «Maryland» и «Petersborough» рубились, что не является ожидаемым результатом. Я хочу убедиться, что он работает с wordforms в целом. Вот почему я просил повторить цикл и предложил пойти на массивы. Массивы поддерживают заданные операции «Союз» и «Интерсект». Я ищу синтаксис livecode для реализации 'tAllWordForms минус tProperNames'. –
Нет встроенной функции массива для достижения вашей цели, но второй пример работает по мере необходимости с вашими данными. – splash21
Примечание: первое решение не работает надежно. –