如何最好地编写 "Trim" 表达式
How to best write a "Trim" expression
我想要做的是 trim 一个 FQDN,精确到资产的名称。
例如,假设我有一台名为 "Desktop1.mycompany.com"
的机器,我只想在另一个字段中获得值 "Desktop1"
。
我已经执行了 trim 命令 Trim(Left([ColumnwithFQDN],(InsStr(1,[ColumnwithFQDN],".")-1)))
并且它有效。它会删除除机器名称以外的所有内容。
但是,我注意到此列表中有一些没有 FQDN 的计算机名称,它们只是显示为 "Desktop2"
。显然,这会导致 #Func! error
.
我的问题是:如果函数失败,是否有任何方法可以跳过 FQDN 中不存在的任何内容,或者只是 return 原始值?
我想我可以执行 IIf(IsNull)
命令,但我不确定要将什么设置为 return.
的值
Trim
函数从字符串中删除前导和尾随空格,主机名和 FQDN 都不能包含此类,因此此处不需要该函数。当然,如果您愿意,您可以在最后应用它。有趣的部分是本例中的 Left
函数。我建议使用以下表达式:
Left([ColumnwithFQDN], Len([ColumnwithFQDN]) - InStrRev(StrReverse([ColumnwithFQDN]), "."))
与@HansUp 的解决方案相同,您必须确保 [ColumnwithFQDN]
不是 Null。
我想要做的是 trim 一个 FQDN,精确到资产的名称。
例如,假设我有一台名为 "Desktop1.mycompany.com"
的机器,我只想在另一个字段中获得值 "Desktop1"
。
我已经执行了 trim 命令 Trim(Left([ColumnwithFQDN],(InsStr(1,[ColumnwithFQDN],".")-1)))
并且它有效。它会删除除机器名称以外的所有内容。
但是,我注意到此列表中有一些没有 FQDN 的计算机名称,它们只是显示为 "Desktop2"
。显然,这会导致 #Func! error
.
我的问题是:如果函数失败,是否有任何方法可以跳过 FQDN 中不存在的任何内容,或者只是 return 原始值?
我想我可以执行 IIf(IsNull)
命令,但我不确定要将什么设置为 return.
Trim
函数从字符串中删除前导和尾随空格,主机名和 FQDN 都不能包含此类,因此此处不需要该函数。当然,如果您愿意,您可以在最后应用它。有趣的部分是本例中的 Left
函数。我建议使用以下表达式:
Left([ColumnwithFQDN], Len([ColumnwithFQDN]) - InStrRev(StrReverse([ColumnwithFQDN]), "."))
与@HansUp 的解决方案相同,您必须确保 [ColumnwithFQDN]
不是 Null。