`
eimhee
  • 浏览: 2115680 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何取得文本框中包含指定字符串的行

 
阅读更多

      文本框属性为允许多行显示时,由于是软回车实现的分行,无法用SPLIT(TEXT1.TEXT,VBCRLF)准确地取出指定行的内容。本文利用SENDMESSAGE 系列函数,通过发送文本框消息,实现了获取包含指定字符串的行,并演示了如何获取文本框中文本总行数和任意指定行的文本内容。

'add a textbox with "multiline=true","scrollbars=2".

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
Private Declare Function SendMessageByNum Lib "USER32" _
    Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SendMessageByString Lib "USER32" Alias _
    "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam _
     As Long, ByVal lParam As String) As Long

Private Const EM_LINEINDEX = &HBB
Private Const EM_GETLINECOUNT = &HBA
Private Const EM_GETLINE = &HC4
Private Const EM_LINELENGTH = &HC1

Function GetLineText(ByVal txtbox As TextBox, ByVal LineIndex As Long) As String '返回指定行的内容
  Dim lc As Long, linechar As Long
  linechar = SendMessageByNum(txtbox.hWnd, EM_LINEINDEX, LineIndex, 0)
  lc = SendMessageByNum(txtbox.hWnd, EM_LINELENGTH, linechar, 0) + 1
  GetLineText = String(lc + 2, 0)
  Mid(GetLineText, 1, 1) = Chr(lc And &HFF)
  Mid(GetLineText, 2, 1) = Chr(lc \ &H100)
  lc = SendMessageByString(txtbox.hWnd, EM_GETLINE, LineIndex, GetLineText)
  GetLineText = Left(GetLineText, lc)
End Function

 

Function getlinewithstr(ByVal txtbox As TextBox, ByVal mystr As String) As String
Dim linecount As Long, temp() As String, i As Long
linecount = SendMessage(txtbox.hWnd, EM_GETLINECOUNT, 0, 0) '返回行数
ReDim temp(1 To linecount)
For i = 1 To linecount
temp(i) = "第" & i & "行:" & GetLineText(txtbox, i - 1) '添加行号
Next
getlinewithstr = Join(Filter(temp, mystr), vbCrLf) ' 字符串过滤
Erase temp
End Function

Private Sub Command1_Click()
MsgBox getlinewithstr(Text1, "CSDN"), 0, "包含“CSDN”的行"
End Sub

Private Sub Form_Load()
Dim a(25) As String, i As Long
For i = 0 To 25
a(i) = String(50, Chr(i + 97))
Next
Text1.Text = Join(a, "CSDN")

End Sub

分享到:
评论

相关推荐

    python 读取txt 批量修改指定指定字符串

    # 2.1创建标签和单行文本框,包含2个标签和2个单行文本框 # 2.2创建按钮和按钮对应函数 注意: 由于python读取格式的问题,不管用界面直接运行还是修改后用函数运行,复制的文件地址的时候需要将‘\’改为‘/’。 ...

    登录注册彩色验证码刷新

    原理:随机生成一个包含字符串的图片,用户读取图片中的字符信息,将其输入到指定文本框中,随着登录或者注册功能的提交将其传递给服务器进行验证处理。 2.作用:防止通过程序进行批量注册或者暴力破解程序登录 3....

    实验3 JavaScript编程.doc

    5.设计一个网页,输入一串用英文逗号分隔的数字字符串。编写程序,输出找出该组数中的最大、最小值、和 。并按从大到小排序后的输出结果(以逗号分隔)。 6. 要求用户在文本框中年份,点击判断按钮,用alert函数输出...

    VBScript 语言参考中文手册CHM

    StrReverse 函数 返回一字符串,其中字符的顺序与指定的字符串中的顺序相反。 Sub 语句 声明形成 Sub 过程体的名称、参数和代码。 减法运算符 (-) 求两数之差,或表示某数值表达式的相反数。 语法错误 VBScript ...

    VBSCRIPT中文手册

    StrReverse 函数 返回一字符串,其中字符的顺序与指定的字符串中的顺序相反。 Sub 语句 声明形成 Sub 过程体的名称、参数和代码。 减法运算符 (-) 求两数之差,或表示某数值表达式的相反数。 Tan 函数 返回角度的...

    vb Script参考文档

    StrReverse 函数 返回一字符串,其中字符的顺序与指定的字符串中的顺序相反。 Sub 语句 声明形成 Sub 过程体的名称、参数和代码。 减法运算符 (-) 求两数之差,或表示某数值表达式的相反数。 Tan 函数 返回角度的...

    VBScript 语言参考

    StrReverse 函数 返回一字符串,其中字符的顺序与指定的字符串中的顺序相反。 Sub 语句 声明形成 Sub 过程体的名称、参数和代码。 减法运算符 (-) 求两数之差,或表示某数值表达式的相反数。 语法错误 VBScript ...

    VBSCRIP5 -ASP用法详解

    StrReverse 函数 返回一字符串,其中字符的顺序与指定的字符串中的顺序相反。 Sub 语句 声明形成 Sub 过程体的名称、参数和代码。 减法运算符 (-) 求两数之差,或表示某数值表达式的相反数。 语法错误 VBScript ...

    delphi 开发经验技巧宝典源码

    0174 返回指定字符串的起始位置 113 0175 获得汉字的拼音简码 113 0176 如何将字符串翻转 114 0177 截取指定位置的字符串 115 0178 清除字符串中指定的字符 115 0179 如何实现文本的加密与解密 116 0180...

    delphi 开发经验技巧宝典源码06

    0174 返回指定字符串的起始位置 113 0175 获得汉字的拼音简码 113 0176 如何将字符串翻转 114 0177 截取指定位置的字符串 115 0178 清除字符串中指定的字符 115 0179 如何实现文本的加密与解密 116 0180...

    Windows下文件夹变化情况监测软件

    用户可以根据这些信息来判断此文件的修改情况,并且软件还提供了快速过滤功能供用户选择使用,您可以在工具栏下添加的文本框中键入一个字符串,此软件将立即过滤文件夹更改表,仅显示包含您键入的字符串的项目,是一...

    c# 加密和解密相关代码

    在字符串中查找指定字符时,可以先将字符串显示在richTextBox 控件中,然后利用richTextBox 类的Find 方法在该控件中查找指定字符。在字符串中查找指定字符的代码如下: 第19章 加密与解密技术 833 M_int_index = ...

    c# 截取指定窗口图 根据指定坐标

    USB硬件模拟键鼠,使用系统自带键鼠驱动 【工具说明】 c#.net 3.5 版本 需要Win7 系统或者 XP安装... 文本框输入游戏窗口包含的字符串,下面设置好参数。点击截取按钮后,激活游戏窗口使位置为最前。即可成功截取。

    ktane-DynamicMissionGenerator:动态任务生成器,可保持通话状态,无人爆炸

    要开始任务,请在文本框中输入任务字符串,然后按Enter或单击“运行”按钮。任务字符串包含以下标记的组合,并以空格分隔。 [number]*[module ID] –添加指定类型的模块的指定编号。为了相容性, ;可以代替* 。可以...

    PHP开发实战1200例源码

    实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式 147 实例116 验证电话号码的格式是否正确 147 实例117 验证Email地址格式是否正确 148 实例118 验证IP地址是否有效 149 实例119 统计关键字的查询结果 150...

    Unreal的控制台命令参数合集

    Exec的命令是基于字符串的命令,您可以在游戏或编辑器中运行。他们也被称为控制台命令 ,因为它们通常在一个控制台窗口中运行。 要在游戏中执行命令,或?,弹出控制台,键入命令,然后按Enter。这些命令不区分大小写...

    ASP200问.EXE

    19.如何判断字符串是否以指定字符串开头或结尾 20.如何判断字符是否是英文字符 21.如何检测字符串出现的次数 22.如何过滤字符串中的HTML代码 23.如何截取字符串 24.如何实现字符串和数组的转换 25.如何实现字符大小...

Global site tag (gtag.js) - Google Analytics