VB编程中的一些经验 (转)

VB编程中的一些经验 (转)[@more@]

VB编程中的一些经验

1. 假设VB中有如下的变量声明:
 dim s1, s2 as string
则s1是一个variant型变量,而s2是一个string型变量
如果想要声明两个string变量s1和s2
应该用:
 dim s1 as string, s2 as string

2. VB中的对象是自动回收的,类似Java
在一个过程中
sub Foo()
 dim obj as new object
 .... 'do something with obj
end sub
过程结束的时候没有必要 set obj = nothing
因为当离开该过程的时候,局部变量obj消失,因此对Object对象实例的引用也就消失(除非在过程内部有其他的全局变量引用了该对象的实例),所以对象实例会自动释放

但是对于模块级的对象变量,new了一个实例后用完了必须set obj = nothing来释放该实例

3. 对对象变量赋值应该用 set obj = AnOtherObj 这种方式,相当于让obj指向AnOtherObj所指向的对象。VB中的对象变量实质上是一个指向对象实例的指针,这点和java,pascal相同,和C++中不同

4. VB中字符串的内部存储格式是Unicode,它可以自动转化为ANSI字符(单字节字符)或者 dbCS 字符(双字节字符)。例如
  dim s1 as string, s2 as string
  s1 = "中文"
  s2 = left(s1, 1)
 
  则得到的实际上是  s2 = "中"
  因为VB会自动将s1内部unicode的"中"字单作一个DBCS字符取出来传给s2
 
  因此处理双字节字符的时候特别要注意,很容易产生数组溢出错误

  VB中的常用字符串处理函数,例如Asc, Left, Mid...都会自动判断处理的字符串中的每个字符是单字节还是双字节(因为字符串在内部以Unicode存储,所以这一点很容易做到),然后自动转化为ANSI字符或DBCS字符。

 
5. 字符串的比较应该是用 strCmp 函数,而不是简单的用 = 号
  StrComp(string1, string2[, compare])

其中参数compare的取值含义如下:
 常量  值  含义
 vbUseCompareOption  -1  根据Option Compare 语句的设定进行字符串比较
 vbBinaryCompare  0  进行二进制比较,也就是将string1和string2中的unicode字符看作数组进行字典序比较
 vbTextCompare  1  进行文本比较
 vbDatabaseCompare  2  这个选项只适用于microsoft Access,根据数据库的设定进行比较


对于英文字符串进行 vbTextCompare 比较时,不区分字母大小写,例如: "a" 与 "A" 相等;
对于中文或其他双字节字符串进行 vbTextCompare 比较时,不区分全角字符和半角字符,例如 "A", "A", "a", "a" 都相等;

6. VB中字符串处理的函数有三种版本:
 (1) ANSI和DBCS版本,一般的字符串函数(例如Mid(), Left(), ... )都是该版本,该版本的函数可以自动识别ANSI字符和DBCS字符,而且无论是ANSI字符还是DBCS字符都当作一个字符处理(虽然一个DBCS字符是两个字节,但还是当作一个字符处理)

 (2) 二进制版本,这个版本的函数是在第一类函数的名称后面加上B, 例如 MidB(), LeftB()……;这个版本的函数将字符串当作字节数组处理,例如 s = "abc", k = LenB(s) , 则 k=6,因为字符串在VB内部以unicode存储,而一个unicode字符占两个字节,所以s实际上占用了2*3=6个字节的空间,于是LenB(s)返回6

 (3) Unicode版本,这个版本的函数是在第一类函数名称后面加上W,例如AscW, ChrW;这个版本的函数将字符串当作unicode处理。

 函数  功能描述
 Asc  Returns the ANSI or DBCS character code for the first character of a string.
 AscB  Returns the value of the first byte in the given string containing binary data.
 AscW  Returns the Unicode character code for the first character of a string.
 Chr  Returns a string containing a specific ANSI or DBCS character code.
 ChrB  Returns a binary string containing a specific byte.
 ChrW  Returns a string containing a specific Unicode character code.
 Input  Returns a specified number of ANSI or DBCS characters from a file.
 InputB  Returns a specified number of bytes from a file.
 InStr  Returns the first occurrence of one string within another.
 InStrB  Returns the first occurrence of a byte in a binary string.
 Left,Right  Returns a specified number of characters from the right or left sides of a string.
 LeftB, RightB  Returns a specified number of bytes from the left or right side of a binary string.
 Len  Returns the length of the string in number of characters.
 LenB  Returns the length of the string in number of bytes.
 Mid  Returns a specified number of characters from a string.
 MidB  Returns the specified number of bytes from a binary string.


7. VB程序代码中的以下标识符不能含有双字节字符:
Public procedure names  公共过程名称
Public variables 公共变量
Public constants 公共常量
Project name (as specified in the Project Properties dialog box) 工程名称(在工程属性对话框中的名字) [PS: VB中文版中的工程名称可以是中文,比较奇怪的说]
Class names (Name property of a class module, a user control, a property page, or a user document)  类名(类模块、用户控件模块,属性页,用户文档的name属性)


换句话说,其他的标识符都可以用中文,例如:
Private Sub cmdTest_Click()
  Dim 中文变量 As String
  中文变量 = "你好! hello!"
  MsgBox 中文变量
End Sub

这样的代码也是合法的 :-)


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-981750/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-981750/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: OCR(Optical Character Recognition)文字识别是指通过计算机技术将图像的文字换为可编辑和可搜索的文本的过程。VB(Visual Basic)是一种广泛使用的编程语言,可以用于开发各种应用程序。 如果要实现OCR文字识别的源码,我们可以使用VB语言结合一些第三方库和API来完成。以下是一种可能的实现方式: 首先,需要选择一种OCR库,比如Tesseract OCR或Microsoft OCR等。这些库可以识别图像的文字,并将其换为文本。 然后,我们需要将这些OCR库与VB代码集成。在VB,我们可以使用COM组件或外部库的引用来使用OCR库的功能。具体的集成方式会根据所选择的OCR库和其提供的API而有所不同。 在VB,我们可以通过调用OCR库的API来实现文字识别功能。通常,我们需要将待识别的图像以文件或流的形式提供给OCR库,并获取OCR库返回的文本结果。 此外,为了提高识别准确性,我们可能需要进行一些预处理,如图像去噪、图像二值化、图像分割等。这些预处理步骤可以通过VB自身的图像处理功能或者其他第三方图像处理库来实现。 最后,我们可以根据需要将识别结果展示在VB的窗体上,或者保存到文件等。 需要注意的是,OCR文字识别是一个复杂的任务,实现起来需要一定的编程经验和专业知识。在编写源码之前,建议先了解选择的OCR库的文档和示例代码,以便更好地理解其使用方法和接口。 希望以上的回答对您有所帮助! ### 回答2: OCR(Optical Character Recognition,光学字符识别)是一种将印刷的或手写的文本化为机器可识别的文字的技术。下面介绍一种利用VB编程实现OCR文字识别的源码。 首先,我们需要安装Tesseract OCR引擎。Tesseract是一个被广泛使用的OCR引擎,支持多种语言。安装完成后,我们需要在VB环境引入对应的引用库。 接下来,我们可以开始编写VB代码。首先,我们需要创建一个Form窗体,在窗体添加一个“选择图片”按钮和一个用于显示结果的文本框。 在按钮的点击事件,我们需要实现图片选择的逻辑。可以使用VB提供的OpenFileDialog控件进行图片选择,用户选择一张图片后,我们将图片路径保存下来。 接下来,我们需要编写OCR的逻辑。可以创建一个新的函数,传入图片路径作为参数。在函数,我们使用Tesseract OCR引擎对图片进行处理。 VB可以使用Process类来调用系统命令,我们可以通过Process.Start方法来调用Tesseract的命令行接口,并将图片路径作为参数传递给Tesseract。Tesseract会对图片进行OCR处理,并将结果保存在一个文本文件。 接着,我们读取Tesseract生成的文本文件,并将其内容显示在我们之前添加的文本框。可以使用VB提供的StreamReader类来读取文本文件的内容。 最后,我们可以运行我们的程序,点击“选择图片”按钮选择一张图片,程序会自动对图片进行OCR处理,并将识别的文字结果显示在文本框。 这段代码实现了一个简单的VB编程OCR文字识别源码,通过调用Tesseract OCR引擎,我们可以方便地实现文字识别的功能。当然,这只是一个简单的演示示例,实际应用还需要对识别结果进行后处理、优化等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值