后缀变化的变量的定义
我想在VB里定义后缀变化的变量,如a1,a2,...an,n的值是不定的,要怎么实现(不是定义数组)?期待各位大神的回答
[解决办法]
定义后缀变化的变量?就是“定义变量”。
在 VB 里定义变量,只有手工在代码里定义,当然有些也可以不定义。
没有什么程序运行后定义变量的概念。
因为定义变量这个过程,说白了就是编译时在编译代码中预留符合变量类型的空间而已,
在程序使用时,只是作为内存地址在程序里被使用的内存数据。
这种编译时预留内存空间的动作就是定义变量的过程。既然这个预留空间的动作是在编译时
才会产生,那么就不可能在运行时做,运行时只能做的是另辟内存空间或修改内存数据,
这种操作不叫定义,而是操作内存。而且变量名称其实只是在写代码的时候才有的概念,
在程序运行时,是没有变量名称的概念,所以程序运行后,无论你什么样的变量名称,即使是
中文的,也只会被程序当一个个内存地址来用,程序是不会知道编译前他是什么名称的。
至于像 javascript 那种用字符串找对象的方法,和变量的概念不一样,因为那是找对象属性值,
而不是找变量名。所以你应该搞清楚的是“什么是变量?”这个问题。
[解决办法]
举个例子
- VB code
Dim sc Set sc = CreateObject("ScriptControl") sc.language = "VBScript" Dim Var$, VCount$, S1$, Sctmp$ Var = "a" '变量前缀名称 VCount = InputBox("请输入变量的数量", "输入") '变量数量 Sctmp = "sub sum()" & vbCrLf '脚本代码---过程开始 Dim S1$ For i = 1 To VCount Sctmp = Sctmp$ & "a" & i & "=" & InputBox("请输入" & Var & i & "的值", "输入") & vbCrLf S1 = S1 & Var & i & "+" Next S1 = Left(S1, Len(S1) - 1) Sctmp = Sctmp & "Msgbox (""" & S1 & """ & "" = "" & " & S1 & ") " & vbCrLf Sctmp = Sctmp & "End Sub" '代码---过程结束 MsgBox "VBCode" & vbCrLf & vbCrLf & Sctmp '显示全部代码 sc.AddCode Sctmp '加入代码 sc.run "Sum" '运行过程