熊芳芳
摘要:掌握VFP常用函數(shù)使用技巧對(duì)學(xué)生非常重要,在二級(jí)考試中,函數(shù)使用頻繁,貫穿整個(gè)考試,不論是表創(chuàng)建的索引建立、還是查詢(xún)的字段構(gòu)造以及表單控件的函數(shù)表示,都離不開(kāi)函數(shù)的使用。為了讓學(xué)生理清這部分思路,該文從常用函數(shù)幾個(gè)類(lèi)型著手,分別從格式、功能和舉例方面詳細(xì)闡述,從而幫助學(xué)生學(xué)習(xí)鞏固,從而提高VFP應(yīng)用水平。
關(guān)鍵詞:VFP; 函數(shù);技巧
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)06-0189-02
函數(shù)是一段程序代碼,用來(lái)進(jìn)行一些特定的數(shù)據(jù)運(yùn)算或轉(zhuǎn)換功能。按函數(shù)運(yùn)算的規(guī)則不同及函數(shù)處理對(duì)象和結(jié)果的數(shù)據(jù)類(lèi)型差異,可將函數(shù)分為以下幾類(lèi):
分別是處理數(shù)字型數(shù)據(jù)的數(shù)值型函數(shù)、處理字符型數(shù)據(jù)的字符型函數(shù)、處理日期型數(shù)據(jù)的日期型函數(shù)和處理需要轉(zhuǎn)換統(tǒng)一類(lèi)型的數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)等。
函數(shù)由函數(shù)名與自變量?jī)刹糠纸M成。使用函數(shù)的一般格式:函數(shù)名(自變量)。函數(shù)名是Visual FoxPro保留字,應(yīng)藍(lán)色顯示。自變量以圓括號(hào)形式表示,多個(gè)自變量以逗號(hào)隔開(kāi)。自變量形式多樣,可以是常量、變量、函數(shù)或表達(dá)式等。
計(jì)算機(jī)二級(jí)VFP常用重點(diǎn)函數(shù)如下表所示:
因此,學(xué)習(xí)每一個(gè)函數(shù)要注意以下幾點(diǎn):函數(shù)的格式;函數(shù)的功能;自變量的個(gè)數(shù)以及類(lèi)型;函數(shù)的返回值(類(lèi)型)。
下面,我們分別詳細(xì)介紹計(jì)算機(jī)二級(jí)VFP各類(lèi)函數(shù)的格式、功能、應(yīng)用舉例及使用注意事項(xiàng)。
1 數(shù)值函數(shù)
數(shù)值函數(shù)主要討論INT()、ROUND()和MOD()函數(shù)。這幾個(gè)函數(shù)參數(shù)單一,主要用于數(shù)值運(yùn)算。需要注意的是,在計(jì)算過(guò)程中,數(shù)值函數(shù)的自變量類(lèi)型及函數(shù)的返回值類(lèi)型都是數(shù)值型??捎肨YPE()函數(shù)檢驗(yàn)其函數(shù)返回值類(lèi)型。下午詳細(xì)介紹數(shù)值函數(shù)。
1.1取整函數(shù)INT( )
函數(shù)格式:INT(
函數(shù)功能:計(jì)算并返回expN的整數(shù)部分。需要注意的是,函數(shù)取整舍去小數(shù)部分時(shí),不涉及四舍五入,區(qū)別于round函數(shù)用法。
應(yīng)用舉例:
?INT(-11.3),結(jié)果顯示:-11(小數(shù)部分直接舍棄)
?INT(12.89)=12,結(jié)果顯示:12(0.89全部舍棄,并無(wú)進(jìn)位)
1.2 四舍五入函數(shù)ROUND( )
函數(shù)格式:ROUND(
函數(shù)功能:返回expN1按expN2所指定的位數(shù)保留小數(shù)進(jìn)行四舍五入的值,若expN2為負(fù)值,返回小數(shù)點(diǎn)左邊|expN2|個(gè)0的整數(shù)值。
應(yīng)用舉例:
?ROUND(23.456,2),結(jié)果顯示:23.47(保留兩位小數(shù),四舍五入原則)
?ROUND(-34.234,0),結(jié)果顯示:-34(第二參數(shù)為0,表明不要小數(shù))
?ROUND(2235.1863,-1),結(jié)果顯示:2240(第二個(gè)參數(shù)-1,表明需要1個(gè)0的取整,且小數(shù)部分全部舍棄)
1.3 求余數(shù)函數(shù)MOD( )
函數(shù)格式:MOD(
函數(shù)功能:返回“參數(shù)一”除以“參數(shù)二”的余數(shù)。返回值的正負(fù)取決于expN2的正負(fù)。返回值取值需要注意的是:若兩個(gè)參數(shù)符號(hào)相同,值為正常余數(shù)。若兩個(gè)參數(shù)符號(hào)不同,值為除數(shù)絕對(duì)值與正常余數(shù)的差。
應(yīng)用舉例:
?mod(17,5),顯示結(jié)果:2(兩個(gè)參數(shù)同為正數(shù),按正常情況取余數(shù))
?mod(43,-7),顯示結(jié)果:-6(兩個(gè)參數(shù)異號(hào),符號(hào)位取決于第二參數(shù),為負(fù),值為|-7|-1=6,所以結(jié)果為-6)
2 字符函數(shù)主要處理字符型數(shù)據(jù),參數(shù)使用中至少有一個(gè)是字符型數(shù)據(jù)
字符型函數(shù)主要討論ALLTRIM()、AT()和SUBSTR()函數(shù),這幾個(gè)函數(shù)在查詢(xún)中使用頻繁,需要熟悉掌握其使用技巧。下午詳細(xì)介紹字符函數(shù)。
2.1 刪除前后空格函數(shù)ALLTRIM( )
函數(shù)格式:ALLTRIM(
函數(shù)功能:返回刪除expN前后空格的值。
應(yīng)用舉例:
?ALLTRIM(” study hard ”),結(jié)果顯示:study hard
2.2 子串位置函數(shù)AT( )
函數(shù)格式:AT(
函數(shù)功能:返回expN1第expN3次出現(xiàn)在exp N2中的整數(shù)位置。expN3的默認(rèn)值為1。若expN1未在exp N2中出現(xiàn),則返回值為0。
應(yīng)用舉例:
?AT(“s”,“study”),結(jié)果顯示:1(第三個(gè)參數(shù)沒(méi)有,默認(rèn)為1,s在study第一次出現(xiàn)的位置為1)
?AT(“人民”,“中華人民共和國(guó)”),結(jié)果顯示:5(參數(shù)可以為中文,明確一個(gè)中文漢字占兩個(gè)字節(jié),所以位置為5
2.3 取子串函數(shù)SUBSTR( )
函數(shù)格式:SUBSTR (
函數(shù)功能:返回從串“參數(shù)一”中第“參數(shù)二”個(gè)字符開(kāi)始,截取“參數(shù)三”個(gè)字符的子串。 如果“參數(shù)三”省去,則取子串從“參數(shù)二”開(kāi)始,取到字符結(jié)束處的全部長(zhǎng)度。
應(yīng)用舉例:
?SUBSTR(“foxpro for windows”,8,7),結(jié)果顯示:for win(從字符的第8個(gè)位置開(kāi)始,取7個(gè)長(zhǎng)度)
?SUBSTR(“中華人民共和國(guó)”,5,4),結(jié)果顯示:人民(漢字注意占兩個(gè)字節(jié)寬度)
3 日期時(shí)間函數(shù)
日期時(shí)間函數(shù)是涉及日期、年份、月份、日的相關(guān)函數(shù)。主要討論DATE()、YEAR()、 MONTH()和DAY()函數(shù)。這些函數(shù)使用時(shí)注意格式設(shè)置,如果按正常年月日排列,應(yīng)當(dāng)使用(,1)格式。
3.1 系統(tǒng)日期函數(shù)DATE()
函數(shù)格式:DATE([nyear,nmonth,nday])
函數(shù)功能:不帶任何參數(shù)的DATE()返回系統(tǒng)當(dāng)前日期,函數(shù)值為日期型D。
應(yīng)用舉例:
?DATE(),結(jié)果顯示:18/03/16
?DTOC(DATE(),1),結(jié)果顯示:20160318
3.2 年份函數(shù)YEAR()
函數(shù)格式:YEAR(
函數(shù)功能:函數(shù)返回指定日期的年份。函數(shù)值為數(shù)值型N。
應(yīng)用舉例:
?YEAR({^2016/03/18}),結(jié)果顯示:2016
3.3 月份函數(shù)MONTH( )
函數(shù)格式:MONTH(
函數(shù)功能:MONTH( )函數(shù)返回指定日期的月份。函數(shù)值為數(shù)值型N。
應(yīng)用舉例:
?MONTH({^2016/03/18}),結(jié)果顯示:3
3.4 日期函數(shù)DAY( )
函數(shù)格式:DAY(
函數(shù)功能:返回指定日期的天數(shù)。函數(shù)值為數(shù)值型N。
應(yīng)用舉例:
?DAY({^2016/03/18}) ,結(jié)果顯示:18
4 轉(zhuǎn)換函數(shù)
在VFP的索引建立和查詢(xún)過(guò)程中,為了滿足實(shí)際使用的需要,經(jīng)常要到轉(zhuǎn)換函數(shù)DTOC()和STR()函數(shù)。下面詳細(xì)介紹這幾個(gè)轉(zhuǎn)換函數(shù)。
4.1 數(shù)值——字符型轉(zhuǎn)換函數(shù)STR( )
函數(shù)格式:STR(
函數(shù)功能:將expN1的數(shù)值轉(zhuǎn)換成字符串形式。expN2為指定寬度,expN3為指定小數(shù)位數(shù)。函數(shù)返回值默認(rèn)長(zhǎng)度為10。函數(shù)值為字符型C。
應(yīng)用舉例:
?STR(234.61,5,1),結(jié)果顯示:234.6(字符寬度為5,小數(shù)位數(shù)為1,含小數(shù)點(diǎn)算一位)
4.2字符——數(shù)值型轉(zhuǎn)換函數(shù)VAL( )
函數(shù)格式:VAL (
函數(shù)功能:將參數(shù)中字符串?dāng)?shù)字轉(zhuǎn)換成對(duì)應(yīng)數(shù)值,轉(zhuǎn)換結(jié)果取兩位小數(shù)函數(shù)返回值為數(shù)值型N。
應(yīng)用舉例:
?VAL(“12”),結(jié)果顯示:12.00
?VAL(“12abc”),結(jié)果顯示:12.00(轉(zhuǎn)換過(guò)程中,遇到非數(shù)值型字符為止)
4.3日期——字符型轉(zhuǎn)換函數(shù)DTOC( )
函數(shù)格式:DTOC(
函數(shù)功能:把日期參數(shù)轉(zhuǎn)換成相應(yīng)的字符串。函數(shù)返回值為字符型C。
應(yīng)用舉例:
?DTOC(DATE(),1),結(jié)果顯示:20160318(此時(shí)該結(jié)果為字符串)
4.4 字符——日期型轉(zhuǎn)換函數(shù)CTOD( )
函數(shù)格式:CTOD(
函數(shù)功能:把字符串轉(zhuǎn)換成對(duì)應(yīng)日期值。函數(shù)值為日期型D。
應(yīng)用舉例:
?CTOD(“^2016/03/18”),結(jié)果顯示:03/18/16(注意格式)
總之,函數(shù)使用貫穿整個(gè)VFP上機(jī)及理論部分,特別是轉(zhuǎn)換函數(shù)部分DTOC()函數(shù)及STR()函數(shù)使用頻繁,學(xué)生應(yīng)根據(jù)實(shí)際情況,加強(qiáng)練習(xí),不斷鞏固熟練,才能靈活掌握函數(shù)的使用,為等級(jí)考試奠定基礎(chǔ)。
參考文獻(xiàn):
[1] 江蘇省教育廳.Visual Foxpro數(shù)據(jù)庫(kù)教程[M].北京:高等教育出版社,2014.