版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章VFP語(yǔ)言基礎(chǔ)3.1數(shù)據(jù)類型3.2常量3.3變量3.4表達(dá)式3.5函數(shù)3.6命令格式及書寫規(guī)則第3章VFP語(yǔ)言基礎(chǔ)3.1數(shù)據(jù)類型 1.字符型
字符型(character)數(shù)據(jù)是不具計(jì)算能力的文字?jǐn)?shù)據(jù)類型,是常用的數(shù)據(jù)類型之一,用字母C表示。字符型數(shù)據(jù)包括中文字符、英文字符和其他ASCII字符。
2.?dāng)?shù)值型
數(shù)值型(numeric)是表示數(shù)量并可以進(jìn)行數(shù)值運(yùn)算的數(shù)據(jù)類型,是常用的數(shù)據(jù)類型之一,用字母N表示。數(shù)值型數(shù)據(jù)由正負(fù)號(hào)、數(shù)字(0-9)、小數(shù)點(diǎn)組成,其長(zhǎng)度最大為20。3.1數(shù)據(jù)類型 3.整形
整形(integer)數(shù)據(jù)是不包含小數(shù)部分的數(shù)值型數(shù)據(jù),用字母I表示,整形數(shù)據(jù)只用來表示整數(shù),以二進(jìn)制形式存儲(chǔ)。
4.浮點(diǎn)型
浮點(diǎn)型(float)數(shù)據(jù)是數(shù)值型數(shù)據(jù)的一種,用字母F表示,它與數(shù)值型數(shù)據(jù)完全等價(jià),只是存儲(chǔ)形式上采用浮點(diǎn)格式,主要是為了達(dá)到較高的計(jì)算精度。3.1數(shù)據(jù)類型 5.雙精度型
雙精度型(double)數(shù)據(jù)是提供更高精度的一種數(shù)值型數(shù)據(jù),用字母B表示,雙精度數(shù)據(jù)采用固定長(zhǎng)度的浮點(diǎn)格式存儲(chǔ),共占用八個(gè)字節(jié)。
6.日期型
日期型(date)數(shù)據(jù)是表示日期的一種數(shù)據(jù),是常用的數(shù)據(jù)類型之一,用字母D表示,日期型數(shù)據(jù)的默認(rèn)格式是{mm/dd/yy},其長(zhǎng)度固定為八個(gè)字節(jié)。3.1數(shù)據(jù)類型 7.日期時(shí)間型
日期時(shí)間型(datetime)數(shù)據(jù)是表示日期和時(shí)間的數(shù)據(jù),用字母T表示。日期時(shí)間型數(shù)據(jù)默認(rèn)個(gè)數(shù)為{mm/dd/yyyyhh:mm:ss}.
8.邏輯型
邏輯型(logic)數(shù)據(jù)是描述客觀事物真假的數(shù)據(jù)類型,用字母L表示。邏輯型數(shù)據(jù)有真(.T.或.Y.)和假(.F.或.N.)兩個(gè)值。3.1數(shù)據(jù)類型 9.貨幣型
貨幣型(currency)數(shù)據(jù)是用于存儲(chǔ)貨幣值的數(shù)據(jù)類型,用字母Y表示,默認(rèn)留四位小數(shù)。
10.備注型
備注型(memo)數(shù)據(jù)是表示、存放較多字符的數(shù)據(jù)類型??梢园阉闯墒亲址蛿?shù)據(jù)的特殊形式,用字母M表示。備注型數(shù)據(jù)沒有數(shù)據(jù)長(zhǎng)度的限制,但會(huì)受限于磁盤空間容量。3.1數(shù)據(jù)類型 11.通用型
通用型(general)數(shù)據(jù)是存儲(chǔ)對(duì)象數(shù)據(jù)類型,用G表示,通用型數(shù)據(jù)中的對(duì)象可以是電子表格、文檔、圖形圖片等。它只用于表中字段的定義。
12.二進(jìn)制字符和二進(jìn)制備注型二進(jìn)制字符和二進(jìn)制備注型數(shù)據(jù)是以二進(jìn)制格式存儲(chǔ)的數(shù)據(jù)類型,只能用于表中字段的定義。3.2常量
1.數(shù)值型常量數(shù)值常量就是通常所說的常數(shù),它由數(shù)字、小數(shù)點(diǎn)和正負(fù)號(hào)組成,表示整數(shù)或?qū)崝?shù)值例如:56,3.1415,-100,-7.65
2.字符型常量字符型常量又稱為字符串,要求用雙引號(hào)(“”)或單引號(hào)(‘’)或方括號(hào)([
])作為定界符把字符串括起來。空串(""):除了定界符,未包含任何字符的字符串空格串(“
”):整個(gè)字符串中只包含了一個(gè)空格字符
3.2常量
3.邏輯型常量邏輯型常量只有邏輯真(true)和邏輯假(false)兩種值邏輯型常量值前后需要同時(shí)加上點(diǎn)號(hào)(.)作為其定界符4.貨幣型常量在數(shù)值型常量前加上貨幣符號(hào)($)
貨幣型常量默認(rèn)保留4位小數(shù)3.2常量
5.日期型常量日期型常量是用一對(duì)花括號(hào){}作為定界符。
默認(rèn)格式是{mm/dd/yyyy},包含年、月、日三部分內(nèi)容。
傳統(tǒng)的日期格式為{mm/dd/yy}嚴(yán)格的日期格式為{^yyyy-mm-dd}\影響日期格式的設(shè)置命令設(shè)置日期分隔符:SETMARK[TO]日期分隔符設(shè)置日期格式:SETDATE[TO]MDY|DMY|YMD設(shè)置年份位數(shù):SETCENTURYON|OFF|TO[世紀(jì)值]3.2常量
6.日期時(shí)間型常量日期時(shí)間型常量包括日期和時(shí)間兩部分內(nèi)容:{日期,時(shí)間},用一對(duì)花括號(hào){}作為定界符,兩者之間用逗號(hào)(,)分隔
.日期部分的格式與日期型常量相同。時(shí)間部分格式為:hh:mm:ss[A|P],其默認(rèn)值分別為12:00:00AM,AM或PM代表上午和下午。3.3變量
變量是在操作過程中可以改變其取值或數(shù)據(jù)類型的數(shù)據(jù)項(xiàng),在VFP中,變量分為字段變量、簡(jiǎn)單的內(nèi)存變量、數(shù)值變量和系統(tǒng)變量。確定一個(gè)變量,需要確定其三個(gè)要素:變量名、數(shù)據(jù)類型和變量值。3.3變量
3.3.1變量的命名規(guī)則
1.由字母、數(shù)字、漢字和下劃線組成,字母不區(qū)分大小寫;
2.首字符只能以字母、漢字和下劃線開頭,即不能以數(shù)字開頭;
3.不能使用VFP系統(tǒng)的保留字;
4.除了自由表中字段名、索引的TAG標(biāo)識(shí)名最多只能10個(gè)字符外,其他的命名長(zhǎng)度可使用1~128個(gè)字符。3.3變量
3.3.2字段變量
字段變量就是表中字段名,其數(shù)據(jù)類型可以為VFP中任意的數(shù)據(jù)類型。3.3.3簡(jiǎn)單內(nèi)存變量?jī)?nèi)存變量的數(shù)據(jù)類型包括:數(shù)值型、字符型、邏輯型、貨幣型、日期型和日期時(shí)間型等簡(jiǎn)單內(nèi)存變量不用事先定義,其類型根據(jù)當(dāng)前所存儲(chǔ)的數(shù)據(jù)類型來動(dòng)態(tài)決定例:a=123,其中123為數(shù)值型變量值,則a為數(shù)值型變量b=“ABC”,“ABC”為字符型變量值,則b為字符型變量3.3變量3.3.4內(nèi)存變量常用命令
1.內(nèi)存變量的賦值
命令格式1:<內(nèi)存變量>=<表達(dá)式> 命令格式2:STORE<表達(dá)式>TO<內(nèi)存變量表> 功能:賦值語(yǔ)句,將表達(dá)式的值賦給內(nèi)存變量
例:x="HELLO"y={^2008-08-08}m=23n=23store23tom,n3.3變量3.3.4內(nèi)存變量常用命令
2.表達(dá)式值的顯示 命令格式1:?<表達(dá)式表>[AT<列號(hào)>] 命令格式2:??<表達(dá)式表>[AT<列號(hào)>]
功能:計(jì)算表達(dá)式中各表達(dá)式的值,并在屏幕上指定的位置顯示出表達(dá)式的值。?換行輸出,??在當(dāng)前位置輸出
例:x=20store“ABC”toystore“FC”tom,n?m,x,y,n
?x??y3.3變量 3.內(nèi)存變量的顯示
命令格式1:DISPLAYMEMORY[LIKE<通配符>][TOPRINT|TOFILE<file>] 命令格式2:LISTMEMORY[LIKE<通配符>][TOPRINT|TOFILE<file>]
功能:使用DISPLAYMEMORY或LISTMEMORY命令在屏幕上顯示出當(dāng)前所有內(nèi)存變量的信息,包括變量名、作用域、類型和取值。
通配符:“?”和“*”分別代表一個(gè)字符和任意多個(gè)字符。3.3變量
4.內(nèi)存變量的清除
命令格式1:CLEARMEMORY 命令格式2:RELEASE<內(nèi)存變量名表> 命令格式3:RELEASEALL 命令格式4:RELEASEALL[LIKE<通配符>|EXCEPT<通配符>]
功能:清除內(nèi)存變量并釋放相應(yīng)的內(nèi)存空間3.3變量3.3.5數(shù)組變量數(shù)組是一種特殊的內(nèi)存變量,是用一組有序的、由相同名稱存儲(chǔ)的一系列內(nèi)存變量的集合數(shù)組必須通過DIMENSION、DECLARE命令先定義,再使用。
命令格式: DIMENSION<數(shù)組名>(<下標(biāo)上限1>[,<下標(biāo)上限2>])[,…]) DECLARE<數(shù)組名>(<下標(biāo)上限1>[,<下標(biāo)上限2>])[,…])功能:定義一個(gè)或多個(gè)數(shù)組,DIMENSION和DECLARE功能完全相同,根據(jù)下標(biāo)上限定義的個(gè)數(shù)不同,分為一維數(shù)組和二維數(shù)組,如無下標(biāo)上限2則為一維數(shù)組。3.3變量3.3.5數(shù)組變量1)數(shù)組定義后,各數(shù)組元素的初始值都為邏輯值.F.。同一數(shù)組中,根據(jù)賦值不同,各數(shù)組元素的數(shù)據(jù)類型也可以不同。2)下標(biāo)上限是數(shù)據(jù)元素的個(gè)數(shù)(序號(hào)上限),下標(biāo)下界(起始序號(hào))值固定為13)可以用一維數(shù)組的形式訪問二維數(shù)組。 例:DIMENSIONx(3),y(2,2)x(1)=6x(3)=‘ABC’y(1,1)=$13y(1,2)={^2008-08-16}y(3)=9?x,x(1),x(2),x(3),y(1),y(2),y(2,1),y(2,2),y3.3變量3.3.6系統(tǒng)變量
系統(tǒng)變量是VFP系統(tǒng)特有的內(nèi)存變量,由VFP系統(tǒng)定義、維護(hù)。系統(tǒng)變量的變量名均以下劃線“_”開始,如_WINDOWS、_CLIPTEXT等。因此在定義內(nèi)存變量和數(shù)組變量名時(shí),不要以下劃線開始,以免與系統(tǒng)變量名沖突。
3.4表達(dá)式
表達(dá)式是指通過各種運(yùn)算符將常量、變量、函數(shù)等連接起來的算式。
1.算術(shù)表達(dá)式算術(shù)表達(dá)式又稱數(shù)值表達(dá)式,是用算術(shù)運(yùn)算符將數(shù)值型數(shù)據(jù)連接起來的算式。
3.4表達(dá)式
2.字符表達(dá)式字符表達(dá)式是由字符運(yùn)算符將字符型數(shù)據(jù)對(duì)象連接起來進(jìn)行運(yùn)算的算式
1)“+”運(yùn)算格式為:<字符串1>+<字符串2>。功能是將兩個(gè)字符串首尾連接形成一個(gè)新的字符串。2)“-”運(yùn)算格式為:<字符串1>-<字符串2>。功能是將字符串1尾部的空格移到字符串2的尾部,然后再連接形成一個(gè)新的字符串。3)“$”運(yùn)算格式為:<字符串1>$<字符串2>。功能是判斷字符串1是否被包含在字符串2中,其運(yùn)算結(jié)果是邏輯型。如果字符串1包含在字符串2中,結(jié)果為邏輯真(.T.),否則為邏輯假(.F.)。3.4表達(dá)式
2.字符表達(dá)式例:x="ABC"y="DEF"z="DE"?x+y,x-y,z$y輸出結(jié)果:ABCDEFABCDEF.T.3.4表達(dá)式
3.日期表達(dá)式
由日期運(yùn)算符將一個(gè)日期型或日期時(shí)間型數(shù)據(jù)與一個(gè)數(shù)值型數(shù)據(jù)連接而成的運(yùn)算式稱為日期表達(dá)式
日期運(yùn)算符分為“+”和“-”,其作用分別是在日期數(shù)據(jù)上增加或減少一個(gè)天數(shù),在日期時(shí)間數(shù)據(jù)上增加或減少一個(gè)秒數(shù)。若兩個(gè)日期型數(shù)據(jù)相減,結(jié)果為兩日期的天數(shù)差值,兩個(gè)日期時(shí)間型數(shù)據(jù)相減,結(jié)果為二者相差的秒數(shù)。
例:x={^2012-08-16}y={^2012-08-26}m={^2012-08-20,10:18:25}?x+2,x-3,y-x,m+15?m-12輸出結(jié)果:08/18/1208/13/121008/20/1210:18:40AM08/20/1210:18:13AM3.4表達(dá)式
4.關(guān)系表達(dá)式
1)數(shù)值型與貨幣型根據(jù)數(shù)據(jù)的大小(包括符號(hào)位)進(jìn)行比較;2)日期型和日期時(shí)間型比較時(shí),越早的日期其日期時(shí)間越小,越晚的日期其日期時(shí)間越大;3)邏輯型數(shù)據(jù)比較時(shí),.T.比.F.大;4)字符型數(shù)據(jù)(字符串)比較時(shí),將兩個(gè)字符串的字符按自左向右的順序依次逐個(gè)進(jìn)行比較;5)雙等號(hào)運(yùn)算符(“==”)比較兩個(gè)字符串時(shí),只有當(dāng)兩個(gè)字符串完全相同時(shí),運(yùn)算結(jié)果為邏輯真(.T.),否則為邏輯假(.F.);6)單等號(hào)運(yùn)算符(“=”)比較兩個(gè)字符串時(shí),可用命令SETEXACTON/OFF來設(shè)置其是否為精確比較。當(dāng)SETEXACTON時(shí),處于精確比較狀態(tài),先對(duì)較短字符后面加上空格再比較,SETEXACTOFF時(shí),若字符串2是字符串1的前綴,則為.T.3.4表達(dá)式
4.關(guān)系表達(dá)式
例:SETEXACT
OFFx="ABC"y="ABC"z="ABCD"?x=y,y=x,z=x,y=z,x==y,y==x輸出結(jié)果:.F..T..T..F..F..F.繼續(xù)輸入:SETEXACTON?x=y,y=x,z=x,y=z,x==y,y==x輸出結(jié)果:.T..T..F..F..F..F.3.4表達(dá)式
5.邏輯表達(dá)式
由邏輯運(yùn)算符將邏輯型數(shù)據(jù)對(duì)象連接而成的算式稱為邏輯表達(dá)式。邏輯型運(yùn)算符包括:AND、OR、NOT,優(yōu)先級(jí):NOT、AND、OR。6.運(yùn)算符優(yōu)先級(jí)1)括號(hào)的優(yōu)先級(jí)最高;2)相同優(yōu)先級(jí)的運(yùn)算符按從左到右的順序進(jìn)行運(yùn)算;3)字符串連接運(yùn)算符和算術(shù)加、減運(yùn)算符的優(yōu)先級(jí)是一樣的。3.5函數(shù)
函數(shù)由函數(shù)名、參數(shù)、和函數(shù)值組成;函數(shù)運(yùn)算后會(huì)有一個(gè)值,稱為函數(shù)值。
函數(shù)的格式為:函數(shù)名(參數(shù)表)1)函數(shù)名即函數(shù)的標(biāo)識(shí)。2)參數(shù)是自變量,其數(shù)據(jù)類型由函數(shù)的定義確定,數(shù)據(jù)形式可以是常量、變量、函數(shù)或表達(dá)式;有的函數(shù)可省略參數(shù),但有函數(shù)值。3)函數(shù)值是函數(shù)運(yùn)算后返回的值,函數(shù)值會(huì)因函數(shù)名和參數(shù)的不同而不同。3.5函數(shù)
3.5.1數(shù)值函數(shù)1.取絕對(duì)值函數(shù)格式:ABS(<數(shù)值表達(dá)式>)功能:求指定數(shù)值表達(dá)式的絕對(duì)值例:?abs(-2)的輸出結(jié)果為2,?abs(2-8)的輸出結(jié)果為62.求符號(hào)函數(shù)格式:SIGN(<數(shù)值表達(dá)式>)功能:求指定數(shù)值表達(dá)式的符號(hào)位。當(dāng)表達(dá)式的運(yùn)算結(jié)果為正數(shù)、負(fù)數(shù)或零時(shí),其對(duì)應(yīng)的函數(shù)值分別為1、-1、0。例:?Sign(-8)的輸出結(jié)果為-13.5函數(shù)
3.5.1數(shù)值函數(shù)3.求平方根函數(shù)格式:SQRT(<數(shù)值表達(dá)式>)功能:求指定數(shù)值表達(dá)式的算術(shù)平方根,數(shù)值表達(dá)式的值應(yīng)不小于零。例:?sqrt(16)的輸出結(jié)果為4.003.5函數(shù)
3.5.1數(shù)值函數(shù)4.求整數(shù)函數(shù)INT(<數(shù)值表達(dá)式>):INT求出數(shù)值表達(dá)式的整數(shù)部分;CEILING(<數(shù)值表達(dá)式>):求出大于或等于數(shù)值表達(dá)式值的最小整數(shù);FLOOR(<數(shù)值表達(dá)式>):求出小于或等于數(shù)值表達(dá)式值的最大例:?Int(5.6),ceiling(5.6),floor(5.6)輸出結(jié)果為:5、6、5例:?Int(-3.8),ceiling(-3.8),floor(-3.8)輸出結(jié)果為:-3、-3、-43.5函數(shù)
3.5.1數(shù)值函數(shù)5.四舍五入函數(shù)格式:ROUND(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)功能:根據(jù)給出的四舍五入小數(shù)位數(shù),對(duì)數(shù)值表達(dá)式的計(jì)算結(jié)果做四舍五入處理。若<數(shù)值表達(dá)式2>大于等于0,則表示小數(shù)點(diǎn)后保留小數(shù)位數(shù);若<數(shù)值表達(dá)式2>小于0,則表示整數(shù)部分進(jìn)行四舍五入的位數(shù)。例:?ROUND(356.586,2)的輸出結(jié)果為:356.59例:?ROUND(356.586,-1)的輸出結(jié)果為:3603.5函數(shù)
3.5.1數(shù)值函數(shù)6.求余數(shù)函數(shù)
格式:MOD(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)功能:結(jié)果為<數(shù)值表達(dá)式1>除以<數(shù)值表達(dá)式2>所得的余數(shù),余數(shù)的符號(hào)位與<數(shù)值表達(dá)式2>符號(hào)相同。如果<數(shù)值表達(dá)式1>與<數(shù)值表達(dá)式2>符號(hào)位相同,函數(shù)值計(jì)算的方法是,兩數(shù)絕對(duì)值相除的余數(shù)值再帶上<數(shù)值表達(dá)式1>的符號(hào)位如果<數(shù)值表達(dá)式1>與<數(shù)值表達(dá)式2>符號(hào)位不相同,函數(shù)值計(jì)算的方法是:兩數(shù)絕對(duì)值相除的余數(shù)值再帶上<數(shù)值表達(dá)式1>的符號(hào)位后,再加上<數(shù)值表達(dá)式2>的值。例:?MOD(10,3),MOD(-10,-3),MOD(10,-3),MOD(-10,3)輸出結(jié)果:1
-1-22
3.5函數(shù)
3.5.1數(shù)值函數(shù)7.求最大值和最小值函數(shù)MAX(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>[,<數(shù)值表達(dá)式3>…])MIN(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>[,<數(shù)值表達(dá)式3>…])功能:MAX求出所有數(shù)值表達(dá)式中的最大值;MIN求出所有數(shù)值表達(dá)式中的最小值。例:MAX(7,56,234),MAX(“7”,“56”,“234”)輸出結(jié)果:234,7例:MAX(“汽車”,“飛機(jī)”,“輪船”),MAX(.T.,.F.)輸出結(jié)果:汽車、.T.例:MIN({^2008-08-08},{^2012-08-16})輸出結(jié)果:08/08/083.5函數(shù)
3.5.1數(shù)值函數(shù)練習(xí)1.x=64y=48?sqrt(abs(y-x))輸出結(jié)果是多少?2.x=-4.2
?Int(abs(x)),ceiling(x),floor(x)的結(jié)果?3.?round(432.34,-2),round(432.344,2)輸出結(jié)果?4.?Mod(14,3),mod(-14,-3),mod(14,-3),mod(-10,3)輸出結(jié)果?5.?max(“Abc”,“ABc“,”abc”)輸出結(jié)果?6.?min({^2008-07-08},{^2011-12-23})輸出結(jié)果?3.5函數(shù)
3.5.2字符函數(shù)
1.求字符串長(zhǎng)度函數(shù)
格式:LEN(<字符串表達(dá)式>)功能:求字符串的長(zhǎng)度,即所包含的字符個(gè)數(shù)。函數(shù)值為數(shù)值型。一個(gè)漢字字符長(zhǎng)度為2字節(jié),其他字符長(zhǎng)度為1個(gè)字節(jié);若是空串(""),則長(zhǎng)度為0。例:?LEN(“ABC”),LEN(“重慶”)例:?LEN(“”),LEN(“”)
3.5函數(shù)
3.5.2字符函數(shù)
2.生成空格字符函數(shù)
格式:SPACE(<數(shù)值型表達(dá)式>)功能:建立空格函數(shù),生成空格的個(gè)數(shù)由數(shù)值型表達(dá)式的值決定。例:?len(space(5))輸出結(jié)果:53.5函數(shù)
3.5.2字符函數(shù)
3.大小寫轉(zhuǎn)換函數(shù)
格式:LOWER(<字符串表達(dá)式>)UPPER(<字符串表達(dá)式>)LOWER將指定字符串表達(dá)式中的大寫字母全部轉(zhuǎn)換成小寫字母;UPPER將指定字符串表達(dá)式中的小寫字母全部轉(zhuǎn)換成大寫字母。例:LOWER(“VisualFoxPro”)的結(jié)果為:visualfoxpro例:UPPER(“VisualFoxPro”)的結(jié)果為:VISUALFOXPRO
3.5函數(shù)
3.5.2字符函數(shù)
4.去除空格函數(shù)
格式:RTRIM(<字符串表達(dá)式>)LTRIM(<字符串表達(dá)式>)ALLTRIM(<字符串表達(dá)式>)RTRIM能刪除字符串尾部的空格;LTRIM能刪除字符串前部的空格;ALLTRIM能同時(shí)刪除字符串前部和后部的空格,而中間的空格不能刪除。例:x=“1234”m=“A”n=“B”?m+RTRIM(x)+n,m+LTRIM(x)+n,m+AllTRIM(x)+nx=“abcdef”y=“cd”z=“r”?x+rtrim(y)+ltrim(z),alltrim(x)+ltrim(y)+alltrim(z)3.5函數(shù)
3.5.2字符函數(shù)
5.取子串函數(shù)
格式:LEFT(<字符串表達(dá)式>,<數(shù)值型表達(dá)式>)
RIGHT(<字符串表達(dá)式>,<數(shù)值型表達(dá)式>)SUBSTR(<字符串表達(dá)式>,<起始位置>[,<數(shù)值型表達(dá)式>])LEFT從給定的字符串表達(dá)式的左端取指定長(zhǎng)度的子串;RIGHT從給定的字符串表達(dá)式的右端取指定長(zhǎng)度的子串;SUBSTR在給定的字符串中從<起始位置>開始截取指定長(zhǎng)度的子串,子串的長(zhǎng)度由<數(shù)值型表達(dá)式>的值決定;若<數(shù)值型表達(dá)式>省略,則函數(shù)從<起始位置>一直取到最后一個(gè)字符。例:x=“123abc456”?left(x,4),right(x,5)?substr(x,3,4),substr(x,5)
3.5函數(shù)
3.5.2字符函數(shù)
6.子串替換函數(shù)
STUFF(<字符串表達(dá)式1>,<起始位置>,<長(zhǎng)度>,<字符串表達(dá)式2>)功能:用<字符串表達(dá)式2>的值替換<字符串表達(dá)式1>中以<起始位置>和<長(zhǎng)度>指定的一個(gè)子串。替換與被替換字符串長(zhǎng)度不一定相等。如果<長(zhǎng)度>為0,則表示在起始位置插入<字符串2>
,如果<字符串2>為空,則從<字符串1>中刪除起始位置和長(zhǎng)度指定的字符。例:x=“ABCDEFGH”y=“123”?STUFF(x,3,2,y),STUFF(x,2,0,y),STUFF(x,5,2,“”)輸出結(jié)果:AB123EFGHA123BCDEFGHABCDGH
3.5函數(shù)
3.5.2字符函數(shù)
7.字符替換函數(shù)
CHRTRAN(<字符串表達(dá)式1>,<字符串表達(dá)式2>,<字符串表達(dá)式3>)功能:當(dāng)<字符串表達(dá)式1>中的一個(gè)或多個(gè)字符與<字符串2>中的某個(gè)字符相匹配時(shí),用<字符串3>中的對(duì)應(yīng)字符(與<字符串2>位置相同的字符)替換這些字符。若<字符串3>包含的字符個(gè)數(shù)少于<字符串2>包含的字符個(gè)數(shù),與<字符串2>位置相同的字符為空,那么<字符串1>中相匹配的各字符將被刪除。若<字符串3>包含的字符個(gè)數(shù)多余<字符串2>包含的字符個(gè)數(shù),多余字符將被忽略。3.5函數(shù)
3.5.2字符函數(shù)
7.字符替換函數(shù)
CHRTRAN(<字符串表達(dá)式1>,<字符串表達(dá)式2>,<字符串表達(dá)式3>)例:x="ABCDEFGH"y="BCED"z="BAEFGC"m="12345"?CHRTRAN(x,y,m),CHRTRAN(x,z,m)輸出結(jié)果:A1243FGH21D345H練習(xí):x=“1234567”y=“23574”z=“abcd”?chrtran(x,y,z)3.5函數(shù)
3.5.2字符函數(shù)
8.子串出現(xiàn)次數(shù)函數(shù)
OCCURS(<字符串表達(dá)式1>,<字符串表達(dá)式2>)功能:計(jì)算<字符串表達(dá)式1>在<字符串表達(dá)式2>中出現(xiàn)的次數(shù),若一次都沒出現(xiàn)過,則返回0。例:?OCCURS(“C”,“ABDCCFC”)輸出結(jié)果:3?OCCURS(“E”,“ABCDCFC”)輸出結(jié)果:0練習(xí):?OCCURS(“rt”,“12rt54rt”)?OCCURS(“trr”,“fdshtrrtrrt”)?OCCURS(“trrr”,“fdshtrrtrrt”)3.5函數(shù)
3.5.2字符函數(shù)
9.求子串位置函數(shù)
格式:AT(<字符串表達(dá)式1>,<字符串表達(dá)式2>[,<數(shù)值表達(dá)式>])ATC(<字符串表達(dá)式1>,<字符串表達(dá)式2>[,<數(shù)值表達(dá)式>])功能:驗(yàn)證<字符串表達(dá)式1>是否是<字符串表達(dá)式2>的子串,如果是返回<字符串1>在<字符串2>中的位置,如不是,返回0;ATC不區(qū)分大小寫。<數(shù)值表達(dá)式>可以省略,默認(rèn)值為1,用于指定<字符串1>在<字符串2>中第幾次出現(xiàn)的首字母。例:?AT("C","ABCDE"),AT("C","abcd"),AT("C","CcCD",2),ATC("C","abcd")輸出結(jié)果:30333.5函數(shù)
3.5.2字符函數(shù)
10.字符串匹配函數(shù)
格式:LIKE(<字符串表達(dá)式1>,<字符串表達(dá)式2>)功能:比較2個(gè)字符串對(duì)應(yīng)位置上的字符,若所有對(duì)應(yīng)字符相匹配,則函數(shù)返回邏輯真(.T.),否則返回邏輯假(.F.)。<字符串1>中可以包含通配符“*”和“?”?!?“可以與任何數(shù)目的字符匹配,“?”可以與單個(gè)字符相匹配。例:?like(“a*b”,“afdfeb”)輸出結(jié)果:.T.例:?like(“a?b”,“afdfeb”)輸出結(jié)果:.F.例:?like("a?b","afb")輸出結(jié)果:.T.3.5函數(shù)
3.5.2字符函數(shù)練習(xí)
1、?len(“您好ma?”)輸出結(jié)果?2、?lower(“AVDDC”),upper(“acddf”)輸出結(jié)果?3、?rtrim("ABC")+ltrim("123")+alltrim("123abc")4、?left("tred",2)+right("3453",1)+substr("dfdfd",2)5、?stuff("add343",4,3,"123"),stuff("abcdef",1,0,"123")6、?chrtran("ABCDEFG","DCBA","1234")7、?Occurs(“123”,”12321232123”)8、?ATC("AC","ACDacb",2)9、?AT(“ac","ACDacb")3.5函數(shù)
3.5.3日期時(shí)間函數(shù)1.系統(tǒng)日期和時(shí)間函數(shù)DATE(
):用于返回當(dāng)前系統(tǒng)日期,函數(shù)值為日期型;TIME(
):用于返回系統(tǒng)時(shí)間,格式為hh:mm:ss,函數(shù)值為字符型;DATETIME(
):用于返回當(dāng)前系統(tǒng)日期時(shí)間,函數(shù)值為日期時(shí)間型。3.5函數(shù)
3.5.3日期時(shí)間函數(shù)2.求年份、月份、天數(shù)函數(shù)YEAR():指定的<日期表達(dá)式>或<日期時(shí)間表達(dá)式>中返回年份,函數(shù)值為4位年份值的數(shù)值型。MONTH():用于從指定的<日期表達(dá)式>或<日期時(shí)間表達(dá)式>中返回月份,函數(shù)值為數(shù)值型。DAY():用于從指定的<日期表達(dá)式>或<日期時(shí)間表達(dá)式>中返回天數(shù),函數(shù)值為數(shù)值型。例:?YEAR({^2013-9-24})輸出結(jié)果:2013例:?MONTH({^2013-9-24})輸出結(jié)果:9例:?DAY({^2013-9-24})輸出結(jié)果:243.5函數(shù)
3.5.3日期時(shí)間函數(shù)3.求小時(shí)、分鐘、秒數(shù)函數(shù)格式:HOUR(<日期時(shí)間表達(dá)式>)MINUTE(<日期時(shí)間表達(dá)式>)SEC(<日期時(shí)間表達(dá)式>)功能:HOUR(
)按24小時(shí)制返回<日期時(shí)間表達(dá)式>中的小時(shí)部分;MINUTE(
)返回<日期時(shí)間表達(dá)式>中的分鐘部分;SEC(
)返回<日期時(shí)間表達(dá)式>中的秒數(shù)部分。3.5函數(shù)
3.5.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)1.字符轉(zhuǎn)換為ASCII碼函數(shù)ASC(<字符串表達(dá)式>)功能:返回<字符串表達(dá)式>中第一個(gè)字符的ASCII碼,返回值為整型數(shù)據(jù)。例:?asc(“agfdfd”)輸出結(jié)果:972.ASCII碼轉(zhuǎn)換為字符函數(shù)格式:CHR(<整型表達(dá)式>)功能:將<整型表達(dá)式>的ASCII碼值轉(zhuǎn)換成相應(yīng)的字符,返回值為字符型數(shù)據(jù)。例:?chr(98)輸出結(jié)果:b3.5函數(shù)
3.5.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)3.?dāng)?shù)值轉(zhuǎn)換成字符串函數(shù)格式:STR(<數(shù)值型表達(dá)式>[,<長(zhǎng)度>[,<小數(shù)位數(shù)>]])功能:將<數(shù)值型表達(dá)式>的值轉(zhuǎn)換成字符串,轉(zhuǎn)換時(shí)根據(jù)需要自動(dòng)四舍五入;<長(zhǎng)度>指定結(jié)果字符串的長(zhǎng)度,默認(rèn)為10;<小數(shù)位數(shù)>指定數(shù)值型的保留小數(shù)位數(shù),默認(rèn)為0。1)若<長(zhǎng)度>大于實(shí)際長(zhǎng)度,則結(jié)果字符串前補(bǔ)空格以達(dá)到規(guī)定<長(zhǎng)度>要求。2)若<長(zhǎng)度>小于數(shù)值的整數(shù)部分,則數(shù)值溢出,返回一串“*”號(hào)。3.5函數(shù)
3.5.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)3.?dāng)?shù)值轉(zhuǎn)換成字符串函數(shù)3)若<長(zhǎng)度>小于<數(shù)值型表達(dá)式>值的總位數(shù)長(zhǎng)度(含小數(shù)點(diǎn)),但大于或等于整數(shù)長(zhǎng)度,返回全部整數(shù)位數(shù)和部分小數(shù),多余的小數(shù)自動(dòng)四舍五入。例:x=-123.456?STR(x,9,2),STR(x,6,2),STR(x,3),STR(x,8),STR(x)輸出結(jié)果:-123.46-123.5***-123-1233.5函數(shù)
3.5.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)4.字符串轉(zhuǎn)換成數(shù)字函數(shù)格式:VAL(<字符串表達(dá)式>)功能:將<字符串表達(dá)式>中的各數(shù)字字符(包括正負(fù)符號(hào)、小數(shù)點(diǎn))按從左到右依次處理轉(zhuǎn)換為對(duì)應(yīng)的數(shù)值型數(shù)據(jù),若遇到非數(shù)字字符(前導(dǎo)空格除外),整個(gè)轉(zhuǎn)換就停止,若一開始就是非數(shù)字字符,則返回?cái)?shù)據(jù)型0。例:?VAL("-123.45ab"),VAL("123ab45"),VAL("123"),VAL("ABC")輸出結(jié)果:-123.45123.00123.000.003.5函數(shù)
3.5.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)5.日期型或日期時(shí)間型轉(zhuǎn)換為字符串函數(shù)格式:DTOC(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>[,<1>])TTOC(<日期時(shí)間型表達(dá)式>[,<1>])功能:DTOC()將日期型數(shù)據(jù)或日期時(shí)間型數(shù)據(jù)的日期部分轉(zhuǎn)換成字符串?dāng)?shù)據(jù);TTOC()將日期時(shí)間型數(shù)據(jù)轉(zhuǎn)化成字符串?dāng)?shù)據(jù)。若加上選項(xiàng)<1>,則字符串的格式總是YYYYMMDD或YYYYMMDDHHMMSS。3.5函數(shù)
3.5.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)5.日期型或日期時(shí)間型轉(zhuǎn)換為字符串函數(shù)例:x={^2012-08-16}y={^2012-08-16,12:32:25}?DTOC(x),DTOC(x,1)輸出結(jié)果:08/16/1220120816?TTOC(y),TTOC(y,1)08/16/1212:32:25PM201208161232253.5函數(shù)
3.5.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)6.字符串轉(zhuǎn)換成日期型或日期時(shí)間型函數(shù)格式:CTOD(<字符串表達(dá)式>)CTOT(<字符串表達(dá)式>)功能:CTOD()將<字符串表達(dá)式>轉(zhuǎn)換成日期型數(shù)據(jù);CTOT()將<字符串表達(dá)式>轉(zhuǎn)換成日期時(shí)間型數(shù)據(jù)。<字符串表達(dá)式>中的日期部分格式要與日期設(shè)置命令(SETDATETO、SETCENTURYON/OFF)的格式相一致3.5函數(shù)
3.5.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)6.字符串轉(zhuǎn)換成日期型或日期時(shí)間型函數(shù)SetdatatoMDYX=“08/16/12”?CTOD(x)輸出結(jié)果:08/16/12SetdatatoYMDSetcenturyonY=“2012-08-16”?CTOD(Y)輸出結(jié)果:2012/08/163.5函數(shù)
3.5.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)練習(xí)1、x={^2012-09-27,12:32:23}?year(x),month(x),day(x),hour(x),minute(x),sec(x)2、?chr(asc(“bfdfdfd”))3、?Str(12345.34,3,2)4、?Str(12345.34,7,2)5、?Val(“343fgfd”)6、?DTOC({^2013-09-27},1)3.5函數(shù)
3.5.5測(cè)試函數(shù)1.空值(NULL)測(cè)試函數(shù)ISNULL(<表達(dá)式>):判斷一個(gè)<表達(dá)式>的運(yùn)算結(jié)果是否為NULL值,若是NULL值則返回邏輯真(.T.),否則返回邏輯假(.F.)。2.“空”值測(cè)試函數(shù)EMPTY(<表達(dá)式>):判斷指定<表達(dá)式>的運(yùn)算結(jié)果是否為“空”值,若是則返回邏輯真(.T.),否則返回邏輯假(.F.)。不同數(shù)據(jù)類型的“空”值是有不同規(guī)定的,如下圖。3.5函數(shù)
3.5.5測(cè)試函數(shù)3.?dāng)?shù)據(jù)類型測(cè)試函數(shù)格式:VARTYPE(<表達(dá)式>[,<邏輯表達(dá)式>])功能:測(cè)試<表達(dá)式>的數(shù)據(jù)類型,返回用字母代表的數(shù)據(jù)類型;各數(shù)據(jù)類型對(duì)應(yīng)的字母如下表。3.5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 重點(diǎn)傳染病知識(shí)培訓(xùn)課件
- 2025年度廠房灰土施工與綠色建筑認(rèn)證合同3篇
- 2025年度城市核心區(qū)拆遷房買賣合同書4篇
- 2025年度智能穿戴設(shè)備陳列展示與銷售合同范本4篇
- 2025年創(chuàng)新型廠房抵押擔(dān)保投資合同4篇
- 2024鋁單板生產(chǎn)設(shè)備采購(gòu)與租賃合同
- 2025年場(chǎng)監(jiān)督管理局委托執(zhí)法項(xiàng)目合作協(xié)議書4篇
- 2025年度廠房短期出租合同(含租后維護(hù)保養(yǎng)服務(wù))4篇
- 二零二五年度新材料研發(fā)中心入駐成本合同3篇
- 2024年04月山東屆萊州珠江村鎮(zhèn)銀行校園招考筆試歷年參考題庫(kù)附帶答案詳解
- 畢淑敏心理咨詢手記在線閱讀
- 亞硝酸鈉安全標(biāo)簽
- pcs-985ts-x說明書國(guó)內(nèi)中文版
- GB 11887-2012首飾貴金屬純度的規(guī)定及命名方法
- 小品《天宮賀歲》臺(tái)詞劇本手稿
- 醫(yī)院患者傷口換藥操作課件
- 欠薪強(qiáng)制執(zhí)行申請(qǐng)書
- 礦山年中期開采重點(diǎn)規(guī)劃
- 資源庫(kù)建設(shè)項(xiàng)目技術(shù)規(guī)范匯編0716印刷版
- GC2級(jí)壓力管道安裝質(zhì)量保證體系文件編寫提綱
- 預(yù)應(yīng)力混凝土簡(jiǎn)支小箱梁大作業(yè)計(jì)算書
評(píng)論
0/150
提交評(píng)論