51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4312|回复: 24
打印 上一主题 下一主题

[原创] 【在线等待】怎样取这样的数据?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-1-12 16:47:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
总裁(CEO);决策一层(JCZ);人员支持科员(CTOO58896TEERL);孔 向(人员支持(露娜))

总裁(CEO);决策一层(JCZ);行政总监(FCZ);张 无忌(副总裁的职位名称。)

总裁(CEO);决策一层(JCZ);行政总监(FCZ);财务经理(CWC);财务处科员(CWY);杨 舒鑫

上面这三组数据,怎样取每个数据中的人名呢?请各位大侠指教一下,多谢!!!

[ 本帖最后由 zhengpeipei 于 2010-1-12 16:59 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-1-12 16:57:26 | 只看该作者
用Array=split(a,“;”)分割每个数据后怎样取出最后一个值?最后一个值取出来后怎样取人名呢?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-1-12 16:58:29 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-1-12 16:59:03 | 只看该作者
在线等待啊
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-1-12 17:42:06 | 只看该作者
str="孔 向(人员支持(露娜))"
i= RegExpTest ("\(",str)
msgbox left(str,i)

Function RegExpTest(patrn, strng)
  Dim regEx, Match, Matches     
  Set regEx = New RegExp        
  regEx.Pattern = patrn         
  regEx.IgnoreCase = True         
  regEx.Global = True         
  Set Matches = regEx.Execute (strng)
  If  Matches.count=0Then
    RegExpTest=len(strng)
        else
        RegExpTest=Matches(0).FirstIndex
  End If
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-1-13 09:10:23 | 只看该作者
多谢wugecat提供的代码,我试试。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2010-1-13 09:49:29 | 只看该作者
wugecat的头象是大剑吗?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-1-13 10:29:13 | 只看该作者

回复 7# 的帖子

呵呵,是啊.....我很喜欢大剑
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-1-13 12:58:36 | 只看该作者
不知道现在大剑的第二季出来了没有,漫画倒是早就有了。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2010-1-13 13:43:38 | 只看该作者

回复wugecat的帖子

用Array=split(a,“;”)分割每个数据后怎样取出最后一个值?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-1-13 13:50:52 | 只看该作者

回复 10# 的帖子

Array=split(a,“;”)
i=ubound(Array)
str=Array(i)
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2010-1-13 14:59:32 | 只看该作者

    不用spilt函数获取字符中姓名的方法(自己写的,仅供学习交流)

    '以"总裁(CEO);决策一层(JCZ);人员支持科员(CTOO58896TEERL);孔 向(人员支持(露娜))"为例
    str="总裁(CEO);决策一层(JCZ);人员支持科员(CTOO58896TEERL);孔 向(人员支持(露娜))"
    Call  getname(str)                           
    Public function getname(str)
    strlength=len(str)                              '获取字符串str的长度
    str1length=InStrRev(str,";",strlength)             '取右边第一次出现分号的位置
    strname=mid(str,str1length+1,len(str))           '取从右边第一次出现分号后面的所有字符并将值赋给strname ,即:孔 向(人员支持(露娜))
    str2length=InStr(1,strname,"(")                  '取strname中第一次出现左括号的位置
    If str2length>0 Then                          '如果strname中存在左括号,则取左括号前面的字符,并弹出窗口显示该值
    getname=mid (strname,1,str2length-1)
    msgbox getname
    else                                     '如果strname中不存在左括号,则取整个字符,并弹出窗口显示该值
    getname=strname
    msgbox getname                 
    End If
    End Function

    'getname就是你想要的名字
    '.另外因为这里是测试交流论坛,所以在写的代码中最好加上详细的注释,这样才能让新人也很容易看懂

    [ 本帖最后由 feiyunkai 于 2010-1-13 15:06 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2010-1-13 15:35:42 | 只看该作者
    str1 = "总裁(CEO);决策一层(JCZ);人员支持科员(CTOO58896TEERL);孔 向(人员支持(露娜))"
    str2 = "总裁(CEO);决策一层(JCZ);行政总监(FCZ);张 无忌(副总裁的职位名称。)"
    str3 = "总裁(CEO);决策一层(JCZ);行政总监(FCZ);财务经理(CWC);财务处科员(CWY);杨 舒鑫"

    Set Re = New RegExp
    strReg = ".*;(.*)"

    WScript.Echo FindName(strReg, str1) '将str1换为你想要取姓名的字符串就可以了

    Set Re = Nothing

    Function FindName(strReg, strString)
            strReg2 = "(.*)\(.*"       
            Re.Pattern = strReg
            Re.Global = True       
            strName = Re.Replace(strString, "$1")

            If InStr(1, strName, "(", vbTextCompare) <> 0 Then
                    strName = FindName(strReg2, strName)
            End If               
            FindName = strName
    End Function

    什么也不说了,也没有可以多说的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2010-1-13 16:41:25 | 只看该作者

    回复 13# 的帖子

    原来还可以这样的..学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2010-1-13 16:50:39 | 只看该作者
    我试了好几次才弄成功,唉,老了。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2010-1-13 17:10:52 | 只看该作者
    你的那个$1就相当于"孔 向(人员支持(露娜))"么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2010-1-13 18:17:23 | 只看该作者
    strReg = ".*;(.*)"

    $1 相当于满足 strReg 里面匹配到的第一个词,在这里就是 (.*)

    因为正则匹配是从后面来的,所以说,.*;就是匹配最后一个;后面的 如“孔 向(人员支持(露娜))”

    然后判断里面有无"(", 如果有,继续匹配,取出姓名
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2010-1-15 09:13:42 | 只看该作者
    学习了,真长见识啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    19#
    发表于 2010-1-22 17:02:34 | 只看该作者

    回复 13# 的帖子

    在QTP里运行你的脚本报错缺少WScript对象,保存为VBS文件也报错,错误的参数个数
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2015-12-2 10:12
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    20#
    发表于 2010-1-26 14:17:53 | 只看该作者
    值得学习!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-16 06:29 , Processed in 0.084380 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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