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

Видеоканал InterSystems Russia http://www.youtube.com/user/intersystemsrus
...
Рейтинг: 0 / 0
24.02.2014, 14:59
    #38570518
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оставить в слове только нужные символы
На счет производительности не знаю но можно сделать так, с помощью $zstrip
Код: plaintext
w $zstrip(string,"*E",,"abc")
...
Рейтинг: 0 / 0
24.02.2014, 15:02
    #38570524
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оставить в слове только нужные символы
В 2013 версии, есть регулярные выражения, и можно делать с из помощью
...
Рейтинг: 0 / 0
24.02.2014, 15:14
    #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
24.02.2014, 15:21
    #38570561
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оставить в слове только нужные символы
ну да $tr вырезает ненужные символы, а $zstrip, подходит когда ненужных не знаем, а знаем только что нужно.
...
Рейтинг: 0 / 0
24.02.2014, 15:31
    #38570580
Шваров Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оставить в слове только нужные символы
DAiMorну да $tr вырезает ненужные символы, а $zstrip, подходит когда ненужных не знаем, а знаем только что нужно.
ага. И соответственно с $tr:
один $tr вырезает то, что не нужно.
два $tr оставляет то, что нужно (когда не знаем, что не нужно).
...
Рейтинг: 0 / 0
25.02.2014, 14:31
    #38571626
Шваров Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оставить в слове только нужные символы
В этой же теме: меняем в строке подстроку на подстроку. Например все троеточия "..." на ".".

Первым приходит в голову вариант через левый $piece
 f i=1:1:$l(instr,"...")  {
  s $p(resstr,".",i)=$p(instr,"...",i)
 }
Можно как-то поизящнее?
...
Рейтинг: 0 / 0
25.02.2014, 14:42
    #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
25.02.2014, 14:42
    #38571646
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оставить в слове только нужные символы
Шваров ЕвгенийМожно как-то поизящнее? $replace
...
Рейтинг: 0 / 0
25.02.2014, 14:51
    #38571668
Шваров Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оставить в слове только нужные символы
servitШваров ЕвгенийМожно как-то поизящнее? $replace
И действительно! Спасибо огромное!
...
Рейтинг: 0 / 0
25.02.2014, 15:29
    #38571753
MX-9
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оставить в слове только нужные символы
Шваров ЕвгенийDAiMorну да $tr вырезает ненужные символы, а $zstrip, подходит когда ненужных не знаем, а знаем только что нужно.
ага. И соответственно с $tr:
один $tr вырезает то, что не нужно.
два $tr оставляет то, что нужно (когда не знаем, что не нужно).

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

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

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

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

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

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

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

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

w $$repl^test("a","a","a")
w $$repl^test("a","","a")
...
Рейтинг: 0 / 0
26.02.2014, 17:55
    #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
26.02.2014, 20:49
    #38573516
Onix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оставить в слове только нужные символы
servit,

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


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