罗小叉吧 关注:111贴子:19,093
  • 13回复贴,共1

VBS系列课程--10

只看楼主收藏回复

一楼给我爱的罗小叉同学。


1楼2010-09-06 17:34回复
    今天是9月6号,开始继续更新VBS教程。
    上次因为一些私人原因,在6月21日的时候,发完第9节我就没再写了,那么,现在事情已经解决完毕,就开始继续写了。
    这也算是我的作品之一吧,我不希望我任何的一部作品会TJ,无论有没有人欣赏,我都会一天一天的把它写下去。


    2楼2010-09-06 17:36
    回复
      上节课说的是sub过程,那么这节课就说说function函数吧。
      你可能会发现,我在上面这句话中,对sub和function用的名词不一样,我说的是sub过程和function函数,一个是过程,一个是函数,但是,从根本上来说,这2个都是过程,但它们也有一点的区别,即sub无返回值,而function有返回值,所以sub也是无返回值的过程,function是有返回值的过程,我习惯把function过程称为function函数。
      Function函数的基本语法格式为:
      Function 函数名 (形式参数)
      命令
      End function
      Function函数的调用格式为:
      函数名 (实际参数)
      Function函数的基本语法和调用格式,跟sub过程的都差不多的。
      好了,下面我们还是来看代码吧,这是一个在VBS教学中非常经典的例子--求最大公约数,那么我这里就老调重弹一下吧:


      3楼2010-09-06 17:36
      回复
        ------------------------vbs_5.htm------------------------
        <html>
        <head>
        <title>VBS系列课程--使用function函数求最大公约数</title>
        <script language="vbscript">
        function common(x,y)
        dim t
        '开始do...loop循环
        do while y<>0
        t=x mod y
        x=y
        y=t
        loop
        '结束do...loop循环
        common=x     '将common函数的返回值设为x的值
        end function
        sub button1_onclick()
        dim a,b,c
        a=form1.text1.value
        b=form1.text2.value
        c=common(a,b)     '使用common函数计算c的值
        form1.text3.value=c
        end sub
        </script>
        </head>
        <body>
        <form name="form1">
        请输入第一个整数:
        <input type="text" name="text1" size="20">
        <br>
        请输入第二个整数:
        <input type="text" name="text2" size="20">
        <br>
        求出最大公约数为:
        <input type="text" name="text3" size="20">
        <br>
        <br>
        <input type="button" name="button1" value="开始计算">
        </form>
        </body>
        </html>
        看看效果:
        


        4楼2010-09-06 17:39
        回复
          我输入两个整数,求它们的最大公约数:

          


          5楼2010-09-06 17:42
          回复
            好了,我们的脚本成功运行。
            那么,看完代码之后呢,我再说几点关于function函数的注意事项。
            因为function函数一般都是有返回值的,那么我们可以直接使function函数名出现在等式右方,即其可以被用在赋值语句里,比如:
            Function common (x,y)     ‘声明一个名为common的function函数
            … …
            C=common(a,b)            ‘将函数的返回值赋给c
            那么,从上面的例子中我们可以看到,function函数是可以出现是赋值语句的右边的,其实它也可以出现在赋值语句的左边,比如:
            Function common (x,y)     ‘声明一个名为common的function函数
            dim r
            do while y<>0
            r=x mod y
            x=y
            y=r
            loop
            common=x                 ‘将x的值设为common函数的返回值
            另外,我们一定要记得的是,function函数是有返回值的,那么,我们可不可以定义一个没有返回值的function函数呢?
            答案是肯定的,我们完全可以定义一个表面上看起来没有返回值的function函数,比如:
            Function common (x,y)     ‘声明一个名为common的function函数
            dim r
            do while y<>0
            r=x mod y
            x=y
            y=r
            loop
            common=x                 ‘将x的值设为common函数的返回值
            这段代码中,如果我们不写最后一句“common=x”,那么这个名为common的function函数则在表面上看起来是没有返回值的。
            但是,请注意我上面的用词,我说的是在表面上看起来没有返回值,那么实际上呢?
            实际上是不违反function函数的定义的,也就是说,实际上是有返回值的。
            像上边这段代码中,如果我不写最后那句代码,也就是说我没有给这个函数定义它的返回值,那么这个时候,function函数将会返回一个默认值:
            对于数值型函数,返回0;
            对于字符串型函数,返回空字符串,即””。
            好了,对于VBS中最重要的2个过程- -sub过程和function函数,我已经讲的差不多了,在下一节,我会单独的开一节课,来说这两个过程的访问权限的问题。
            完毕。


            6楼2010-09-06 17:43
            回复
              杀花儿~


              7楼2010-09-06 21:34
              回复
                回复:7楼


                8楼2010-09-06 21:35
                回复
                  回复:8楼
                  为毛没人抢沙发哟~
                  哈哈。


                  9楼2010-09-06 21:40
                  回复
                    回复:9楼
                    这种纯技术性的东西,没几个人看的。


                    10楼2010-09-06 21:41
                    回复
                      回复:10楼
                      就不发呗~
                      嘿嘿。你发水帖我也给加精~


                      11楼2010-09-06 21:48
                      回复
                        回复:11楼
                        哈哈,给叉吧发发广告嘛。


                        12楼2010-09-06 22:00
                        回复
                          嘿嘿嘿嘿嘿,怎么说没人看。。我来拉!
                          贴吧里从第十课开始的额!不过我已经去你博客找到了从开场篇到21的。。。
                          哇哈哈哈哈。。
                          收藏了,
                          谢谢楼主哈
                          


                          IP属地:贵州13楼2010-09-17 21:49
                          回复
                            回复:13楼
                            嗯,呵呵


                            14楼2010-09-17 22:11
                            回复