Вверх ↑
Этот топик читают: Гость
Ответов: 212
Рейтинг: 2
#1: 2021-10-08 13:44:41 ЛС | профиль | цитата
Приветствую.
Нужно очистить текст от некоторых слов. Схема простая, но удается удалить только одно какое-нибудь слово, а нужно несколько. Не пойму, чем их разделить



Add(MainForm,2953706,168,91)
{
Width=657
Height=279
Position=1
}
Add(Memo,3268934,322,91)
{
Left=15
Top=20
Width=455
Height=75
Font=[Arial Narrow,12,0,0,204]
Strings=#68:Кроваво-черное ничто пустилось вить систему клеток, связанных внутри|
}
Add(Button,10903626,266,175)
{
Left=15
Top=110
Width=130
Height=25
Font=[MS Sans Serif,12,0,0,1]
Caption="Очистить от:"
link(onClick,10286358:doMultiReplace,[])
}
Add(Memo,2433219,399,175)
{
Left=15
Top=150
Width=450
Height=75
Font=[Arial Narrow,12,0,0,204]
link(Str,10286358:Result,[(405,163)(364,163)(364,220)(328,220)])
}
Add(Edit,6446823,364,91)
{
Left=155
Top=110
Width=310
Height=25
Font=[MS Sans Serif,12,0,0,1]
Text="ничто"
}
Add(MultiReplace,10286358,322,175)
{
link(onResult,2433219:doAdd,[])
link(Text,3268934:Text,[])
link(ReplaceList,6446823:Text,[(335,145)(370,145)])
}


карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
vip
#1.1контекстная реклама от партнеров
Ответов: 4621
Рейтинг: 746
#2: 2021-10-08 13:54:13 ЛС | профиль | цитата
Перечень слов разделяешь разделителем, например, пробелом. С помощью компонента Str_Enum строка разбивается по разделителях и для каждого полученного слова выполняешь замену, как для одного. Не забыть указать пробел или другой разделитель в свойстве Str_Enum.Delimiter.
карма: 26

0
Ответов: 8887
Рейтинг: 823
#3: 2021-10-08 14:00:41 ЛС | профиль | цитата
inter1,


Add(MainForm,9853651,273,98)
{
Width=480
Height=251
Position=1
}
Add(Memo,3268934,399,91)
{
Left=15
Top=5
Width=445
Height=90
Font=[Arial Narrow,12,0,0,204]
Strings=#68:Кроваво-черное ничто пустилось вить систему клеток, связанных внутри|
}
Add(Button,10903626,273,161)
{
Left=15
Top=105
Width=130
Height=25
Font=[MS Sans Serif,12,0,0,1]
Caption="Очистить от:"
link(onClick,6099393:doEnum,[])
}
Add(MultiReplace,10286358,399,161)
{
link(onResult,3268934:doText,[(438,167)(438,139)(389,139)(389,118)])
link(Text,3268934:Text,[])
link(ReplaceList,6099393:Item,[(412,145)(391,145)(391,201)(342,201)])
}
Add(ListBox,10576643,336,98)
{
Left=15
Top=140
Width=160
Height=65
Strings=#5:ничто|7:систему|9:связанных|5:людей|
}
Add(ArrayEnum,6099393,336,161)
{
link(onItem,10286358:doMultiReplace,[])
link(Array,10576643:Array,[(342,138)(356,138)])
}

карма: 19

0
Ответов: 212
Рейтинг: 2
#4: 2021-10-08 14:23:22 ЛС | профиль | цитата
Леонид,спасибо! Я делал все так же, но по-другому

Netspirit, спасибо за разъяснения. Я предполагал, что нужен delimiter, но не нашел куда его вписать.

--- Добавлено в 2021-10-08 14:45:45

А, нет... Оно вырезает прямо из слов
Например, удалим союз "и". И удалятся все "и" из текста, а слово "ирис", например, превратится в "рс". А слова важно сохранить целыми, удалив лишь нежелательные и мелочь вроде союзов.

Редактировалось 2 раз(а), последний 2021-10-08 14:45:45
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Ответов: 4621
Рейтинг: 746
#5: 2021-10-08 14:59:18 ЛС | профиль | цитата
Обрамлять слово пробелами с двух сторон. Но не удалит самое первое и самое последнее (добавить пробел перед и после всего текста). А также слова, оканчивающиеся знаками препинания.
Вероятно, лучше использовать компонент RE_Replace для замены по всем этим условиям.

Редактировалось 3 раз(а), последний 2021-10-08 15:06:08
карма: 26

0
Ответов: 212
Рейтинг: 2
#6: 2021-10-08 15:09:33 ЛС | профиль | цитата
Я первым делом попробовал так и сделать, но, по-видимому, ReplaceList игнорирует пробелы, и ничего не меняется.
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#7: 2021-10-08 16:43:52 ЛС | профиль | цитата
inter1 писал(а):
А, нет... Оно вырезает прямо из слов
Например, удалим союз "и". И удалятся все "и" из текста, а слово "ирис", например, превратится в "рс". А слова важно сохранить целыми, удалив лишь нежелательные и мелочь вроде союзов.

Схема


Add(MainForm,2953706,336,210)
{
}
Add(MultiReplace,11639476,406,273)
{
ReplaceList="\ и \=\ \;"
Mode=1
link(onResult,280229:doText,[])
link(Text,4380921:Text,[])
}
Add(Edit,4380921,406,210)
{
Left=30
Top=20
Width=215
Text="Кушаем конфетки и ириски"
}
Add(Edit,280229,469,273)
{
Left=30
Top=90
Width=215
}
Add(Button,445097,336,273)
{
Left=115
Top=55
TabOrder=-1
link(onClick,11639476:doMultiReplace,[])
}

карма: 22

0
Ответов: 212
Рейтинг: 2
#8: 2021-10-08 18:03:21 ЛС | профиль | цитата
nesco, спасибо! Врубился.
карма: 0
Незнание HiAsm не снижает возможностей, но сильно увеличивает схему
0
8
Сообщение
...
Прикрепленные файлы
(файлы не залиты)