Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 25682
Рейтинг: 2087
#1: 2011-04-28 02:51:42 ЛС | профиль | цитата
А вот и MultiReplace готов -- multireplace.rar
Поддерживает мультистрочную замену. Можно слово заменить на целый текст. Разделитель и концевой символ можно изменить по своему усмотрению. Пробуйте. Жду отзывов.

P.S. В примере показан транслит с русского на английский.
карма: 20

1
файлы: 1multireplace.rar [2.5KB] [377]
Голосовали:Konst
vip
#1.1контекстная реклама от партнеров
Ответов: 1321
Рейтинг: 37
#2: 2011-04-28 09:23:02 ЛС | профиль | цитата
nesco, у меня он не работает,текст без изменений выдаёт
карма: 0

0
Ответов: 200
Рейтинг: 5
#3: 2011-04-28 09:30:36 ЛС | профиль | цитата
Чет то же не получается
карма: 0

0
Ответов: 758
Рейтинг: 111
#4: 2011-04-28 10:08:53 ЛС | профиль | цитата
Если удалить EndSymbol то будет Runtime error 216
Delimiter лучше описать как "Разделитель значений в словаре"
Не мешало бы добавить разделитель текста для множественной замены, например, "пробел" для замены слов, "/10/13" для замены строк, пустое значение для транслитерации
При желании можно добавить свойство замена слева направо или с права на лево (определяет с какой стороны от знака "=" берем значение для поиска)

На последок у меня замена букв не работает
code_23590.txt
карма: 1

0
файлы: 1code_23590.txt [1.1KB] [408]
Ответов: 8641
Рейтинг: 801
#5: 2011-04-28 10:28:56 ЛС | профиль | цитата
nesco, зато замена целого слова работает (хороший антимат получился!)
карма: 18

0
Разработчик
Ответов: 25682
Рейтинг: 2087
#6: 2011-04-28 12:12:21 ЛС | профиль | цитата
miver писал(а):
При желании можно добавить свойство замена слева направо или с права на лево (определяет с какой стороны от знака "=" берем значение для поиска

Это -- лишнее
miver писал(а):
Не мешало бы добавить разделитель текста для множественной замены, например, "пробел" для замены слов, "/10/13" для замены строк, пустое значение для транслитерации

Не вижу смысла

Но есть у этого компонента один недостаток -- нельзя применять похожие замены, например Подпись и Подпись2, все заменится на Подпись. Думаю, как это побороть
------------ Дoбавленo в 12.09:
miver писал(а):
На последок у меня замена букв не работает

У меня VisualStrings не жрет эти замены, а другой элемент не пробовал
------------ Дoбавленo в 12.11:
Roma писал(а):
у меня он не работает,текст без изменений выдаёт

А версия пакета какая Все должно быть последнего обновления, особенно -- Str_Enum
------------ Дoбавленo в 12.12:
miver писал(а):
Если удалить EndSymbol то будет Runtime error 216

Не стоит защита от дурака
карма: 20

0
Ответов: 498
Рейтинг: 39
#7: 2011-04-28 13:11:25 ЛС | профиль | цитата
nesco писал(а):
Но есть у этого компонента один недостаток -- нельзя применять похожие замены, например Подпись и Подпись2, все заменится на Подпись. Думаю, как это побороть

А если сортировать очередь замен по количеству символов.
Подпись=Слово
Подпись2=другое слово
=>
Подпись2=другое слово
Подпись=Слово
если будет замена не на похожее слово то получится.
карма: 0

0
Ответов: 8641
Рейтинг: 801
#8: 2011-04-28 13:40:15 ЛС | профиль | цитата
nesco, пробовал и в StrList -- слова заменяет, а отдельные буковки игнорирует, и так: а=a;б=b;в=v;...., и так а=ABCD; -- без результатно
Str_Enum в автомате -- non, заменил ручками (на всякий случай )
------------ Дoбавленo в 13.40:
Что же ещё заменить (Наверное, придётся прокладку менять )
карма: 18

0
Разработчик
Ответов: 25682
Рейтинг: 2087
#9: 2011-04-28 13:48:43 ЛС | профиль | цитата
Леонид писал(а):
и так: а=a;б=b;в=v;

так работать не будет, после символа конца строки нужен перевод строки
Леонид писал(а):
а отдельные буковки игнорирует

Пример работает по транслиту лицензии
------------ Дoбавленo в 13.48:
Muz-Tv писал(а):
Подпись2=другое слово
Подпись=Слово
если будет замена не на похожее слово то получится

Да, так будет работать, как раз и хотел предложить, как вариант
карма: 20

0
Разработчик
Ответов: 4690
Рейтинг: 425
#10: 2011-04-28 14:16:45 ЛС | профиль | цитата
То же самое - не работает
nesco писал(а):
Пример работает по транслиту лицензии

Неа, даже одну буккофку не заменяет
карма: 10
0
Разработчик
Ответов: 25682
Рейтинг: 2087
#11: 2011-04-28 14:30:51 ЛС | профиль | цитата
Assasin писал(а):
Неа, даже одну буккофку не заменяет

Странно, а почему же он тогда у меня работает
карма: 20

0
Разработчик
Ответов: 4690
Рейтинг: 425
#12: 2011-04-28 14:32:14 ЛС | профиль | цитата
Проверь всю свою папку ElementsDelphicode на наличие "красных" файлов (выделяются TortoiseSVN), и огласи данный списочек
карма: 10
0
Разработчик
Ответов: 25682
Рейтинг: 2087
#13: 2011-04-28 15:06:30 ЛС | профиль | цитата
Assasin писал(а):
и огласи данный списочек

Подогнал все под SVN, отличие только в MS_CryptoAPI (много дополнительных экспериментальных функций) и hiPageControl, в последнем курсор грузился по-старому, его надо заменить на SVN. Но эти компоненты и модули никаким боком к текущему компоненту не катят. Остальное все один в один
------------ Дoбавленo в 15.06:
А так, тоже не работает



Add(MainForm,2953706,238,196)
{
Width=505
Height=516
link(onCreate,13260997:doLoad,[])
}
Add(TimeCounter,3921649,413,168)
{
Precision=1
link(onStop,2437858:doText,[])
}
Add(Hub,13279769,189,245)
{
link(onEvent1,3921649:doStart,[(216,251)(216,174)])
link(onEvent2,13466306:doMultiReplace,[])
}
Add(Hub,9957346,364,252)
{
link(onEvent1,3921649:doStop,[(392,258)(392,181)])
link(onEvent2,8892279:doText,[])
}
Add(Label,2437858,469,175)
{
Left=90
Top=10
}
Add(StrList,13260997,294,182)
{
FileName="License.txt"
}
Add(Button,15343263,126,245)
{
Left=15
Top=10
link(onClick,13279769:doEvent1,[])
}
Add(Memo,8892279,413,238)
{
Left=15
Top=45
Width=455
Height=425
ScrollBars=2
}
Add(MultiReplace,13466306,315,252)
{
link(onResult,9957346:doEvent1,[])
link(Text,13260997:Text,[(321,240)(300,240)])
link(ReplaceList,2199019:Text,[(328,240)(349,240)])
}
Add(StrList,2199019,343,182)
{
Strings=#4:а=a;|4:б=b;|4:в=v;|4:г=g;|4:д=d;|4:е=e;|5:ё=yo;|5:ж=zh;|4:з=z;|4:и=i;|4:й=y;|4:к=k;|4:л=l;|4:м=m;|4:н=n;|4:о=o;|4:п=p;|4:р=r;|4:с=s;|4:т=t;|4:у=u;|4:ф=f;|4:х=h;|4:ц=c;|5:ч=ch;|5:ш=sh;|7:щ=shch;|4:ь=';|4:ы=q;|4:ъ=';|5:э=ye;|5:ю=yu;|5:я=ya;|4:А=A;|4:Б=B;|4:В=V;|4:Г=G;|4:Д=D;|4:Е=E;|5:Ё=Yo;|5:Ж=Zh;|4:З=Z;|4:И=I;|4:Й=Y;|4:К=K;|4:Л=L;|4:М=M;|4:Н=N;|4:О=O;|4:П=P;|4:Р=R;|4:С=S;|4:Т=T;|4:У=U;|4:Ф=F;|4:Х=H;|4:Ц=C;|5:Ч=Ch;|5:Ш=Sh;|7:Щ=Shch;|4:Ь=';|4:Ы=Q;|4:Ъ=';|5:Э=Ye;|5:Ю=Yu;|5:Я=Ya;|
}

карма: 20

0
Ответов: 1528
Рейтинг: 57
#14: 2011-04-28 15:13:55 ЛС | профиль | цитата
nesco, в примерах некоторые связи пропавшие
карма: 0

0
Разработчик
Ответов: 25682
Рейтинг: 2087
#15: 2011-04-28 15:22:33 ЛС | профиль | цитата
hitman249 писал(а):
в примерах некоторые связи пропавшие

Пардонсе, забыл выложить обновленную версию компонента
карма: 20

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)