Друзья, прошу посмотреть код и дать совет.
Появилась необходимость в строке заменить несколько символов.
Например: ОАО "Какая-то компания и сим'вол" , нужно
' и
" заменить на
`.
Первое, что приходит на ум это strReplace(strReplace()), но что делать если символов много? (больше одно уже много)
Я написал следующий метод в Global:
X++:
static str strReplaceContainer(str _str, container _fromStrCon, container _toStrCon)
{
int i;
str fromStr,
toStr;
;
if(conLen(_fromStrCon) != 0 && conLen(_toStrCon) != 0)
{
for(i = 1; i <= conLen(_fromStrCon); i++)
{
fromStr = conPeek(_fromStrCon, i);
toStr = conPeek(_toStrCon, i < conLen(_toStrCon) ? i : conLen(_toStrCon));
_str = strReplace(_str, fromStr, toStr);
}
}
return _str;
}
Благодаря этому методу можно заменить вот такой код
X++:
strReplace(strReplace(strReplace(custTable.Name, '\"', '`'),'\'', '`'), '&', '_');
на
X++:
strReplaceContainer(custTable.Name, ['\"', '\'', '&'], ['`', '`', '_']);