以下是引用sylknb在2015-8-5 11:45:44的发言:
bmk=IIF(LEFT(bmk,1)='"',bmk,'"'+bmk)+IIF(RIGHT(bmk,1)='"','','"')
能介释一下此语句?好吗?
这句话的作用是把含有空格的字符串两头强行加上双引号,那么兑换出来的字符串作为一个文件名的话就不会出错了。bmk=IIF(LEFT(bmk,1)='"',bmk,'"'+bmk)+IIF(RIGHT(bmk,1)='"','','"')
能介释一下此语句?好吗?
整个IF...ENDIF语句块的意思是:如果字符串Bmk中含有空格,则进行加双引号的处理。前一个IIF()函数的意思是:如果字符串中已经以双引号开头了,那就原样取字符串本身,否则,开头加上双引号;后一个IIF()函数的意思是:如果原字符串已经以双引号结尾了,那就不作处理(但是因为要保证函数完整,所以用了空字符串),否则,就强制加上双引号结尾。
不过,问题来了:如果原来人家就考虑到这个问题,但加的是单引号或中括号的话,那么这个语句块反而会成为问题。完整的写法应该是:Bmk=IIF(LEFT(Bmk,1)='"' OR LEFT(Bmk,1)= "'" OR LEFT(Bmk,1)="[",Bmk,'"'+Bmk)+IIF(RIGHT(Bmk,1)='"' OR RIGHT(Bmk,1)="'" OR RIGHT(Bmk,1)="]",'','"')。