变量可以作为 VBS 中的 space 吗?
Can a variable act as a space in VBS?
我正在自学 VBS,我决定编写一个消息加密程序。它在循环中使用左右函数来读取每个单独的字符。
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=""" """
我确定有些事情我没有想到
谢谢
约瑟夫
问题是您在将 simple/non-object 值分配给变量时使用 Set
(参见 here)。如果你松开它,你的实验语句将 'work' (编译 & 运行 没有错误)。查看输出,您会看到
var = " "
是将(包含一个的字符串)space 分配给变量的正确且最有效的方法。
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 " "
或者,如果您愿意,可以声明一个常量来代替 space 的文字值(在您的脚本中的任何位置),如下所示:
Const vbSp=" "
常量默认为 public。在过程中,常量总是私有的;他们的可见性无法更改。在脚本中,可以使用 Private
关键字更改脚本级常量的默认可见性。有变化:
Private Const vbSp=" "
Public Const vbSp=" "
我正在自学 VBS,我决定编写一个消息加密程序。它在循环中使用左右函数来读取每个单独的字符。
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=""" """
我确定有些事情我没有想到
谢谢
约瑟夫
问题是您在将 simple/non-object 值分配给变量时使用 Set
(参见 here)。如果你松开它,你的实验语句将 'work' (编译 & 运行 没有错误)。查看输出,您会看到
var = " "
是将(包含一个的字符串)space 分配给变量的正确且最有效的方法。
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 " "
或者,如果您愿意,可以声明一个常量来代替 space 的文字值(在您的脚本中的任何位置),如下所示:
Const vbSp=" "
常量默认为 public。在过程中,常量总是私有的;他们的可见性无法更改。在脚本中,可以使用 Private
关键字更改脚本级常量的默认可见性。有变化:
Private Const vbSp=" "
Public Const vbSp=" "