问题背景
最近在看《计算机是怎么跑起来》的这本书,里面的例子都是用VB写得。从第一次开始,就一直运行不了。每次都是提示语句未结束(800A0401)的错误。
思考解决
1,语句未结束(800A0401)
由于没怎么看过VB语言,但是这个运行错误把我难倒了可不应该!所以我瞅了一下VB的语法,然后变量定义 的语法为:
Dim 变量名
还有的地方说是:
Dim 变量名 As Integer
然后发现下面的这个运行会报Windows编译错误:语句未结束(800A0401)。然后我发现,这个VBScript 和Visual Basic不是一个东西!
Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。 [1]
“Visual” 指的是开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可。 “Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,是一种在计算技术发展历史上应用得最为广泛的语言。
Visual Basic源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Active X控件,用于高效生成类型安全和面向对象的应用程序 [2] 。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。
VBS是基于Visual Basic的脚本语言。VBS的全称是:Microsoft Visual Basic Script Edition。(微软公司可视化BASIC脚本版)。
其语言类似Visual Basic(VB)。
So,对于VB来说第二个是正确的变量声明方式,而对于VBS来说,第一个是正确的变量声明方式!
2,未结束的字符串常量(800A0409)
这个错误更是无语的,瞅下面代码是不是完全没有问题。但是它一直报错,然后我在百度的一个犄角旮旯里找到了答案!问题竟然是文本编码的毛病!通常我们为了使中文更好的显示,都会使用UTF-8编码作为默认。But,这里是一个例外,使用UTF-8编码无法通过编译。GB2312才是它的真爱哦~~~虽然我试了下ANSI编码也能正常运行,但是你懂的!~
Dim plaintext
plaintext = InputBox("请输入明文。")
cipher = ""
For i = 1 To Len(plaintext)
letter = Mid(plaintext, i, 1)
cipher = cipher & Chr(Asc(letter) + 3)
Next
MsgBox cipher
写在最后
陌生的世界陌生的人,对于陌生的领域还是要存在敬畏之心!Anyway 用VBS写要给Windows桌面程序貌似很简单,就是很多程序员经常玩恶作剧使用的嘛?