Разбор строки

  • Автор темы Автор темы DarkFly
  • Дата начала Дата начала
D

DarkFly

Добрый день, необходима помощь.
Есть строка допустим "Уважаемый клиент ##@UserName у вас назначена встреча ##@Now"
Разбил split и обрабатывал каждое значение. Но есть, одно но, если будет использоваться сложная формула ##@UserName+" "+...., то уже сплит не поможет сэвалюэтить формулу. Помогите плиз разобраться.
Заранее спасибо
 
Правильно ли я понял, что используется стандартная идея: есть строка шаблона почтового сообщения в которой присутствуют некие "тэги", которые затем должны заменится на что-то вычисляемое?

Если да, то используйте не только открывающий признак, но и закрывающий. Т.е. "Уважаемый клиент <##@UserName##> у вас назначена встреча <##@Now##>".

И не будет никакого гемороя с попытками вычислить сложную формулу.
 
М-т есть у кого пример кода, заранее спасибо
 
tmp = Evaluate({"Уважаемый клиент " + @username+"у вас назначена встреча в " + @text(@now)})
Messagebox tmp(0)
 
Это понятно, но я наверное неправильно объяснил. Есть поле в нем значение, которое выше, м-т содержать как название полей так и @ формулы.
Мой код след.:
If Instr(strTmp, "##") Then
tmp=Split(StrTmp," ")
For i=0 To Ubound(tmp)
If Instr(tmp(i),"##") Then
strTmp=Right( tmp(i), Len( tmp(i)) - 2 )
Result = Evaluate(strTmp, dcDoc)
tmp(i)=result(0)
End If
i=i+1
Next
End If
strTmp1=Implode(tmp," ")
Но если в данном поле допусти будет @UserName+" "+@Now, то у меня уже вычислить его не получиться, т.к. Split разобьет " "
 
не правильно!
Сам подумай, сколько пробелов у тебя может встретиться в @-комманде?
Тут скорее подойдет такое
Код:
tmp=Split(StrTmp,"##")

И пользуйся форуме секцией "код". А то твой код читать не удобно

а вообще, тут дело говорят
 
K-Fire уже всё сказал.
Используй открывающий и закрывающий тег, тогда будет понятно, где началась/кончилась формула.

Правда, можно и так, как kizarek предложил.
 
код работы с RT полем
https://codeby.net/threads/30933.html?vi...st&p=142444
xDoc - документ в кот могут присут. поля для шаблона
rtitem - поле РТ, кот. содержит шаблоны для подстановки в разделителях ${...}
прочитать особенности ;) ниже
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!