zoukankan      html  css  js  c++  java
  • VB的学习及使用总结

     
    引言
            在最近的一个需求当中,因为要用到VB的缘故,所以有机会了解了一下VB, 老实讲,我不喜欢这样的学习,本人是在一家银行从事外包工作的,主要从事Java 开发, 工作中就是负责好几个项目的运维,因为这些项目做的时间久了一点,再加上客户这边IT也不是很规范,每个系统、项目用到的技术和架构都是不一样的,可以说是百花齐放,所以有时候在一个项目中,你必须得会好几种语言,而且往往你花了很大的精力和时间学会的一门新的技术和语言,只是为了解决一个很小的问题! 当然这次也不例外,需要将一个Java的DEC加密算法改用VB实现。往往在问题解决之后,你也就没有多少机会再用到这门技术或语言,所以我不喜欢,这就是投入大,回报小!  但是我觉得我应该把这个过程记录下来!
     
    开发工具
            在这次开发中,因为编码量比较少,所以我是用 Office 2007 里的Excel来开发的,VB版本是 VB6.5,  具体使用如下:
     
    一. 首先调出Excel(以Office2007为例)自带的VB开发工具
    打开Excel选项
     
    常用 --->  选中“在功能区显示"开发工具"选项卡
     
    确定保存后,可以在Excel功能区看到"开发工具"选项卡
     
    点击"Visual Basic"打开VB的工发工具
     
    二. VB代码的运行调试
    1. 运行子过程/用户窗体 (F5) 
        将鼠标放到需要运行的子过程上,按“F5 ”可以直接运行。
    2. 逐行运行 (F8)
        将鼠标放到需要运行的子过程上,按“F8 ”可以逐行运行代码,如图:
     
    3. F9 可以添加/移除断点
     
    4. 在调试中,用鼠标选中要查看的对象,可以查看该对象的值
     
    三: VB部分语法总结
    1. VB中逻辑代码块
    VB 的逻辑代码块分: 子过程(Sub) 及 函数过程(Function)
    Private Sub TestSub()
        Call TestFun
    End Sub
     
    Public Function TestFun()
        Dim n As Integer
        n = 123456
        TestFun = n
    End Function
    注意: 过程和函数的主要区别是:过程没有返回值,相当于对象中的方法,只不过程没有经过封装成对象;函数有返回值.
     
    2. 变量定义及作用域
     
    3. VB 数组的定义
    数组的定义有两种形式
    第一种:Dim ArrayName(n) As Type。这种形式中,数组变量是从ArrayName(0)~ArrayName(n),共n+1个元素。
    第二种:Dim ArrayName(Lower To Upper) As Type。这种形式中可以定义数组上界和下界,比如Dim iA(4 To 14) as Integer。这样就可以对应从iA(4)到iA(14)的赋值
     
    所以如果要定义一个长度为 64 的一维数组就不能像 Java 那样了..
    Dim ArrayName(1 To 64) As Type  或者 Dim ArrayName(63) As Type 都表示长度为 64 的数组。
     
    二维数组的定义如下
    Dim ArrayName(0 To 63, 0 To 63) As Type
     
    使用Array 函数初使化数组
    Dim a
    a = Array(10, 25, 45, 12)  
    注意:通过Array函数初使化数组,数组中值的类型为 Variant,在后面使用的时候还需要进行类型转换,否则会报错!
     
    4. VB字符串处理函数
    LEN字串長度函數:計算字串的長度。 函數運算式 結果 
    len("abcd") 4 
    len("中文字") 3 
    len(abc中文) 5

    MID取部份字串函數:依開始位置擷取固定長度字串。 函數運算式 結果 
    mid("vbscript",3,3) scr 
    mid("vbscript",3) script 
    mid("vbscript",1,2) vb

    LEFT字串開頭取部份字串函數:將某一字串由開頭擷取固定長度。 函數運算式 結果 
    left("vbscript",2) vb 
    left("vbscript",5) vbscr

    RIGHT字串結尾取部份字串函數:將某一字串由結尾擷取固定長度。 函數運算式 結果 
    right("vbscript",2) pt 
    right("vbscript",6) script

    LCASE轉大寫函數:將字串中的大寫字母變成小寫。 函數運算式 結果 
    lcase("VBScript") vbscript 
    lcase("VBScript程式") vbscript程式

    UCASE轉小寫函數:將字串中的小寫字母變成大寫。 函數運算式 結果 
    ucase("VBScript") VBSCRIPT 
    ucase("VBScript程式") VBSCRIPT程式

    TRIM刪除頭及尾空白字元函數:將字串開頭及結尾的空白字元刪除。 
    LTRIM刪除開頭空白函數:將字串開頭的空白字元刪除。 
    RTRIM刪除結尾空白函數:將字串結尾的空白字元刪除。 函數運算式 結果 
    trim(" VBScript ") VBScript 
    ltrim(" VBScript ") VBScript 
    rtrim(" VBScript ") VBScript

    REPLACE替代字串函數:將字串中的某字串用另一字串代替。 函數運算式 結果 
    replace("VBScript","VB","JAVA") JAVAScript

    INSTR是否包含另一字串函數:傳回子字串在字串中的第一次出現位置。 函數運算式 結果
    instr("ABCabc","a") 4 
    instr("ABCabc","BC") 2

    SPACE空白字元函數:產生N個空白字元。 函數運算式 結果 
    space(10)

    STRING產生字串函數:產生N個字元。 函數運算式 結果 
    string(5,"*") ***** 
    string(3,65) AAA

    STRREVERSE反轉字串函數:將字串內容前後反轉。 函數運算式 結果 
    strreverse("VBScript") tpircSBV 
    strreverse("中文字") 字文中

    SPLIT分割字串函數:將長字串依某字元分割並放於陣列中。 函數運算式 結果 
    arr=split("張三&李四&王五","&") 
    arr(0)="張三" 
    arr(1)="李四"

    将String类型的对象转换为 Integer 类型
    Dim n As Integer
    Dim s As Integer
    s = "123456"
    n = Cint(s)
    n = Val(s)
    以下两种方法均可.
     
    5. VB 循环逻辑
    Dim n As Integer
    For n = 0 to 5
        ......
    Next n
    将从0 -- 5 循环6 次..
    6. VB 条件判断
    Dim n As Integer
    n = 1
    If(n > 0) Then
        .....
    Else
        ...
    End If
     
    6. VB中断代码执行
    Public Function setParameter(s As String)
        Dim userpwd, pwd1, pwd2 As String
        userpwd = s
        '字符串比较,相同=0,不相同=1
        If (StrComp(userpwd, "") = 0) Then
            g_strEncryPassWord = userpwd
            Exit Function    
        Else
            userpwd = UCase(userpwd)
        End If
        g_strEncryPassWord = pwd1 + pwd2
    End Function
    当代码执行到一个地方,不想执行以下的代码时,可能通过 Exit Function完成,这类似于Java中的 return ;
     
    暂到此..........
     
     
    整理背景: 港交行做華潤聯營卡需求時記錄 [2012-11-26]
     
    • 相关阅读:
      分母为0一定会抛异常吗?
      [译]Zookeeper的优点与局限性
      明明有class为什么还是报ClassNotFoundException?
      广告倒排索引架构与优化
      KafkaProducer源码分析
      Kafka服务端之网络连接源码分析
      Sublime常用快捷键
      sublime主题设置
      Sublime前端插件
      安装软件,更新软件,删除软件
    • 原文地址:https://www.cnblogs.com/cookray/p/2800492.html
    Copyright © 2011-2022 走看看