最新更新 sitemap 网站制作设计本站搜索
网页设计
国外网站 韩国网站 个人主页 手提袋设计 CSS 网页特效 平面设计 网站设计 Flash CMS技巧 服装网站 php教程 photoshop 画册 服务器选用 数据库 Office
虚拟主机 域名注册 云主机 网页设计 客服QQ:8208442
当前位置:首页 > 编程开发 > VB开发

VB中快速读取TextBox第N行的数据

日期:09-07    来源:中国设计秀    作者:cnwebshow.com

TextBox 是以 vbCr+vbLf 为分行符号, 如果我们要逐一读取 TextBox 每一行, 无非是寻找 vbCr+vbLf 的所在位置, 然后取出每一行的字串, 不过这个方法不快,而且如果我们要读取第 N 行数据,还是要从第 1、2、…N-1 行逐一读起,实在麻烦。 还好 Windows API 提供有读取 TextBox 第 N 行的功能, 细节如下: EyV中国设计秀
EyV中国设计秀
1、API 的声明: EyV中国设计秀
EyV中国设计秀
Public Const EM_GETLINE = &HC4 EyV中国设计秀
Public Const EM_LINELENGTH = &HC1 EyV中国设计秀
Public Const EM_LINEINDEX = &HBB EyV中国设计秀
EyV中国设计秀
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long EyV中国设计秀
EyV中国设计秀
Private Declare Sub RtlMoveMemory Lib "KERNEL32" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long) EyV中国设计秀
EyV中国设计秀
2. 程序范例: EyV中国设计秀
EyV中国设计秀
EyV中国设计秀
Sub TB_GetLine(ByVal hWnd As Long, ByVal whichLine As Long, Line As String) EyV中国设计秀
EyV中国设计秀
Dim length As Long, bArr() As Byte, bArr2() As Byte, lc As Long EyV中国设计秀
EyV中国设计秀
lc = SendMessage(hWnd, EM_LINEINDEX, whichLine, ByVal 0&) EyV中国设计秀
EyV中国设计秀
length = SendMessage(hWnd, EM_LINELENGTH, lc, ByVal 0&) EyV中国设计秀
EyV中国设计秀
If length > 0 Then EyV中国设计秀
ReDim bArr(length + 1) As Byte,bArr2(length - 1) As Byte EyV中国设计秀
Call RtlMoveMemory(bArr(0), length, 2) '准备一个存储器,传递消息之前先在存储器的前两个字节填入存储器的长度 EyV中国设计秀
Call SendMessage(hWnd, EM_GETLINE,whichLine, bArr(0)) EyV中国设计秀
Call RtlMoveMemory(bArr2(0), bArr(0), length) EyV中国设计秀
Line = StrConv(bArr2, vbUnicode) EyV中国设计秀
Else EyV中国设计秀
Line = "" EyV中国设计秀
End If EyV中国设计秀
EyV中国设计秀
End Sub EyV中国设计秀
EyV中国设计秀
EyV中国设计秀
' 假设要读取 Text1 第 5 行的数据

本文引用地址:/bc/article_61289.html
网站地图 | 关于我们 | 联系我们 | 网站建设 | 广告服务 | 版权声明 | 免责声明