Как лучше написать выражение «Трим» - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь урезать полное доменное имя только до имени актива.

Например, допустим, у меня есть машина с именем "Desktop1.mycompany.com", и я просто хочу иметь значение "Desktop1" в другом поле.

Я выполнил команду обрезки Trim(Left([ColumnwithFQDN],(InsStr(1,[ColumnwithFQDN],".")-1))), и она работает. Он удаляет все, кроме имени машины.

Однако я заметил, что в этом списке есть некоторые имена компьютеров без полного доменного имени, и они просто отображаются как "Desktop2". Очевидно, это вызывает #Func! error.

У меня вопрос: есть ли способ либо пропустить что-либо, что не входит в полное доменное имя, либо просто вернуть исходное значение в случае сбоя функции?

Я думаю, что мог бы сделать команду IIf(IsNull), но я не уверен, что я буду устанавливать в качестве возвращаемого значения.

1 Ответ

0 голосов
/ 13 сентября 2018

Функция Trim удаляет начальные и конечные пробелы из строки, и ни имя хоста, ни полное доменное имя не могут их содержать, поэтому здесь функция не нужна. Конечно, вы можете применить его в конце концов, если хотите. Интересная часть - это функция Left в этом случае. Я предлагаю использовать следующее выражение:

Left([ColumnwithFQDN], Len([ColumnwithFQDN]) - InStrRev(StrReverse([ColumnwithFQDN]), "."))

Как и в случае решения @HansUp, вы должны быть уверены, что [ColumnwithFQDN] не равно нулю.

...