精华内容
下载资源
问答
  • VBString的用法及原理

    千次阅读 2018-08-24 12:43:00
    在各种不同开发语言中,字符串类型显然是最常见,也是最常用的。常用代表它最易用,是这样吗?未必,越简单,越普通,你会忽视,内里...一:先来总结一下,常用编程语言的字串表达方式:C:char(wchat_t)*或[]:字符数组来...

    在各种不同开发语言中,字符串类型显然是最常见,也是最常用的。 
        常用代表它最易用,是这样吗?未必,越简单,越普通,你会忽视,内里隐藏着的陷井更容易使你中招。它往往是绊脚石,或者程序中性能的瓶颈。 
        本身,我对VB语言及相关应用并不太熟,只不过近期编码用到,有些体会。

    一: 先来总结一下,常用编程语言的字串表达方式: 
    C:      char(wchat_t) * 或 []:  字符数组来表示字符串,以0结尾,无长度标识。
              配一堆操作函数,不好记,不好用。 
    C++:  std::string  basic_string<>的特化版本. 注意:其内在的数据区由默认的内存管理器分配。
             对象哈,提供还算好用的方法。 
    MFC: CString 标准的C++类. 数据项:LPTSTR 一堆可用的方法。 
    Windows普通API DLL:       LPTSTR 采用C标准的0结束字串 
    Windows扩展COM中:         BSTR  OLE标准, 头上带长度标识的字符串. 
    Java中:                            ;" /> VB中:                              String   实际上就是OLE标准的BSTR 
    好了,我们关心的是BSTR。 
    看看BSTR到底是什么东东。
    1.0:看看在Windows SDK中的定义:
    typedef OLECHAR* BSTR;
    typedef WCHAR OLECHAR;
    typedef wchar_t WCHAR;
    所以,它实际上是宽字符指针。

    1.1:它的内存结构呢?很容易查到资料。
    前置四字节,内置字串的长度,后面是字串内容,原则上并不以'/0'结尾,长度由前置值决定。
    所以,它又不简简单单就是宽字符指针。但从基本类型定义上来看,它与宽字符指针是可以划等号的。

    1.2:那VB中的String也就明白了。实际上是地址,是字串的首地址(注意:不是长度的首地址) 
    另外,String是可以装载中间带'/0'字符的字串的,只不过,一些显示函数可能将其省略。
    如:dim str as string
         str = "ab" & chr(0) & "cd"
         MsgBox str   '输出:ab
         Debug.Print str '输出 ab cd

    1.3:可以看出,它很特珠,Windows提供几个函数,用来分配和释放它。
    分配:SysAllocStringLen      SysAllocString
    释放:SysFreeString
    取长度:SysStringLen
    注意:分配得到的BSTR,实际上仍然是以'/0'结尾。SysStringLen似乎有点儿英雄无用武之地,呵。
    比如:SysAllocStringLen 的说明文档:
    Allocates a new string, copies cch characters from the passed string into it, and then appends a null character.
    比如:SysAllocString,我们可以通过例子:
     BSTR bstrVal = ::SysAllocString(L"abcd");
     for(int n=0;n<::SysStringLen(bstrVal)+1;n++)
     {
      TRACE(_T("/n%d"),*(bstrVal+n));
     }
     ::SysFreeString(bstrVal);
    输出:
    97
    98
    99
    100
    0
    仍然有0。

    1.4:VC中的用法:
    无论用MFC,还是ATL,实际上,由于BSTR并不是基本类型,而它的相关操作函数也是沿用的以'/0'结尾的函数,所以,虽然它在字串中可以带'/0',但实际上,经过相关操作后,'/0'后的内容会丢掉,这要小心。比如,我们看看CString的构造:
    CString::CString(LPCWSTR lpsz)
    {
     Init();
     int nSrcLen = lpsz != NULL ? wcslen(lpsz) : 0;
     if (nSrcLen != 0)
     {
      AllocBuffer(nSrcLen*2);
      _wcstombsz(m_pchData, lpsz, (nSrcLen*2)+1);
      ReleaseBuffer();
     }
    }

    小结:BSTR有长度标识,但是MS在实现时,为了兼容以前的字串操作,再加上BSTR并不是基本类型,所以,它的分配函数和一些操作函数都是把它当作'/0'结尾来处理。千万要注意。最好也不要用它来装载中间带'/0'的字串,因为,说不定什么时候,它就丢掉了。

    二:  VBr的应用中将麻烦的地方,应该集中在以下几个方面: 
    2.1: VB调用Windows API DLL
     
    2.1.1: 字串作为输入参数 
       这还用说吗? 
       在API中如果是LPTSTR,在VB中直接转为Byval s as String 
       原因?  为什么 BSTR可以直接转为 LPTSTR ? 
       前面其实已经讲了,再说一次吧。 
       BSTR实际上是指针,指向字串头.所以,采用ByVal指向的刚好是字串的首地址,也就是LPSTR,嘿嘿,刚刚好,符合需要,真是巧啊。 

    2.1.2: 字串作为输出参数 
    这个麻烦一点,举个例子吧. 
    如: 
        UINT GetWindowsDirectory( 
          LPTSTR lpBuffer, 
          UINT uSize 
       ); 
    使用API Viewer得到声明 
       Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" _ 
          (ByVal lpBuffer As String, ByVal nSize As Long) As Long 
    代码: 
        Dim sTemp As String * MAX_PATH 
        Dim lsize As Long 
        Dim str As String 
        lsize = GetWindowsDirectory(sTemp, MAX_PATH) 
        str = Left(sTemp, lsize) 
        MsgBox "Windows路径:" & str & "长度:" & Len(str) 
    注意一下: 
    A: 引用的Windows API是A版,而不是W版,如果是W版会有错误. 
    原因,我的猜测是:   VB的API调用机制中,字串强制做了UNICODE到ANSI的转换.API的DLL没法告知调 
    用端,它是Unicode版还是ANSI版.如果是OCX或COM就没问题了,因为它们有标识。没办法,只能用一种了, MS选了A版。 
    B: 参数是ByVal 
    道理同作为输入时,实际上传的指针,所以,指向的内容是可以修改地,也就可以返回了。 
    C: 根据API的使用说明,可得到 
    [out] Pointer to the buffer to receive the null-terminated string containing the path. 
    需要调用方分配空间,因此, sTemp需要给足够长度的空间. 
    D: 返回的0结尾的字串,可以用left达到目的. 
    因为:VB的String对应的是BSTR类型,长度由前置字节决定,而不是0字符决定. 

    2.1.3: 字串作为Return值 
    这种API是不是存在呢?系统级的没看见,一般不会这样用,因为这存在内存分配的问题. 
    但我自已好像写过,处理方式是: 
    VB声明中可以使用long返回,然后用lstrcpy进行转换, 
    说起lStrCpy就不得不说说它的作用了,它实在是很关键,它很神奇,它可以把 
    地址指向的字符串拿出来。 
    我们来看看原理: 
    lStrcpy本身只是简单的复制字符串的函数: 
    Public Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long 如果按照API View中的声明,是不行的.它确实就是字串拷字串,没办法把字址指向的字串拷到另一串. 
       好了,需要小小改动一下: 
       首先:目的地没错,确实应该是指向字串的首地址.用Byval String就可以.第一个参数OK。 
       源串呢? 因为你传入的实际上不是String,而是long啊(上例返回的是long噢),那当然应该将声明改成long,否则,传入的String会变成啥,啥都不是呢?就这么简单。 

    2.1.4: LPTSTR 都可以用VB的byval String替代吗? 
    如果在结构体里,可就不是这样了.
    如:EnumForms  枚举某个打印机的所有打印纸型。 
    Public Declare Function EnumForms Lib "winspool.drv" Alias "EnumFormsA" (ByVal hPrinter As Long, _ ByVal Level As Long, ByRef pForm As FORM_INFO_1, ByVal cbBuf As Long, ByRef pcbNeeded As Long, _ 
     ByRef pcReturned As Long) As Long 
    对于 FORM_INFO_1的定义: 
    Public Type FORM_INFO_1 
            Flags As Long 
            pName As String 
            Size As SIZEL 
            ImageableArea As RECTL 
    End Type 
        如果按上述的方法调用,会出现异常.估计是在拷贝数据时,String实际上是不同于LPTSTR的,因为它的前面还有四字节是标识长度的,如果定义为String,那在构造pName之前的长度,必将动到它不应该动到的地方,这样,就错了.想来不会异常退出的,但却退出了,不知原因(我没弄明白) 

      所以,此种情况,应该将pName变为long,然后再用2.1.3提到的方法,将字串拷贝出来使用. 
             这样,就OK了。 

    引申一下: 
        对于一些API中大的结构体中的指针类型,我们完全可以用long来取代它,然后传递0&,因为,大多数情况,我们是不需要传入任何参数的,避免定义很多我们并不需要的类型.这样就降低了API使用的复杂性。 

    2.2 : VB调用COM组件(或OCX控件) 
    这似乎没啥可说的,COM组件的接口一般都是标准的BSTR,与VB的String完全兼容. 
    VB调用端没啥问题,倒是书写COM的程序需要注意: 
    2.2.1: 应用端可能会传入空指针.比如传入vbNullString,这需要留意. 
    2.2.2: BSTR的释放与普通LPTSTR可不同,使用前需要初始化,使用后要释放,当然,VB无此烦恼. 

    3: VB字串的连接操作. 
        当我们要序列化生成文本文件时,大都喜欢先将内容写入字串,然后再一次写了文件.否则多次写入文件,似乎有效率低之嫌,但如果字串为多次累加而成,那么使用VB字串的连接操作,将是效率极差的做法,这也变成性能低下的重要原因. 
        分析一下原因: 
        对于String的连接,系统的做法一定是重分配空间,搬移到新空间,拷贝进新内容.如果连接次数较多,且较细,那将是灾难性的。(类似MFC的CString的做法,假设我们要写一个100K长度的字串,但每次添加一个字符,那你可以试试它的速度) 
       如何解决? 
       很简单,采用预分配内存块, 当内存块不够用时,自动增加指定块的增量(当然每次增长的内存块这个阀值需要慎重考虑) 
       这样,减少搬移操作,效率自然提升。 
       具体实现:可以使用内存操作API实现.VB会麻烦一点(需要用API生成全局内存,自行完成搬移,拷贝), 
    VC可以直接使用CMemFile简单搞定. 

    4: VB字串多语言化 
    4.1: 一般的做法是: 将原生串与多语言串做成Key.Value Pair结构。多语言信息为Value,然后做一个简单的Hashc ode来索引,或者干脆用Hash Map来实现 (为了更高效,更容易使用已有容器,最好借助于C++编写相关支持)。
    4.2: 为了使UI上的字串也能多语言化,需要保证字串信息为动态加载。 
    4.3: 对于控件的字体编码字符集也需要处理,以保证正确显示

    转载于:https://www.cnblogs.com/forever5325/p/9529135.html

    展开全文
  • VB编程语言基础知识点总结(转)

    万次阅读 多人点赞 2019-04-11 14:30:10
    Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。海风教育投诉 海风教育在线辅导0元一...

    Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。海风教育投诉

    海风教育在线辅导0元一对一试听课等你来领取,领取课程方法:
    1、私信留下您的手机号和姓名,需要补习的科目。
    2、也可以在海风教育官网留下您的手机号领取 https://www.hfjy.com

    “Visual” 指的是开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上即可。

    “Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,是一种在计算技术发展历史上应用得最为广泛的语言。

    Visual Basic源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Active X控件,用于高效生成类型安全和面向对象的应用程序 。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。

    VB语言知识点总结

    第一章知识点

    (1) VB的语言特点

    可视化开发环境:界面设计所见所得;面向对象程序设计:程序和数据封装作为一个对象,在工具箱里面的都是一个一个的类,比如commandbutton类,当你把它从工具箱拖出来已经,它就被实例化成了一个对象,名称叫command1,如果你拖了2个command,就是2个不同的对象;事件驱动编程:VB程序没有明显的入口和出口,都在等待用户或者系统或者代码触发某个事件,然后执行事件对应的任务。

    (2) VB的工作模式

    设计模式,运行模式,中断模式;

    程序在运行模式是没有办法修改代码和设计界面窗口的。

    (3) VB的文件类型

    窗体文件frm;程序模块文件bas;类模块文件cls;工程文件vbp;

    工程组文件vbg;资源文件res;

    保存工程的时候应该同时保存工程文件vbp和窗体文件frm。

    (4) VB的窗口

    任何窗口被关闭了找不到了,都可以在视图菜单下面来寻找,工具箱窗口,代码窗口,窗体布局窗口,立即窗口(可以在中断模式下查询程序运行对象值,ctrl+G打开立即窗口)

    第二章知识点

    (1) 面向对象的基本概念

    类:具有类似属性和方法的对象的抽象,比如大学;

    对象:类实例化就成为一个对象,每个对象都具有自己的属性和方法,比如西南财经大学天府学院。

    属性:对象的静态特征,最重要的属性是name,在VB里面对象的name是不能省略的,而且在程序运行的过程中是不能修改的;

    事件:人或者系统对对象的作用,对象是被动者,比如load,unload,timer;click等;

    方法:对象发出的行为,对手是主动者,比如move,show,hide等。

    (2) VB的开发流程

    第一步分析后画流程图

    第二步界面设计

    第三步编写代码

    第四步测试运行

    3 第三章知识点

    (1) VB书写代码的格式

    VB代码中不区分字母的大小写。

    同一行可以书写多条语句,语句间用冒号“:”分隔。

    一条语句可以写在同一行,也可以写在多行。续行符号是一个空格加下划线“_”。

    注释语句以Rem开头,也可以使用单引号“‘”。后者注释内容可直接出现在相关语句的后面。

    VB6中新增了“块注释/取消块注释”:在代码模式下,右击工具栏,在弹出菜单里把“编辑”项选中„„

    变量和常量的命名规则:有数字,字母,下划线组成;字母作首字符;不超过255个字符;不能以VB关键字和系统常量做名字

    (2) VB的数据基本类型

    数值类型:

    字符串类型:

    string 用“”双引号作为定界符

    声明一个字符串变量,不规定串长:dim s as string

    例: dim s as string

    S=”中国”

    Print len(s) „ 长度为4个字节

    S=”abs”

    Print len(s) „ 长度为3个字节

    声明一个定长字符串,在后面加 *指定字符串的长度 dim s as string * 8

    例:

    Dim s as sting * 6

    Dim a as integer

    S=”12345678”

    Print len(s) „ 长度为6个字节

    a=len(s)

    print len(a) „ 长度为2个字节,如果打印其他类型的长度,则为其数据类型

    所占用的字节数

    日期类型

    用“”双引号或者# #井号作为定界符

    例: dim a as date

    A=#4/20/1999#

    A=A-10

    Print A „ #4/10/1999# 减去的是天数

    对象类型

    对象类型变量可以用来引用程序中各种对象,对象类型的使用分为声明,

    赋值,代表三步,类似给控件取一个小名

    例:

    Dim a as commandbutton

    Set a=command1

    a.caption=”hello” „等价于command1.caption=”hello”

    变体类型

    变体型声明方式 dim c或者dim c as variant

    例:

    Dim a ,b as double „a是变体型

    变体型在未进行变量赋值前是值是empty

    变体型是数据类型根据赋值不同可以改变

    例: Dim A

    A=”88” „A是字符串 “88”

    A=A+10 „A的值是98

    (3) VB常量的声明

    符号常量声明:关键字是const,必须在声明的时候进行初始化

    符号常量声明分隐式声明和显式声明

    例:

    Const a as string=”123” 显式声明

    Const a =true 隐式声明

    (4) VB变量的声明

    变量声明:关键字是dim,变量必须要定义,再使用

    变量声明分隐式声明和显式声明

    例:

    Dim a as double

    Dim a%,b#

    (5) VB运算符

    运算符分类

    算术运算符:() ^ * / \ mod + -

    关系运算符:《 》 = 《= 》= 《》

    逻辑运算符:not and or xor eqv imp

    运行符优先级

    算术运算符》关系运算符》逻辑运算符

    优先级的顺序:

    由上至下对应由高到低,同一行的优先级相同,程序顺序执行。

    算术运算符(优先级最高)

    ()

    sin cos„

    ^

    • / \

    mod

    关系运算符

    》 》= 《 《= = 《》

    逻辑运算符(优先级最低)

    Not

    And Or Xor Eqv Imp

    运算符

    除法/ \ mod :/ 是真正除法,返回商23/5=4.6

    \ 是整除 23\5.8=3 23\5.2=4

    Mod返回余数 23mod5.8=5 23mod5.2=3 1mod2=1

    +号运算符:两边都是字符串做字符串连接 “1“+”2“=”12“

    一边是字符串一边是数值,把字符串转换成数值再加 1+”2”=3

    两边都是数值做数值加法 1+2=3

    +号的优先级高于& “300”& “123”+200=“300323”

    关系运算符:运算结果是true或者false 1《=2 为true

    “a”《”b” 比较的是ASCII

    “abc” 《“abd” 从首字符依次比较ASCII

    逻辑运算符:not 取反

    And 取幷 两个同时为true才为true

    Or取或 有一个为true就为true

    Xor异或 不同为true,相同为false

    Eqv同或 相同为true, 不同为false

    imp蕴含 true imp false 为false 其他都为true

    (6) VB函数

    数学运算函数

    abs:取参数绝对值,如果变量未初始化,则为0 abs(-10)=10

    int:取整,当为负数的时候,返回小于等于参数的第一个负整数int(-1.1)=-2

    fix:取整,当为负数的时候,返回大于等于参数的第一个负整数fix(-1.1)=-1

    exp:返回e的多少次方

    log:返回参数的自然对数

    字符串处理函数

    Len:取字符串的长度,len(“abcdefg”)=7 len(“小白”)=4

    Trim:去除字符串左右两边的空格

    String:连续返回多少个字符串首字符 string(3,”abc”)=”aaa”

    Lcase:大写字母变小写 lcase(“ABcd”)=”abcd”

    Ucase:小写字母变大写 Ucase(“ABcd”)=”ABCD”

    Left:返回字符串左边起多少个字符,如果个数大于长度全返回

    left(“abcdef”,3)=”abc”

    Right:返回字符串右边起多少个字符,如果个数大于长度全返回

    right(“abcdef”,3)=”def”

    mid:从中间某个位置返回指定长度的字符串

    mid(“abcdef”,3,2)=”cd”

    instr:返回指定字符串在另一字符串中出现的位置

    instr(1,”abcdef”,”de”)=4 instr(4,“abcdef”,”cd”)=0

    日期函数

    类型转换函数

    其他函数

    Cstr:把数值转化成字符串

    Val:把字符串转化成数值

    Rnd:产生随机数

    Int(Rnd()*90+10) 范围是10-99

    Int(Rnd()*99+1) 范围是1 - 99

    4第四章知识点

    (1) inputbox函数

    inputbox用于接收用户的键盘数据的输入,只接收一个数据输入

    inputbox的语法格式:inputbox(“提示信息”,”标题”,”默认值”)

    提示信息长度不能超过1024字节

    对话框标题如果不写,默认为工程1,和““空标题不一样

    Inputbox返回的数据类型是string,因此通常返回数值类型的时候需要加

    val函数把字符串转换成数值

    (2) msgbox函数

    msgbox函数用于进行消息的提示,并且接受用户的反馈的单击按钮信息

    msgbox的语法格式:

    msgbox(“提示信息”,对话框按钮组合方式+图标+默认按钮,”标题”)

    提示信息长度不能超过1024字节

    对话框标题如果不写,默认为工程1,和““空标题不一样

    Msgbox返回的数据类型是integer类型,即用户单击了消息框按钮后返回vbyes,vbno等VB常量,详细请参考书上对应的表格

    (3) msgbox语句

    msgbox语句和msgbox函数的相同之处都是给出一个消息提示

    msgbox语句和msgbox函数的不同之处是语句没有返回值,即用户单击了消息框按钮后,也没有任何的信息返回

    其他语法规则,包括对话框的组合方式都和msgbox函数是完全一样的

    (4) print方法

    print方法用于在form上或者在打印机上输出数据

    print单独写是打印一个空行

    print后面加;号是连续在一行输出

    print后面加,号是以14个字符为一个输出区输出各表达式

    tab(n)是绝对距离

    spc(n)是相对距离

    第六章知识点

    标签

    类名叫label,实例化对象名字默认叫label1,即name属性

    Caption:显示标签的文本内容,例如label1.caption=”欢迎vb”

    Backstyle:设置标签透明效果,0为透明,1为不透明

    文本框

    类名叫textbox,实例化对象名字默认叫text1,即name属性

    Text:用来显示或者获取文本框的内容,例如:text1.text=”12”显示12到

    文本框,a=text1.text获取文本框输入的内容

    Alignment:文本框的对齐方式

    Enable:设置文本框是不是可用

    Visible:设置文本框可见与否

    Tooltiptext:设置鼠标放置上去后的提示信息

    Passwordchar:输入或者显示密码的符号

    Maxlength:设置输入字符的最大长度,为0可以输入任意长度

    Change事件:文本框内容发生变化的时候就触发

    命令按钮

    类名叫commandbutton,实例化对象名默认叫command1,即name属性

    Canel:设置按钮是否为当前窗体中默认取消按钮,ESC时触发

    Default:设置按钮是否为当前窗体默认确定按钮,ENTER时触发

    计时器

    类名叫timer,实例化对象名默认叫timer,即name属性

    Enable:设置文本框是不是可用

    Interval:设置计时间隔,单位毫秒

    图形按钮

    类名叫pictureBox,实例化对象名默认叫picture1,即name属性

    Picture:设置该属性装载图片,格式Picture1.picture=loadpicture(“URL”)

    单选按钮

    类名叫optionbutton,实例化对象名默认叫option1,即name属性

    Caption:显示单选按钮的文本内容

    Value:确定单选按钮是不是被选中,值为true和false

    If option1.value=true then

    Label1.caption=option1.caption

    Elseif option2.value=true then

    Label1.caption=option2.caption

    End if

    复选按钮

    类名叫checkbox,实例化对象名默认叫check1,即name属性

    Caption:显示复选按钮的文本内容

    Value:确定复选按钮是不是被选中,值为0和1,2分别表示为未选中,

    选中,不可以使用

    If check1.value=1 then

    Label1.caption=check1.caption

    endif

    If check2.value=1 then

    Label1.caption=check2.caption

    End if

    滚动条

    类名叫scrollBar,实例化对象名默认叫scroll1,即name属性

    Max:滚动条的最大值

    Min:滚动条的最小值

    Smallchange:单击滚动条箭头时value的变化量

    Largechange:单击滚动条空白时value的变化量

    Value:滑动块所处的位置

    Scroll事件:滑动块实时移动的时候一直触发

    Change:单击空白,单击箭头,滑动块移动鼠标释放的时候触发一次

    列表框

    类名叫listbox,实例化对象名默认叫list1,即name属性

    List:列表框第i-1项的内容,存放数据的地方,访问用下标list(1)

    Listcount:表示列表框的列表项数

    Listindex:选中项下表,例:被选中项内容:list1.list(list1.listindex)

    Selected:下标表示项选中与没选中的状态

    Additem:在列表框指定位置插入一行文本,例:插入到最后

    List1.additem “aaaa” ,list1.listcount-1

    Removeitem:删除列表项,例:删除当前选中项

    List1.remveitem list1.listindex

    Clear:清空列表框

    组合框

    类名叫combobox,实例化对象名默认叫combo1,即name属性

    组合框是组合的textbox和listbox,所以有这两个控件共同的属性

    使用的时候只是对象名要变成combo1,其他属性参考list

    第七章知识点

    重点是要能写程序,灵活应用

    程序设计有三种结构,顺序结构,条件结构,循环结构

    条件结构

    If 条件 then 任务 ,end if省略

    If 条件 then 任务 else 任务 ,end if省略

    If 条件 then

    任务

    Endif

    If 条件

    then

    任务

    Else

    任务

    Endif

    If 条件 then

    任务

    Elseif 条件 then

    任务

    Elseif 条件 then

    任务

    Elseif 条件 then

    任务

    Endif

    只要有一个条件满足,后面都不会判断

    Select case 变量

    Case 值

    任务

    Case 值列表

    任务

    Case 值范围

    任务

    Case 条件表达式

    任务

    End select

    只要有一个条件满足,后面都不会判断

    循环结构

    For型循环

    For 变量=初值 to 终值 step 步长

    任务

    Next 变量

    退出循环的时候变量要多加一次1

    例子for i=1 to 100 step 1

    S=s+i

    Next i

    While型循环

    变量=初值

    While 条件

    任务

    变量=变量+步长

    Wend

    例子:while i《=100

    S=s+i

    i=i+1

    wend

    Do型循环

    Do while 条件

    任务

    Loop

    例子:Do while i《=100

    S=s+i

    I=i+1

    Loop

    Do until 条件

    任务

    Loop

    例子: Do until i》100

    S=s+i

    I=i+1

    Loop

    Do

    任务

    Loop while 条件

    例子: Do

    S=s+i

    I=i+1

    Loop while i《=100

    Do

    任务

    Loop until 条件

    例子: Do

    S=s+i

    I=i+1

    Loop until i》100

    Goto 语句

    语句标号:任务

    If 条件 then

    Goto 语句标号

    Endif

    例子:a:s=s+i

    I=i+1

    If i》=100 then

    Goto a

    End if

    Exit语句强制退出循环

    第八章知识点

    数组的声明

    Dim 数组名(下标 to 上标)as 数据类型

    Dim a(1 to 10) as integer 长度为10

    Dim b(5) as integer 长度为6,下标省略

    如果想让默认下标从1开始,加option base 1

    数组的操作:赋值,引用,输入,输出,复制

    在对数据进行操作的时候要保证数组下标不溢出

    输入10个数,找最大最小平均,冒泡排序

    Private Sub Command1_Click()

    Dim (1 To 10) As Integer

    Dim i As Integer

    Dim j As Integer

    Dim max As Integer

    Dim min As Integer

    Dim avg As Integer

    Dim sum As Integer

    For i = 1 To 10

    a(i) = Val(InputBox(“”, “”, “1”))

    Print a(i);

    Next i

    max = a(1)

    min = a(2)

    For i = 1 To 10

    If max 《 a(i) Then

    max = a(i)

    End If

    If min 》 a(i) Then

    min = a(i)

    End If

    sum = sum + a(i)

    Next i

    avg = sum / 10

    Print “max=”; max; “min=”; min; “avg=”; avg;

    For i = 1 To 9

    For j = 1 To 10 - i

    If a(j) 》 a(j + 1) Then

    t = a(j)

    a(j) = a(j + 1)

    a(j + 1) = t

    End If

    Next j

    Next i

    For i = 1 To 10

    Print a(i);

    Next i

    End Sub

    展开全文
  • vb编程代码大全

    千次阅读 2017-07-13 09:49:00
    string(n,str):构造由n个str第一个字符组成的字符串 StrReverse(str):反转字符串 split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组 可选参数需同时选 3.数据类型转换函数:...
      1. 数值型函数
        abs(num): 返回绝对值
        sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负
        hex(num): 返回十六进制值 直接表示:&Hxx 最大8位
        oct(num): 返回八进制值 直接表示:&Oxx 最大8位
        sqr(num): 返回平方根 num>0
        int(num): 取整int(99.8)=99; int(-99.2)=100
        fix(num): 取整fix(99.8)=99; fix(-99.2)=99
        round(num,n): 四舍五入取小数位round(3.14159,3)=3.142 中点数值四舍五入为近偶取整 round(3.25,1)=3.2
        log(num): 取以e为底的对数 num>0
        exp(n): 取e的n次幂通常用 num^n
        sin(num): 三角函数,以弧度为值计算 (角度*Pai)/180=弧度 con(num); tan(num); atn(num)


        2.字符串函数:
        len(str):计算字符串长度 中文字符长度也计为一!
        mid(str,起始字符,[读取长度]):截取字符串中间子字符串
        left(str,nlen):从左边起截取nlen长度子字符串
        right(str,nlen):从右边起截取nlen长度子字符串
        Lcase(str):字符串转成小写
        Ucase(str):字符串转成大写
        trim(str):去除字符串两端空格
        Ltrim(str):去除字符串左侧空格
        Rtrim(str):去除字符串右侧空格
        replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串


        注:默认值:起始字符 1;替代次数 不限;比较方法 区分大小写(0)


        InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选 返回起始位置
        InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串返回起始位置
        space(n):构造n个空格的字符串
        string(n,str):构造由n个str第一个字符组成的字符串
        StrReverse(str):反转字符串
        split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组 可选参数需同时选


        3.数据类型转换函数:
        Cint(str):转换正数 True -1;False 0;日期 距离1899/12/31天数;时间 上午段 0;下午段 1;
        Cstr(str):日期 输出格式 yyyy/mm/dd;时间 输出格式 Am/Pm hh:mm:ss
        Clng(str):与Cin()类似
        Cbool(num):num不为零 True;反之 False
        Cdate(str):转换日期格式 0:#Am 12:00:00#;正数 距离1899/12/31天数的日期;浮点数 日期+小数时间
        Cbyte(num):num<255 转换为字节
        Csng(str):转换为单精度数值
        Cdbl(str):转换为双精度数值
        Ccur(str):转换为现金格式


        4.时间函数:
        date:取系统当前日期
        time:取系统当前时间
        now:取系统当前时间及日期值Datetime类型
        timer:取当前时间距离零点秒值,计时器,可计算时间差
        DateAdd(间隔单位,间隔值,日期):推算相邻日期
        DateDiff(间隔单位,日期一,日期二):计算时间差 日期二-日期一
        Datepart(间隔单位,日期):计算日期的间隔单位值
        Dateserial(date):输出日期值(按序列计算)
        Timeserial(time):输出时间值(按序列计算)
        Datevalue(datetime):取出字符串中日期值
        Timevalue(datetime):取出字符串中时间值
        weekday(date):计算星期几
        MonthName(date):输出月分名
        year(datetime):截取年份
        month(datetime):截取月份
        day(datetime):截取日
        hour(datetime):截取小时
        minute(datetime):截取分钟
        second(datetime):截取秒


        5.其它函数:
        Array(unit,..):动态生成数组
        Asc(str):输出字符串第一个字符的ASCII码
        Chr(asc):转换ASCII为字符 Enter:Chr(13)&Chr(10)
        Filter(数组名称,关键字符串,[,包含][,比较方法]):


        将字符串数组中含有关键字符串的元素存成新的数组(默认) [包含]为false则取不包含的元素

      2. 更多知识内容


        oin(ArrayName):将数组中元素连成字符串
        Ubound(ArrayName[,维数]):取得数组相应维数的上界
        Lbound(ArrayName[,维数]):取得数组相应维数的下界 一般为0
        Randmize n:启动随机数种子
        Rnd(n):取得随机数,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数


        取介于A和B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A)条件(B>A)


        子程序和自定义函数
        Sub StrSubName Function StrFunName(arg[1],..)
        子程序体 函数体
        Exit Sub 中途跳出 ExitFunction 中途跳出


        End Sub StrFunName=value 返回值


        End Function


        [call] StrSubName 引用子程序 Var=StrFunName(arg[1],..) 引用函数

    转载于:https://www.cnblogs.com/gzgb/p/7158887.html

    展开全文
  • 按F1获取帮助,你会了吗?点击进入System.String类的帮助页面。 字符串(System.String类)是 Unicode 字符的...不同于旧的VB6.0,System.String类使用方法而不是函数来处理字符串。当然,为了兼容老版本的VB6.0,...

    光标定位到想获取帮助的关键词后按F1获取帮助,你会了吗?如图所示:
    帮助
    从帮助页面里可以看到,在.NET Framework中字符串对应的类型是System.String类。
    在这里插入图片描述
    点击进入System.String类的帮助页面。
    字符串(System.String类)是 Unicode 字符的有序集合,用于表示文本,即一系列 Unicode 字符。是基本类型中唯一的引用类型。
    System.String类不同于旧的VB6.0,System.String类使用方法而不是函数来处理字符串。当然,为了兼容老版本的VB6.0,还是可以用函数来处理字符串的,不过这些函数并不包含在System.String类,而是Microsoft.VisualBasic.Strings 类中。据说C#是不使用Microsoft.VisualBasic.Strings类的,所以为了兼容其他编程语言,建议尽量使用System.String类处理字符串。
    一、构造函数——实例化字符串对象
    System.String类有多个不同的构造函数,能够实现给字符串简单赋值以外的功能。如图:
    构造函数
    1、默认构造函数
    String()是默认的构造函数,但String类并没有显式的提供这个构造函数。创建字符串实例最常用的方法是直接将一个字符串赋给String变量。如:

    dim str as string = "Hello World"
    

    2、其他构造函数
    如String(Char, Int32)构造函数可以将 String 类的新实例初始化为由重复指定次数的指定 Unicode 字符指示的值。

    Dim str As String = New String("A"c, 10)
    

    二、String方法
    String类提供用于比较字符串,测试字符串是否相等,查找字符或字符串,修改字符串,提取字符串的组合字符串,格式化值等方法。
    1、比较字符串
    您可以通过使用以下String方法比较字符串来确定二者在排序顺序中的相对位置:
    Compare 返回一个整数,指示一个字符串在排序顺序中第二个字符串的关系。
    CompareOrdinal 返回一个整数,指示一个根据其码位比较的第二个字符串的字符串的关系。
    CompareTo 返回一个整数,指示当前的字符串实例与第二个字符串在排序顺序中的关系。 CompareTo(String)方法提供IComparable并IComparable实现String类。
    复制粘贴帮助内容,做记号,没亲测。
    2、测试字符串相等
    在调用Equals方法来确定两个字符串是否相等。 实例Equals(String, String, StringComparison)和静态Equals(String, StringComparison)重载允许您指定比较是否区分区域性的或序号,以及是否考虑或忽略大小写。 为确定相等性的大多数测试是序号,并确定为系统资源 (如文件系统对象) 的访问权限为确定相等性比较应始终为序号。
    3、查找字符串中的字符
    String类包括两种类型的搜索方法:
    返回的方法Boolean值,以指示特定的子字符串中是否存在字符串实例。 其中包括Contains, EndsWith,和StartsWith方法。
    指示子字符串的字符串实例中的起始位置的方法。 其中包括IndexOf, IndexOfAny, LastIndexOf,和LastIndexOfAny方法。
    4、修改字符串
    (1)、Insert
    将字符串插入到当前String实例。
    Insert (int startIndex, string value)
    参数:startIndex:Int32,插入的从零开始的索引位置;value:String,要插入的字符串。
    返回:String,与此实例等效的一个新字符串,但在该字符串的 startIndex 位置处插入了 value。
    如:

            Dim str As String = "Hello World"
            Dim strInsert As String = str.Insert(5, " Hi")
    

    (2)、PadLeft
    返回一个指定长度的新字符串,其中在当前字符串的开头填充空格或指定的 Unicode 字符。
    PadLeft(Int32) 返回一个新字符串,该字符串通过在此实例中的字符左侧填充空格来达到指定的总长度,从而实现右对齐。
    PadLeft(Int32, Char) 返回一个新字符串,该字符串通过在此实例中的字符左侧填充指定的 Unicode 字符来达到指定的总长度,从而使这些字符右对齐。
    如:

            Dim str As String = "Hello World"
            Dim strPadLeft1 As String = str.PadLeft(20) '用空格填充左部
            Dim strPadLeft2 As String = str.PadLeft(20, "*") '用*号填充左部
    

    效果如图:
    在这里插入图片描述
    (3)、PadRight
    返回一个指定长度的新字符串,其中在当前字符串的结尾填充空格或指定的 Unicode 字符。
    与PadLeft用法相似。
    (4)、Remove
    返回一个新字符串,它相当于从当前字符串删除了指定数量的字符。
    Remove(startIndex) 删除此字符串中从指定位置到最后位置的所有字符。
    参数:startIndex——System .Int32 ,开始删除字符的从零开始的位置。
    返回值:System .String ——一个新字符串,除所删除的字符之外,该字符串与此字符串等效。
    Remove(startIndex, count) 从此实例中的指定位置开始删除指定数目的字符。
    参数:startIndex—— System .Int32 ,开始删除字符的从零开始的位置;count—— System .Int32 ,要删除的字符数。
    返回值:System .String ,一个新字符串,除所删除的字符之外,该字符串与此实例等效。
    如:

            Dim str As String = "Hello World"
            Dim strRemove1 As String = str.Remove(6) '删除第7至末字符
            Dim strRemove2 As String = str.Remove(0, 6) '删除第1-7字符
    

    效果如图:
    在这里插入图片描述
    (5)、Replace
    返回一个新字符串,其中当前字符串中出现的所有指定 Unicode 字符或 String 都替换为另一个指定的 Unicode 字符或 String。
    Replace(oldChar, newChar)
    参数:oldChar—— System .Char ,要被替换的 Unicode 字符;newChar——System .Char ,要替换出现的所有 oldChar 的 Unicode 字符。
    返回值:System .String ——与此实例等效的一个字符串,但其中 oldChar 的所有实例都替换为 newChar。
    Replace(oldValue, newValue)
    参数:oldValue——System .String,要被替换的字符串;newValue——System .String,要替换出现的所有 oldValue 的字符串。
    返回值:System .String,与当前字符串等效的一个字符串,但其中 oldValue 的所有实例都替换为 newValue。
    如:

            Dim str As String = "Hello World"
            Dim strReplace1 As String = str.Replace(" "c, ","c)
            Dim strReplace2 As String = str.Replace("Hello", "World")
    

    效果如图:
    在这里插入图片描述
    (6)、ToLower 和ToUpper
    如:

            Dim str As String = "Hello World"
            Dim strToUpper As String = str.ToUpper '全部大写
            Dim strToLower As String = str.ToLower '全部小写
    

    效果如图:
    在这里插入图片描述
    (7)、Trim 、TrimEnd和TrimStart
    Trim 开始位置和字符串的末尾移除所有空白字符。
    TrimEnd 删除字符串的末尾出现的所有字符。
    TrimStart 从字符串的开头移除所有空白字符。
    如:

            Dim str As String = " Hello World "
            Dim strTrim As String = str.Trim
            Dim strTrimEnd As String = str.TrimEnd
            Dim strTrimStart As String = str.TrimStart
    

    效果如图:
    在这里插入图片描述
    5、从字符串中提取子字符串
    (1)、Split(separator)
    如:

            Dim str As String = "A,B,C,D"
            Dim strSplit() As String = str.Split(",")
    

    参数:separator—— System .Char (),分隔此实例中子字符串的 Unicode 字符数组、不包含分隔符的空数组或 Nothing。
    返回: System .String (),一个数组,其元素包含此实例中的子字符串,这些子字符串由 separator 中的一个或多个字符分隔。
    (2)、SubString
    Substring(startIndex)
    参数:startIndex——System .Int32 ,此实例中子字符串的起始字符位置(从零开始)。
    返回值:System .String ,与此实例中在 startIndex 处开头的子字符串等效的一个字符串;如果 startIndex 等于此实例的长度,则为 Empty。
    Substring(startIndex, length)
    参数:startIndex—— System .Int32 ,此实例中子字符串的起始字符位置(从零开始);length——System .Int32 ,子字符串中的字符数。
    返回值:System .String ,与此实例中在 startIndex 处开头、长度为 length 的子字符串等效的一个字符串,如果 startIndex 等于此实例的长度且 length 为零,则为 Empty。
    如:

            Dim str As String = "Hello World"
            Dim strSubstring1 As String = str.Substring(4)
            Dim strSubstring2 As String = str.Substring(0, 4)
    

    效果如图:
    在这里插入图片描述
    6、串联字符串
    (1)、使用运算符&
    前面一直在用这个运算符,不再多说。
    (2)、Join 方法
    String .Join (separator,value)
    参数:separator—— System .String,要用作分隔符的字符串;value——System .String (),一个数组,其中包含要连接的元素。
    返回值:System .String,一个由 value 中的元素组成的字符串,这些元素以 separator 字符串分隔。
    如:

    Dim str() As String = {"a", "b", "c"}
            Dim a As String = String.Join(",", str)
            Console.WriteLine(a)
    

    测试效果:
    在这里插入图片描述
    三、String .Length 属性
    属性值:System .Int32 ,当前字符串中字符的数量。
    如:

    Module Module1
        Sub Main()
            Dim str As String = "Hello World"
            Dim int As Integer = str.Length
            MessageBox.Show(int.ToString)
        End Sub
    End Module
    

    效果如图:
    在这里插入图片描述
    四、String类不可变和 StringBuilder 类
    String类被定义为不可变的类,若对字符串进行改变或复制时,系统将分配新的内存空间来存储(原空间被回收机制回收),操作时间长。
    如:

    Module Module1
        Sub Main()
            Dim strA As String = "Hello World"
            Dim strB As String = ""
            Dim start As Date = Now()
            For i As Integer = 1 To 10000
                strB &= strA
            Next
            MessageBox.Show(Now().Subtract(start).TotalMilliseconds.ToString)
        End Sub
    End Module
    

    操作时间如图:
    在这里插入图片描述
    可以用.net库中的System.Text.StringBuilder类,它先分配一个较小的内存,当无法容纳时,再扩大这个内存,操作时间短。
    如:

    Module Module1
        Sub Main()
            Dim sb As New System.Text.StringBuilder("Hello World")
            Dim start As Date = Now()
            For i As Integer = 1 To 10000
                sb.Append("Hello World")
            Next
            MessageBox.Show(Now().Subtract(start).TotalMilliseconds.ToString)
        End Sub
    End Module
    

    操作时间如图:
    在这里插入图片描述

    展开全文
  • 运行效果: 程序代码: Private Sub Command1_Click()  Dim myarray() As String  Dim myrows  With Text1   myarray = Split(.Text, vbCrLf)   myrows = UBound(myarray)   Randomi...
  • VB编程:获取字符串中数字个数-50

    千次阅读 2017-02-06 09:59:38
    程序代码: Private Sub Form_Click()  Dim i As Integer, j As Integer  j = 0  ‘ 计数  Dim str As String  str = "abcs123"  For i = 1 To Len(str)  ...
  • VB编程:获取文件夹下所有文件-1

    千次阅读 2017-03-10 18:24:53
    Private Function TreeSearch(ByVal sPath As String, ByVal sFileSpec As String) As Long  DoEvents  Static Files As Long  Dim sDir As String  Dim sSubDirs() As String  Dim Index As Lo
  • "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ...
  • VB 串口编程 开发心得

    千次阅读 2017-07-27 08:20:29
    接触vb的串口控件也有一段时间了 经常被它弄得晕头转向 最重要的是死机 死机 死机 其實關鍵在於 寫好接收函數 现将自己的经验写下来供大家参考 1,使用串口   (1)臺式機自帶串口  (2)USB----...
  • 12864液晶vb编程资料

    2011-05-26 14:03:56
    string是字符串,在内存中占4个字节,最多可以存2^31个字符长的字符串 integer是整形,在内存中占4个字节; double是双精度浮点数,占8个字节;
  • @[TOC(干支纪年法VB编程:输入一个年份,程序会列出从该年份开始的12年的干支纪年和生肖,希望大神帮我解释期中的关键语句) Private Sub Command1_Click() Dim a As Integer, b As Integer, i As Integer, n As ...
  • VB如何读取TXT文件: 首先我们在C盘建立一个vm888.txt文件。通过下面实例进行读取: Dim data As String '定义变量 Dim buffer As String '定义变量 Open "c:\vm888.txt" For Input As #1 '打开文件 Do ...
  • VB程序设计练习题

    千次阅读 2021-05-15 14:03:35
    这是我备考技能考的一些VB练习题。(难度稍微有点大哦) 想要更多VB练习题点击我的头像,看我发表我文章就可以看到了。 答案是小编自己写的,也许会有错。 内容 一、明文密文转换。 在上面的文本框中输入的英文...
  • 1、运行效果 2、程序代码 Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ...Dim q As String Dim p As String Private Sub ...
  • VB编程常见问题

    2014-02-12 15:57:56
    最后,添加如下VB代码:  Private Sub Command1—Click()  Dim str As String  Dim Text As String  str=″输入文本″  Text=InputBox(str)  RichTextBox1.Text=Text  End Sub  Private Sub...
  • vb编程给u盘加密

    2019-09-21 17:05:04
    你是使用u盘加密软件还是使用其他的一些什么方法,那么我现在给大家介绍一个新的方法,就是使用vb编程来给u盘加密。Function ByteToBin(m As Byte) As String ' 将字节型数据转换成八位二进制字符串 Dim c$ c$ = "" ...
  • VB编程的必备技巧

    千次阅读 2016-05-20 13:45:27
    ---- 对编程者来说,VB很容易上手,但要深入、灵活地驾驭它还要下一番功夫。笔者在这里介绍几个较为典型的编程技巧,希望能对广大VB爱好者有所帮助。 ---- 一.怎样创建自定义的光标 ---- 1.当在设计一个应用...
  •  数据类型转换在编程中经常用到,VB6提供了一整套类型转换的函数。但是,在进行类型转换时,有时候仅仅依靠VB提供的函数是不能达到自己的目的的。因此,需要考虑用其他的方法来完成数据类型转换。本文仅谈VB6中字节...
  • VB编程:统计字符个数-52

    千次阅读 2017-02-07 09:09:41
    As String  For i = 1 To Len(Text1)    mystr = Mid(Text1, i, 1)    Select Case mystr      Case "a" To "z", "A" To "Z"       Label4.Caption = Val(Label4.Caption) + 1      Case ...
  • C语言

    万次阅读 多人点赞 2019-12-18 23:01:50
    C语言 42.C语言是一种计算机高级语言。 43.C语言允许直接访问物理地址,能进行位操作。 44.C语言是结构化程序设计语言 45.c程序要通过编译,连接才能得到可执行的目标程序 46.用c语言编写程序,可以编写出任何类型的...
  • VB编程:自定义过程改变窗体颜色-53

    千次阅读 2017-02-07 10:45:34
    Dim A(5) As String Private Sub Combo1_click()    A(5) = Combo1.Text End Sub Private Sub Command1_Click()    CB A(5), Form1 End Sub Private Sub Form_Load()    Dim i As Intege...
  • 程序代码 Private Sub Command1_Click()  Dim j As Integer  Dim i(100) As String  Text2 = ""  For j = 1 To Len(Text1)   i(j) = Mid(Text1, j, 1)   Text2 = Text2 &amp; i(j...
  • VB.NET & C++ & VB 编程语言

    千次阅读 2015-02-10 21:50:47
    VB & VB.NET & C++ 编程语言基础  从了解VB到C#、到VB.NET 在到等级考试的C++程序设计,都有一些相同的很基础的, 这些基础的数据、运算、流程控制、函数等,在这主要结合VB.NET 的基础总结一下:   一、...
  • VB编程:VB获取快捷方式对应的目标路径。 比如,我们想获取桌面上腾讯QQ快捷方式对应的路径,也就是想知道QQ运行程序的安装位置。 我们先做一个函数,专门用于取得一个程序的快捷方式对应的路径名。函数代码如下: ...
  • 返回当前默认路径,以Variant形式或String值形式返回 语法:CurDir 举例:msgbox"当前系统的默认路径是:" & CurDir 二,GetAttr函数 返回文件的特定属性是否设置,以integer形式返回 语法:GetAttr(包括...
  • VB编程规范

    千次阅读 2007-01-11 10:30:00
    The guideline outlines naming conventions for four types of entities -- procedures, VB Controls, DOS physical files, Variables and data types. These are listed in the following sub-sections. 1.4.1...
  • vb计算器编程详解

    2011-12-19 10:53:09
    vb计算器编程的详细过程 部分代码如下 用到控件有 一个按钮控件数组command1 0-16共 17个 一个frame 一个label 一个文本框 代码如下: Private Sub Command1_Click(Index As Integer) Dim jia, jian, cheng, chu ...
  • VB6 Socket编程

    千次阅读 2017-12-20 13:37:55
    VB Socket编程(Winsock控件创建TCP/IP客户机/服务器程序) UDP协议用Bind TCP协议用Listen 用bind方法可以有两个参数,一个是绑定本地ip,另一个是绑定本地端口,而winsock用udp协议则是必须绑定ip和端口 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,590
精华内容 10,236
关键字:

vb编程string