2 回答

TA貢獻1946條經(jīng)驗 獲得超4個贊
在access中,我們可以很方便地使用Function聲明自定義函數(shù)(即過程),并在各處靈活引用它。
1. 先看一下access開發(fā)人員參考中關(guān)于聲明函數(shù)的文檔
聲明 Function 過程的名稱,參數(shù)以及構(gòu)成其主體的代碼。
語法
[Public | Private | Friend] [Static]
Function name [(arglist)] [As type]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]
End Function
Function 語句的語法包含下面部分:
部分描述
Public
可選的。表示所有模塊的所有其它過程都可訪問這個 Function 過程。如果是在包含
Option Private 的模塊中使用,則這個過程在該工程外是不可使用的。
Private
可選的。表示只有包含其聲明的模塊的其它過程可以訪問該 Function 過程。
Friend
可選的。只能在類模塊中使用。表示該 Function 過程在整個工程中都是可見的,但對于對象實例的控制者是不可見的。
Static
可選的。表示在調(diào)用之間將保留 Function 過程的局部變量值。Static 屬性對在該 Function
外聲明的變量不會產(chǎn)生影響,即使過程中也使用了這些變量。
name
必需的。Function 的名稱;遵循標準的變量命名約定。
arglist
可選的。代表在調(diào)用時要傳遞給 Function 過程的參數(shù)變量列表。多個變量應(yīng)用逗號隔開。
type
可選的。Function 過程的返回值的數(shù)據(jù)類型,可以是 Byte、 Boolean 、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(除定長)、Object、Variant或任何用戶定義類型。
statements
可選的。在 Function 過程中執(zhí)行的任何語句組。
expression
可選的。Function 的返回值。
其中的 arglist 參數(shù)的語法以及語法各個部分如下:
[Optional] [ByVal | ByRef] [ParamArray]
varname[( )] [As type] [=
defaultvalue]
部分描述
Optional
可選的。表示參數(shù)不是必需的。如果使用了該選項,則 arglist 中的后續(xù)參數(shù)都必須是可選的,而且必須都使用 Optional 關(guān)鍵字聲明。如果使用了 ParamArray,則任何參數(shù)都不能使用 Optional 聲明。
ByVal
可選的。表示該參數(shù)按值傳遞。
ByRef
可選的。表示該參數(shù)按地址傳遞。ByRef 是 Visual Basic 的缺省選項。
ParamArray
可選的。只用于 arglist 的最后一個參數(shù),指明最后這個參數(shù)是一個 Variant 元素的 Optional 數(shù)組。使用 ParamArray 關(guān)鍵字可以提供任意數(shù)目的參數(shù)。ParamArray
關(guān)鍵字不能與 ByVal,ByRef,或 Optional 一起使用。
varname
必需的。代表參數(shù)的變量的名稱;遵循標準的變量命名約定。
type
可選的。傳遞給該過程的參數(shù)的數(shù)據(jù)類型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持變長)、Object 或 Variant。如果參數(shù)不是 Optional,則也可以是用戶定義類型,或?qū)ο箢愋汀?nbsp;
defaultvalue
可選的。任何常數(shù)或常數(shù)表達式。只對于 Optional 參數(shù)時是合法的。如果類型為 Object,則顯式缺省值只能是 Nothing。
說明
如果沒有使用 Public、Private 或 Friend 顯式指定,則 Function 過程缺省為公用。如果沒有使用 Static,則局部變量的值在調(diào)用之后不會保留。Friend 關(guān)鍵字只能在類模塊中使用。但 Friend 過程可以被工程的任何模塊中的過程訪問。Friend 過程不會在其父類的類型庫中出現(xiàn),且 Friend 過程不能被后期綁定。
Function 過程可以是遞歸的;也就是說,該過程可以調(diào)用自己來完成某個特定的任務(wù)。不過,遞歸可能會導(dǎo)致堆棧上溢。通常 Static 關(guān)鍵字和遞歸的 Function 過程不在一起使用。
所有的可執(zhí)行代碼都必須屬于某個過程。不能在另外的 Function、Sub 或 Property 過程中定義 Function 過程。
Exit Function 語句使執(zhí)行立即從一個 Function 過程中退出。程序接著從調(diào)用該 Function 過程的語句之后的語句執(zhí)行。在 Function 過程的任何位置都可以有 Exit Function 語句。
Function 過程與 Sub 過程的相似之處是: Function 過程是一個可以獲取參數(shù),執(zhí)行一系列語句,以及改變其參數(shù)值的獨立過程,而與子過程不同的是:當要使用該函數(shù)的返回值時,可以在表達式的右邊使用 Function 過程,這與內(nèi)部函數(shù),諸如 Sqr、Cos 或 Chr 的使用方式一樣。
在表達式中,可以通過使用函數(shù)名,并在其后用圓括號給出相應(yīng)的參數(shù)列表來調(diào)用一個 Function 過程。
要從函數(shù)返回一個值,只需將該值賦給函數(shù)名。在過程的任意位置都可以出現(xiàn)這種賦值。如果沒有對 name 賦值,則過程將返回一個缺省值:數(shù)值函數(shù)返回 0,字符串函數(shù)返回一個零長度字符串 (""),Variant 函數(shù)則返回 Empty。如果在返回對象引用的 Function 過程中沒有將對象引用賦給 name (通過 Set),則函數(shù)返回 Nothing。
2. 接下來以示例來看使用方法
給一個名為 BinarySearch 的函數(shù)賦返回值。在這個示例中,將 False 賦給了該函數(shù)名,表示沒有找到某個值。
Function BinarySearch(. . .) As Boolean
. . .
'值未找到,返回一個 False 值。
If lower > upper Then
BinarySearch = False
Exit Function
End If
. . .
End Function
3. 注意
在 Function 過程中使用的變量分為兩類:一類是在過程內(nèi)顯式聲明的,另一類則不是。在過程內(nèi)顯式聲明的變量(使用 Dim 或等效方法)都是局部變量。對于那些沒有在過程中顯式聲明的變量,除非它們在該過程外更高級別的位置有顯示地聲明,否則也是局部的。

TA貢獻1844條經(jīng)驗 獲得超8個贊
C語言判斷文件是否存在
用函數(shù)access,頭文件是io.h,原型:
int access(const char *filename, int amode);
amode參數(shù)為0時表示檢查文件的存在性,如果文件存在,返回0,不存在,返回-1。
這個函數(shù)還可以檢查其它文件屬性:
06 檢查讀寫權(quán)限
04 檢查讀權(quán)限
02 檢查寫權(quán)限
01 檢查執(zhí)行權(quán)限
00 檢查文件的存在性
在UNIX和VC下實驗成功。
好處是 fopen(..,"r")不好,當無讀權(quán)限時一不行了。
而這個就算這個文件沒有讀權(quán)限,也可以判斷這個文件存在于否
存在返回0,不存在返回-1
#include <stdio.h>
int main()
{
printf ("%d",access("111",0));
}
- 2 回答
- 0 關(guān)注
- 1315 瀏覽
添加回答
舉報