【问题标题】:Can a variable act as a space in VBS?变量可以作为 VBS 中的空间吗?
【发布时间】:2015-01-07 10:03:57
【问题描述】:

我正在自学 VBS,我决定编写一个消息加密程序。它在循环中使用 left 和 right 函数来读取每个单独的字符。

DO 
wscript.sleep 100
if Az=0 then
EXIT DO
end if
CR=right(message,aZ)
DEL=left(CR,1)
aZ=aZ-1
zZ=zZ+1
supra=""
supra="supra"
CALL KEYCOUNT
CD=left(keyword,zZ)
TAC=right(CD,1)
....

从那里,它根据加密关键字将每个字符设置为等于不同的字母,然后移动到下一个字符。我的问题是我不知道如何处理消息中的空格。有没有办法让变量具有空格的值?我试过了:

set var=space(1)
set var="&"" ""&"
set var=""
set var=" "
set var=""" """

我确定有些事情我没有想到

谢谢

约瑟夫

【问题讨论】:

标签: vbscript character space


【解决方案1】:

set 语句将对象引用分配给变量或属性,或将过程引用与事件相关联。这不是我们的情况。

var=space(1)  ' var contains one space character
var="&"" ""&" ' var contains &" "&
var=""        ' var contains a string of zero length
var=" "       ' var contains one space character
var=""" """   ' var contains " "

或者,如果您愿意,可以声明一个常量来代替空间的文字值(在您的脚本中的任何位置),如下所示:

Const vbSp=" "

常量默认是公开的。在过程中,常量总是私有的;他们的可见性不能改变。在脚本中,可以使用 Private 关键字更改脚本级常量的默认可见性。有变化:

Private Const vbSp=" "
Public  Const vbSp=" "

【讨论】:

    【解决方案2】:

    问题是您在将简单/非对象值分配给变量时使用Set(参见here)。如果你松开它,你的实验语句将“工作”(编译和运行没有错误)。查看输出,您会看到

    var = " "
    

    是将(包含一个)空格的字符串分配给变量的正确且最有效的方法。

    【讨论】:

      猜你喜欢
      • 2011-07-14
      • 2014-01-02
      • 2012-07-31
      • 2019-02-14
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      • 1970-01-01
      • 2011-10-14
      相关资源
      最近更新 更多