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对象很钟爱.

  • 相关阅读:
    C. Shaass and Lights 解析(思維、組合)
    D. Binary String To Subsequences(队列)(贪心)
    CodeForces 1384B2. Koa and the Beach (Hard Version)(贪心)
    CodeForces 1384B1. Koa and the Beach (Easy Version)(搜索)
    CodeForces 1384C. String Transformation 1(贪心)(并查集)
    CodeForces 1384A. Common Prefixes
    POJ-2516 Minimum Cost(最小费用最大流)
    POJ3261-Milk Patterns(后缀数组)
    HDU-1300 Pearls(斜率DP)
    HDU-4528 小明系列故事-捉迷藏(BFS)
  • 原文地址:https://www.cnblogs.com/Apple010/p/2420036.html
Copyright © 2011-2022 走看看