Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / $TRANSLATE / 25 сообщений из 82, страница 1 из 4
26.07.2010, 14:20
    #36759560
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
Всем доброго дня !

Разве функция не может комбинацию букв транслировать в другую ? :(

Код: plaintext
1.
Set DAT="ki{inev"
 I DAT["ki" S DAT=$TR(DAT,"ki","CHI")

Спасибо.
...
Рейтинг: 0 / 0
26.07.2010, 14:21
    #36759562
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
ValeriuРазве функция не может комбинацию букв транслировать в другую ? :(
Нет. Только "символ на символ"...
...
Рейтинг: 0 / 0
26.07.2010, 14:22
    #36759568
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
Да, неприятно .
...
Рейтинг: 0 / 0
26.07.2010, 14:23
    #36759571
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
Valeriu , как вариант для решения...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Trans(Str,Sub1,Sub2)                  ; В строке 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
26.07.2010, 14:26
    #36759578
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
Спасибо ! Сейчас попробуем .
...
Рейтинг: 0 / 0
26.07.2010, 14:43
    #36759630
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
авторto krvsa

Заработала. Спасибо.
...
Рейтинг: 0 / 0
26.07.2010, 14:44
    #36759632
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
$Replace
?
...
Рейтинг: 0 / 0
26.07.2010, 14:47
    #36759640
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
Или $REPLACE (начиная с Caché 2008.1)
...
Рейтинг: 0 / 0
26.07.2010, 15:00
    #36759665
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
servitначиная с Caché 2008.1
У клиентуры нашей пока 5.0 или 2007... Только начинается переход на 2009. Т.ч. функция МСМовских времён еще послужит!
...
Рейтинг: 0 / 0
26.07.2010, 15:05
    #36759678
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
А мне для МСМ-а и нужно было ... ))))))))))))
...
Рейтинг: 0 / 0
26.07.2010, 15:06
    #36759682
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
Valeriu , тогда обращайся ежели чего. У нас целая подборка всяких функций есть. Все проверено годами эксплуатации.
...
Рейтинг: 0 / 0
26.07.2010, 15:12
    #36759701
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
Спасибо еще раз !!!
...
Рейтинг: 0 / 0
27.07.2010, 00:56
    #36760715
ser_shu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
krvsa Valeriu , как вариант для решения...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Trans(Str,Sub1,Sub2)                  ; В строке 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

Странный код (из другой программы делали?), по смыслу и стилю хотя бы так исправить:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Trans(Str,Sub1,Sub2)                  ; В строке Str заменить Sub1 на Sub2
 N str,i,lSub1
 s Str=$G(Str)
 s Sub1=$G(Sub1)
 s Sub2=$G(Sub2)
 Q:Str'[Sub1 Str
 S lSub1=$L(Str,Sub1)
 S str=$P(Str,Sub1)
 F i= 2 : 1 :lSub1 S str=str_Sub2_$P(Str,Sub1,i)
 Q str
...
Рейтинг: 0 / 0
27.07.2010, 01:17
    #36760725
ser_shu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
krvsa,

Я не в смысле, что надо работающую программу исправлять :) работает, и не трогайте :)

Просто, если защищена $get(Sub2), то и первые два параметра надо защищать на входе.
И нет смысла в цикле вычислять или переприсваивать константы - только в заблуждение вводит - вдруг что-то в цикле меняется, количество подстроки Sub1 или переменная Sub2.
...
Рейтинг: 0 / 0
27.07.2010, 08:27
    #36760833
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
ser_shu , у тебя такое мнение/виденье... У меня такое... Я же тебе своё не навязываю.
...
Рейтинг: 0 / 0
27.07.2010, 13:58
    #36761692
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
:) пойнт оф вью
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Trans(Str,Sub1,Sub2)  ; В строке Str заменить Sub1 на Sub2
 Q:$g(Str)="" "" ;негде менять
 Q:$g(Sub1)="" Str ;нечего менять
 Q:'$F(Str,Sub1) Str ;нечего менять 
 s Sub2=$G(Sub2)
 while $F(Str,Sub1) {
	s Str=$P(Str,Sub1)_Sub2_$P(Str,Sub1, 2 )
 }
 Q Str
...
Рейтинг: 0 / 0
27.07.2010, 14:24
    #36761776
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
Ой :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Trans(Str,Sub1,Sub2)  ; В строке Str заменить Sub1 на Sub2
 Q:$g(Str)="" "" ;негде менять
 Q:$g(Sub1)="" Str ;нечего менять
 Q:'$F(Str,Sub1) Str ;нечего менять 
 s Sub2=$G(Sub2)
 Q:Sub1=Sub2 Str ;незачем менять 
 while $F(Str,Sub1) {
	s Str=$P(Str,Sub1)_Sub2_$P(Str,Sub1, 2 )
 }
 Q Str
...
Рейтинг: 0 / 0
27.07.2010, 14:34
    #36761799
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
doublefint , ты хоть потестируй функцию свою немного...

Код: plaintext
1.
2.
w $$Trans^tmp( 114444411333333118888 , 11 , 22 )
 2244444 
...
Рейтинг: 0 / 0
27.07.2010, 14:54
    #36761881
$TRANSLATE
krvsa,

делать на работе нечего, вот и решил потестить скриптик? ;)))
...
Рейтинг: 0 / 0
27.07.2010, 14:58
    #36761892
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
кеннннннннн , не ты меня нанимал... Не перед тобой и ответ держать.
Да еще и аноним...
...
Рейтинг: 0 / 0
27.07.2010, 14:59
    #36761897
$TRANSLATE
krvsa,

нервный какой :)
...
Рейтинг: 0 / 0
27.07.2010, 15:08
    #36761929
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
кеннннннннн , пора уже таких интересующихся моим рабочим временем в очередь записывать и плату брать. Таки озолочусь наверное!
...
Рейтинг: 0 / 0
27.07.2010, 16:46
    #36762209
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
...
Рейтинг: 0 / 0
27.07.2010, 16:54
    #36762229
MX-9
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
кенннннннннkrvsa,

делать на работе нечего, вот и решил потестить скриптик? ;)))

это не ошибка ,
а недокументированная особенность


и вообще тестить вредно -
для тестующего
...
Рейтинг: 0 / 0
27.07.2010, 17:40
    #36762364
doublefint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
$TRANSLATE
krvsa, потестил :(
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Trans(Str,Sub1,Sub2)  ; В строке Str заменить Sub1 на Sub2
 Q:$g(Str)="" "" ;негде менять
 Q:$g(Sub1)="" Str ;нечего менять
 Q:'$F(Str,Sub1) Str ;нечего менять 
 s Sub2=$G(Sub2)
 Q:Sub1=Sub2 Str ;незачем менять 
 while $F(Str,Sub1) {
	s Str=$P(Str,Sub1)_Sub2_$P(Str,Sub1, 2 ,$L(Str,Sub1))
 }
 Q Str
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / $TRANSLATE / 25 сообщений из 82, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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