powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Оставить в слове только нужные символы
17 сообщений из 17, страница 1 из 1
Оставить в слове только нужные символы
    #38570506
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сабж на COS. Как наиболее производительно/удобно?

Видеоканал InterSystems Russia http://www.youtube.com/user/intersystemsrus
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38570518
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На счет производительности не знаю но можно сделать так, с помощью $zstrip
Код: plaintext
w $zstrip(string,"*E",,"abc")
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38570524
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 2013 версии, есть регулярные выражения, и можно делать с из помощью
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38570545
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorНа счет производительности не знаю но можно сделать так, с помощью $zstrip
Код: plaintext
w $zstrip(string,"*E",,"abc")

Спасибо. Залез в книгу Каратаева - там есть еще один довольно изящный метод через 2 $TR.

s filter="AB" // символы, которые нужны
s str="ABCDEF"  // исходная строка
s str1=$tr(str,filter)  //  str1="CDEF" - символы, которые не нужны
s result=$tr(str,str1)  // получаем "AB"
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38570561
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да $tr вырезает ненужные символы, а $zstrip, подходит когда ненужных не знаем, а знаем только что нужно.
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38570580
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorну да $tr вырезает ненужные символы, а $zstrip, подходит когда ненужных не знаем, а знаем только что нужно.
ага. И соответственно с $tr:
один $tr вырезает то, что не нужно.
два $tr оставляет то, что нужно (когда не знаем, что не нужно).
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38571626
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этой же теме: меняем в строке подстроку на подстроку. Например все троеточия "..." на ".".

Первым приходит в голову вариант через левый $piece
 f i=1:1:$l(instr,"...")  {
  s $p(resstr,".",i)=$p(instr,"...",i)
 }
Можно как-то поизящнее?
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38571645
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийМожно как-то поизящнее?
Мы меняем так
 /// В строке Str заменить Sub1 на Sub2
trans(Str,Sub1,Sub2) 
 n str,i,r
 q:Str'[Sub1 Str
 s Sub2=$g(Sub2)
 s r=""
 s str=""
 f i=1:1:$l(Str,Sub1) s str=str_r_$p(Str,Sub1,i),r=Sub2
 q str
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38571646
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийМожно как-то поизящнее? $replace
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38571668
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitШваров ЕвгенийМожно как-то поизящнее? $replace
И действительно! Спасибо огромное!
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38571753
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийDAiMorну да $tr вырезает ненужные символы, а $zstrip, подходит когда ненужных не знаем, а знаем только что нужно.
ага. И соответственно с $tr:
один $tr вырезает то, что не нужно.
два $tr оставляет то, что нужно (когда не знаем, что не нужно).

s a=$tr(a,1234567890_a,1234567890)

оставит только цифры
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38571767
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9Шваров Евгенийпропущено...

ага. И соответственно с $tr:
один $tr вырезает то, что не нужно.
два $tr оставляет то, что нужно (когда не знаем, что не нужно).

s a=$tr(a,1234567890_a,1234567890)

оставит только цифры
надо же, работает! Магия $tr.
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38571780
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9Шваров Евгенийпропущено...

ага. И соответственно с $tr:
один $tr вырезает то, что не нужно.
два $tr оставляет то, что нужно (когда не знаем, что не нужно).

s a=$tr(a,1234567890_a,1234567890)

оставит только цифры
К Евгению Каратаеву - пример в книге надо будет переписать? )
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38572209
Onix_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда вам будет интересен и такой пример.
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38573074
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Onix_Тогда вам будет интересен и такой пример.Пример не проходит тесты:

w $$repl^test("a","a","a")
w $$repl^test("a","","a")
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38573336
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9Шваров Евгенийпропущено...

ага. И соответственно с $tr:
один $tr вырезает то, что не нужно.
два $tr оставляет то, что нужно (когда не знаем, что не нужно).

s a=$tr(a,1234567890_a,1234567890)

оставит только цифры
Да, очень красивое решение. Я бы добавил, что во втором аргументе тут необязательно использовать оригинальную строку, после оставляемых символов могут идти все символы:
f i=0:1:255 s all=$g(all)_$c(i)
w $tr(a,"0123456789"_all,"0123456789")
Работать будет точно также - поиск во втором аргументе выполняется до первого вхождения символа.
...
Рейтинг: 0 / 0
Оставить в слове только нужные символы
    #38573516
Onix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,

я предполагал, что будут смотреть $$tran c $tr , а не $$repl :) , repl там кривой и сделан был на скорую руку для мсм.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Оставить в слове только нужные символы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]