zoukankan      html  css  js  c++  java
  • VBSDictionary

    学习QTP,VBS脚本很重要,但是在学习zzxxbb大神的博客时,发现dictionary讲解不够详细,我就顺便寻思了一下,找了上善若水的博客,先搬过来,慢慢补充。

    vbs中,dictionary对象是我非常钟爱的一个对象,

    这篇文章不是详解dictionary的,只是说我用它的一些心得:

    set d=createobject("scripting.dictionary")

    d.add key,item

    它用起来相当方便,

    尤其对于储存,查找数据。

    举个例子:

    d.add t1,f1

    d.add t2,f2

    d.add t3,f3

    d.add t4,f4

    ........

    t=d.keys

    f=d.items

    就这么几句,就构建了两个一维数组,

    从而不用再去构建一个二维数组了,

    在对f,t进行处理,非常的方便.

    dictionary中的key是不能重复的,

    虽然这样,

    我们可以用一个循环,把key设为数字,循环一次就增加一,

    举个例子,将每个磁盘盘符赋值给disk(i):

    set fso=createobject("scripting.filesystemobject")

    set d=createobejct("scripting.dictionary")

    set ds=fso.drivers

    for each di in ds

    d.add i,di.driveletter

    i=i+1

    next

    disk=d.items

    就这样就完事了!

    如果再加一段,disk的数量有所增加(注意哈,这就是u盘,移动磁盘或手机卡之类的),

    就可以调用dos的xcopy进行拷贝(这儿用xcopy,一是因为方便,二是因为不怕错误),

    如过被拔了,就会检测不到那个盘符,

    又可以用d.remove将它移除,

    如果让以上的程序循环隐藏执行,并且加成开机自动启动,

    这vbs的功能就是…… 呵呵!

    有时,处理文件(夹)用上dictionary也是非常的方便

    所以,用dictionary来处理文件,有时会相当的方便

    当然,用dictionary来处理数学问题,也会相当的方便:

    set d=createobject("scripting.dictionary")
    a=inputbox("输入一个数字")


    if not isnumeric(a) then
    msgbox "你输入的不是数字"
    else

    a_0=a
    b=a-1

    for i=2 to b
    do while a_0 mod i = 0
    t=t+1
    d.add t,i
    a_0=a_0/i
    loop
    next

    ar=d.items
    s=join(ar,"*")
    if s="" then
    s="不能分解"
    else s=a+"="+s
    end if

    msgbox s

    end if

    这是一段分解质因数的vbs,

    每检测到一个能被整除的因数后,

    就直接d.add给加上,这儿也用了让key不断加1的方法,

    这样就会使逻辑变得很清晰,

    当处理稍微复杂一点的问题是,清晰的逻辑是相当重要的.

    再比如说:

    一堆钢管,2米的5根,3米的4根,4.6米的4根,.............要求详细列出数据并求和,

    d.add 2,5

    d.add 3,4

    d.add 4.6,4

    ar=d.keys

    arr=d.items

    for i=0 to d.count-1

    s=s&ar(i)&"          "&arr(i)&"             "&ar(i)*arr(i)&chr(13)

    next

    msgbox s

    这样逻辑显得很清晰,虽然这只是一个简单的例子.

    如果复杂一点,这个清晰的逻辑就会帮助你更好的解决问题.

    所以,我对dictionary对象很钟爱.

  • 相关阅读:
    LoadRunner测试结果分析
    安装LoadRunner时提示缺少vc2005_sp1_with_atl_fix_redist解决方案
    LoadRunner 11 安装及破解
    android批量文件上传(android批量图片上传)
    nginx优化配置
    redis节点管理-节点的移除
    jQuery获取表格隐藏域与ajax请求数据结合显示详情
    el表达式运算符
    EL表达式中获取list长度(JSTL函数用法)
    SQL之case when then用法(用于分类统计)
  • 原文地址:https://www.cnblogs.com/Apple010/p/2420036.html
Copyright © 2011-2022 走看看