Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26066
Рейтинг: 2120
#76: 2012-05-03 22:18:06 ЛС | профиль | цитата
Andrey писал(а):
а ты не мог бы добавить что-то типа точки Replaced - массив произведённых замен? опционально конечно, чтобы не нагружать проц, если кому оно не нужно

А чем не устраивает применение внешнего списка, его же можно вывести куда угодно
Мне крайне не хочется создавать в компоненте методы управления массивом
карма: 22

0
Ответов: 3851
Рейтинг: 159
#77: 2012-05-03 22:57:18 ЛС | профиль | цитата

nesco писал(а):
чем не устраивает применение внешнего списка
я не понял.
code_27809.txt имеется в виду, что если замена произошла, то вывести в статус "заменён недопустимый символ" (и перечислить все недопустимые), а если ничего не заменялось, тогда спокойно ждём, пока он не впечатает всё имя..
Если массив муторно, то мне бы хватило самого факта (0/1) - была замена или там не нашлось, что заменять..
карма: 0
начавший
0
файлы: 1code_27809.txt [406B] [649]
Ответов: 16884
Рейтинг: 1239
#78: 2012-05-03 23:00:14 ЛС | профиль | цитата
Andrey писал(а):
мне бы хватило самого факта (0/1) - была замена или там не нашлось, что заменять..
и что это нам даст ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 3851
Рейтинг: 159
#79: 2012-05-03 23:05:01 ЛС | профиль | цитата

Tad писал(а):
и что это нам даст ?
мне бы это упростило задачу, а вообще - возможно кому-то тоже пригодится такой функционал для чего-то (но, пока никому не нужно, - для меня это не смертельно)..
карма: 0
начавший
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#80: 2012-05-03 23:17:30 ЛС | профиль | цитата
Идея интересная, но сильно утяжеляющая код, еще и реализация очень проблематичная и ресурсозатратная. Посему, в конкретной реализации не вижу большого смысла.
------------ Дoбавленo в 23.16:
Andrey писал(а):
то вывести в статус "заменён недопустимый символ" (и перечислить все недопустимые), а если ничего не заменялось

А это вообще не реализуемо, тк недопустимые симолы не существуют, если символ недопустим, алгоритм его просто игнорирует и не меняет, а добраться в конкретной реализации до позиции недопустимого символа не получится, иначе -- потеряем катастрофически быстродействие, что очень не хотелось бы
карма: 22

0
Ответов: 3851
Рейтинг: 159
#81: 2012-05-03 23:24:50 ЛС | профиль | цитата
ОК, всё понял..
карма: 0
начавший
0
Ответов: 16884
Рейтинг: 1239
#82: 2012-05-03 23:25:16 ЛС | профиль | цитата
Andrey писал(а):
мне бы это упростило задачу
и в чем эта задача состоит ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1376
Рейтинг: 197
#83: 2012-05-03 23:31:42 ЛС | профиль | цитата
Andrey,
code_27810.txt
Так?
Ещё вариант

Add(Edit,8965819,406,133)
{
Left=45
Top=5
Width=90
Text=""
link(onChange,13810589:doEvent1,[])
}
Add(MultiReplace,7053660,497,133)
{
ReplaceList="\ =_;
/=_;
:=_;
*=_;
?=_;
"=_;
<=_;
>=_;
|=_;"
}
Add(Hub,13810589,455,133)
{
link(onEvent1,7053660:doMultiReplace,[])
link(onEvent2,994396:doCompare,[(482,146)(482,195)])
}
Add(If_else,994396,490,189)
{
link(onTrue,191309:doWork2,[])
link(onFalse,10892584:doMessage,[])
link(Op2,6815649:Var2,[])
}
Add(Message,10892584,546,196)
{
Message="Недопустимый символ
/ : * ? " < > |"
Caption="Ошибка"
link(onMessage,1498150:doReplace,[])
}
Add(HubEx,191309,649,189)
{
Angle=3
link(onEvent,8965819:doText2,[(653,120)(394,120)(394,146)])
}
Add(Replace,1498150,602,196)
{
SubStr="_"
link(onReplace,191309:doWork3,[(653,202)])
link(Str,6815649:Var3,[(608,173)])
link(Dest,2626827:Text,[])
}
Add(GetDataEx,6815649,497,168)
{
link(Data,7053660:Result,[])
}
Add(VisualStrings,2626827,616,161)
{
Width=11
}

карма: 1

1
файлы: 1code_27810.txt [1.2KB] [532]
Голосовали:Andrey
Ответов: 3851
Рейтинг: 159
#84: 2012-05-03 23:36:32 ЛС | профиль | цитата

Tad писал(а):
и в чем эта задача состоит ?
когда вводишь имя файла, винда ругается на недопустимые символы - тоже самое и мне надо..
карма: 0
начавший
0
Ответов: 16884
Рейтинг: 1239
#85: 2012-05-03 23:43:29 ЛС | профиль | цитата
Andrey писал(а):
когда вводишь имя файла, винда ругается на недопустимые символы - тоже самое и мне надо..
Andrey, не смеши меня перед сном.
Ну и поставь фильтр на Edit, в которую вводишь имя файла.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 3851
Рейтинг: 159
#86: 2012-05-03 23:48:34 ЛС | профиль | цитата

да, конечно - коллега foksov, уже всё придумал ..
карма: 0
начавший
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#87: 2012-05-04 00:03:45 ЛС | профиль | цитата
Andrey писал(а):
когда вводишь имя файла, винда ругается на недопустимые символы - тоже самое и мне надо.

И вот из-за вот этого стоило кардинально допиливать компонент Шутники, однако
Я же подумал совсем про другие недопустимые символы. Вот что значет абсолютно хреновая постановка задачи.

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

Да и надо ли это вообще, вот еще в чем вопрос Предлагаю отложить реализацию на потом, может в дальнейшем возникнет большая потребность
карма: 22

0
Ответов: 1535
Рейтинг: 176
#88: 2017-01-18 12:07:26 ЛС | профиль | цитата
nesco, как я понял, маска строк в MultiReplace не предусмотрена, а было бы очень не плохо. В моём случае нужно заменять выражения в начале строк и больше нигде. Внешний список замен будет большой и постоянно меняться.

Редактировалось 2 раз(а), последний 2017-01-18 12:26:15
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#89: 2017-01-18 13:02:49 ЛС | профиль | цитата
ser_davkin писал(а):
маска строк в MultiReplace

MultiReplace -- это MultiReplace, а не MaskMultiReplace, те он заменяет обычный Replace, в котором маска не предусмотрена. Используй в таком случае регулярные выражения, они больше подойдут.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#90: 2018-07-14 11:24:47 ЛС | профиль | цитата
А скажи мне друг любезный nesco, за каким лядом у элемента есть свойство EndSymbol
Чем внутри-программный #13 не устроил-то.
Без ограничения пользователя на использование символа в работе (в Списке_Замен).
Ограничение на использование перевода строки есть, и оно решается св-вом EnterTag. Зачем еще одно ограничение, спрашивается...

Неужели только ради сомнительного кайфа -- от возможности написать Список_Замен в одну строку ....
карма: 9

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