網頁標題: AutoIt!! include 引入其它 au3
 
﹗﹗﹗觀看留言:此文章已經有1則留言 ﹗﹗﹗


Dec 19 Sun 2010 22:09 
[A] AutoIt!! include 引入其它 au3
分享:

1. 善用內建函式庫

事實上 AutoIt 已提供了非常多的現有函式庫,要去調用時,必須知道那些現有函式是存在於哪些函式庫裡。而這些現有函式庫,在安裝時都已安裝於 C:\Program Files\AutoIt3\Include (筆者電腦之作業系統為 XP,AutoIt 版本為 3.3) 。而要調用這些現有的函式庫,可加上這麼一段敘述

#include <函式庫名>

以 Array.au3 為例,若要調用 C:\Program Files\AutoIt3\Include 裡面內附的 Array.au3,則這麼使用

#include
其它的就是看說明書去使用 Array 這個物件(相當於 MFC 的 list-view)。這裡只簡單的加入一些項目後,將它顯示出來。測試用的原始碼如下

#include ; 引入 Array.au3 函式庫
Local $Number[10]
   _ArrayDisplay($Number, "加入前")

For $i=0 To 9
   _ArrayAdd($Number, $i+1)
Next
_ArrayDisplay($Number, "加入後")

執行結果如下

 

對於執行結果與程式碼有興趣者,可先自行研究 Array.au3 之其它函式。

2. 自定義函式庫

之前我們有談到 自定義函式 的問題,一旦自己寫的函式多了起來,而且日後使用到的機會一多的話,這時便可考慮將這些自定義函式寫成一個函式庫的檔案,到時再接著引用。現在假設寫了一個 MyMath.au3,內容如下

; FileName : MyMath.au3

; ======================================
; 1+2+...+N
; ======================================
Func Sum1N($N)
    Dim $i=0, $sum=0
    For $i=1 To $N
        $sum = $sum + $i
    Next
    return $sum
EndFunc

; ======================================
; 1^2 + 2^2 + ... + N^2
; ======================================
Func Sum1N2($N)
    Dim $i=0, $sum=0
    For $i=1 To $N
        $sum = $sum + $i^2
    Next
    return $sum
EndFunc

; ======================================
; Swap
; ======================================
Func Swap(ByRef $a, ByRef $b)
    $t = $a
    $a = $b
    $b = $t
EndFunc

接著若在 Sample.au3 裡面調用這個 MyMath.au3 裡面的 Swap 函式,要注意的是,這裡的 Sample.au3 和 MyMath.au3 是放在同一目錄底下。寫法如下

; FileName: Sample.au3

#include "MyMath.au3"

Dim $a = 5, $b = 10
Swap($a, $b)
MsgBox(0, "a value", "a=" & $a)
MsgBox(0, "b value", "b=" & $b)

在此注意到,include 使用角括號 「#include <...> 」和使用雙引號 「#include "..."」有所不同。使用角括號是直接只到安裝 AutoIt 時的 include 目錄底下(筆者為 C:\Program Files\AutoIt3\Include)去搜尋該 .au3 檔案,調用其函式庫;然而使用雙引號是先去現在的目錄底下搜尋該 au3 檔案。當然也有人直接把自己常用到的函式寫好,檔案直接丟到安裝目錄底下,這樣就一律都用角括號,不過這不是聰明的做法,因為自己寫的可能會有隱藏性問題而不自知。

3. 重覆 include 問題

剛我寫了一個 MyMath.au3,假設我又寫了一個 MyMath2.au3,包含了 MyMath.au3,接著 Sample.au3 又包含了 MyMath.au3 與 MyMath2.au3,關係如下整理

MyMath2.au3 -> 包含 MyMath.au3
Sample.au3 -> 包含 MyMath.au3, MyMath2.au3

這時在執行時便會發出類似這種錯誤訊息:MyMath2.au3 被重覆 include ,原因是因為所有的函式庫一次只能被 include 一次。為避免這種情形發生,於是我們在 MyMath.au3 與 MyMath2.au3 前面一律加上這種東西

#include-once

這樣便可避免掉 MyMath.au3 與 MyMath2.au3 被重覆 include 之問題。


edisonx 發表在 痞客邦 PIXNET 迴響(0) 引用(0) 人氣(126)

http://edisonx.pixnet.net/blog/post/38342789
回 · 發現好東西 autoit 這一篇文章封面


本文張貼者:校校鴿〔張貼時間:民國100年10月10日(星期一)12點02分〕 | 寫信給校校鴿

部落格首頁


學習的故鄉首頁
本站公告:〔您越需要我們,我們就越有創意〕 本站說明書:〔發現故鄉還有改進的地方,請來信告訴原丁們〕
觀察應用學習點數 :〔咱的故鄉有您的參與,會使我們有更大的發揮空間,展現更豐富精彩的學習畫面〕 〔期待藉由無障礙網頁設計,能讓視障小朋友更愛看書、更愛寫作且更愛學習〕:盲用電腦「心得分享」
〔為了讓我們有乾淨的學習環境,請勿任意在本站散播商業廣告與不合法文件或聯結〕:本站宣示