• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
VB“变态”用法之高效字串指针类
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
VB“变态”用法之高效字串指针类
软件发布 VB“变态”用法之高效字串指针类
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 文章首页 >> 编程技术 >> VB & VB.NET教程 >> VB“变态”用法之高效字串指针类

VB“变态”用法之高效字串指针类

添加时间: 2006-2-13 9:05:24  作者: VB教程  阅读次数:64   来源: http://www.d9soft.com

          使用VB里的字串类型String有两大不足:第一、它的分配是由VB运行时控制,我们不能将其分配在指定内存处;第二,任何一次对字串的赋值操作都要进行内存重新分配。要实现高效、灵活的字串处理,我们必须克服这两大不足。

  对于第一个问题,通过修改String变量里放着的BSTR描述符指针可以实现;对于第二个问题,可以用Mid语句(注意是语句而不是函数)来赋值。不详细讲了,直接看下面的这个类:
  

  Option Explicit

  

  '********************************************************

  'clsBSTR.cls

  '作者: 熊超 ID: AdamBear 2002年3月18日

  'http://www.csdn.net/Author/AdamBear

  ' 你可以自由使用本类模块,不过请保留本声明

  '********************************************************

  

  Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

  

  '不要直接对sString赋值(可以用MID语句),将其设为公有仅为提高效率。

  Public sString As String 'BSTR描述符指针

  

  Private pStr As Long 'BSTR地址

  Private nMaxLen As Long 'BSTR最大字节数

  
  '让本字串指向特定地址

  Public Sub Attach(Addr As Long, Optional nLen As Long)

  pStr = Addr

  '修改BSTR描述符指针,使其指向Addr

  CopyMemory ByVal VarPtr(sString), Addr, 4

  

  If IsMissing(nLen) Then Exit Sub

  '设定最大字串字节数

  nMaxLen = nLen

  

  End Sub

  

  '还原本字串原BSTR描述符

  Public Sub Detach()

   CopyMemory ByVal VarPtr(sString), 0&, 4

  End Sub

  

  '让本字串指向源字串

  Public Sub AttachStr(sStr As String)

   Attach StrPtr(sStr), LenB(sStr)

  End Sub

  

  'data为缺省属性

  Public Property Let data(sVal As String)

   Dim c As Long

   c = LenB(sVal)

   '超过最大字串数,抛出错误。

   If c > nMaxLen Then Err.Raise vbObjectError + 3000, "CString::Let Data", "溢出"

   '写字串长度

   CopyMemory ByVal (pStr - 4), c, 4

   '写字串

   Mid(sString, 1) = sVal

  End Property

  

  '可以通过公有变量sString来读字串,效率更高

  Public Property Get data() As String

   data = sString

  End Property

  

  Private Sub Class_Terminate()

   Call Detach

  End Sub

 

上下文章:

 

上一篇文章: VB6在拖托盘中写入应用程序图标 下一篇文章: 提高Visual Basic访问数据库效率

相关文章:

  • 上网高效率 宽带路由优化技巧放送
  • JOB 用法小结
  • 掌握Cisco IOS测试命令的多种用法
  • 超级详细Tcpdump的用法
  • MS Proxy用法(二)

相关软件:

  • 变态驴(EmuleBT) V1.40 Beta 简体中文绿色版
  • FlashBT(变态快车) V0.661 Beta简体中文绿色版
  • 变态驴 V1.40
  • FlashBT(变态快车) V0.661
  • 高效配置与管理Windows 2000(PDG)

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • C++程序设计之四书五经
  • VB入门教程之四
  • VB入门教程之三
  • VB入门教程之二
  • VB入门教程之一
  • 压缩被DBGIRD控件正在使用的MDB数...
  • 谈谈VB的数据库编程方式
  • 在VB中用DAO实现数据库编程
  • Data控件使用有密码的Access数据库
  • 用DAO或ADO正确访问Access 2000

VB & VB.NET教程阅读排行

  • VB入门教程之一
  • VB入门教程之二
  • VB入门教程之三
  • VB入门教程之四
  • 如何编写高质量的VB代码
  • 初学者必知:VB10个小编程
  • VB访问SQL Server数据库技术全揭密
  • 怎样在VB中控制Word?
  • 用DAO或ADO正确访问Access 2000
  • VB中列表框的使用技巧说明

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • 第二章 PowerBuilder 入门之创建新...
  • VC++之List Box/Check List Box控...
  • 第一章 什么是PowerBuilder
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有