51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1256|回复: 4
打印 上一主题 下一主题

[原创] QTP中对textstream的操作

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-10-23 00:14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想要脚本实现以下的功能:找到文本中以abcd开头的长度为n的字符串,并且将其删除。

请各位大侠指点!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-10-23 09:28:17 | 只看该作者
使用split(exp,delimiter)分割textStream(arr),然后将分割的字符头去掉n位(不足N的,和text开头、结尾是abcd的需要考虑),然后join(arr)字符
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-10-23 23:27:27 | 只看该作者
回复 2# xjwldlover


    能否把详细的函数应该如何使用帮忙写一下。

  是不是arr就是"abcd",split(exp,delimeter)里的exp又应该是什么?delimeter就是n的值吗?join(arr)又应该如何使用?

  另外把这个以"abcd"开头的长度为n的字符串从文本文件中删除应该如何实现?

   在此之前,我定义了如下一些对象:
  Dim FS, File1, File1Path
   File1Path = "C:/aa.txt"
   Set FS = CreateObject(File.System.Scripting)
   Set File1 = FS.GetFile(File1Path).OpenAsTextStream
   目的就是为了实现在File1里找到以"abcd"开头的长度为n的字符串,并且将其删除。这个字符串的特点是以abcd开头且长度为n,但是abcd之后的其余字符在每次文本文件生成后是变化的,不是固定的。

  非常感谢!!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2012-10-24 09:16:47 | 只看该作者
你看下,如果有错误的地方自己修改一下

  1. str = "abcd1234567890abcdjgls3213212321aab3213212cdabcdabcdsabcdabcd"
  2. WScript.Echo MoveStr(str,"abcd",8,0)
  3. '函数功能:删除制定字符后的N位字符(不足N位,就有几位删几位)
  4. 'Input:strExp-待修改字符串;strDelimiter-分隔符;strMoveLen-删除位数
  5. 'output:更新后的字符串
  6. Function MoveStr(byval strExp,byval strDelimiter,byval strMoveLen,byval blnContain)
  7.     Dim strArr
  8. '   使用分隔符strDelimiter分解文本strExp
  9.     strArr = Split(strExp,strDelimiter)
  10.    
  11.     Dim resDelimiter
  12.     If blnContain Then
  13.         resDelimiter = ""
  14.     Else
  15.         resDelimiter = strDelimiter
  16.     End If
  17.    
  18.     Dim i
  19.     For i = 0 To UBound(strArr)
  20. '       更新取被分解的数组元素str,删除N位之后的字符串
  21.         strArr(i) = Mid(strArr(i),strMoveLen+1-Len(strDelimiter),Len(strArr(i)))
  22.     Next
  23. '    重新使用原来的分隔符组合该串
  24.     MoveStr = Join(strArr,resDelimiter)
  25. End Function
复制代码
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    5#
    发表于 2012-10-25 09:33:05 | 只看该作者
    回复 1# alex_topgun


        需要这么麻烦么?
    每个判断下是否符合条件应该就行了吧。如:   
    str = "abcde123456789"
    if Len(str) = n and left(str,5) = "abcde" Then
         '删除动作
    End if
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-16 18:46 , Processed in 0.068549 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表