本部分主要給出了VF與字符相關(guān)的函數(shù):
(1)求字符串長(zhǎng)度函數(shù)
格式:LEN(<字符表達(dá)式>)
功能:返回制定字符表達(dá)式的長(zhǎng)度,即所包含的字符個(gè)數(shù)。函數(shù)值為數(shù)值型
例如:X=“中文Visual FoxPro6.0” 則LEN(X)=20
(2)大小寫轉(zhuǎn)換函數(shù)
格式:LOWER(<字符表達(dá)式>)
UPPER(<字符表達(dá)式>)
功能:LOWER將制定表達(dá)式值中的大寫字母轉(zhuǎn)換成小寫字母,其他字符不變
UPPER將指定表達(dá)式值中的小寫字母轉(zhuǎn)換成大寫字母,其他字符不變。
例如:LOWER(‘X1y2A’)=x1y2a UPPER(‘n=1’)=N=1
(3)空ge字符串生成函數(shù)
格式:SPACE(<字符表達(dá)式>)
功能:返回指定數(shù)目的空ge組成的字符串。
(4)刪除前后空ge函數(shù)
格式:TRIM(<字符表達(dá)式>)
LTRIM(<字符表達(dá)式>)
ALLTRIM(<字符表達(dá)式>)
功能:TRIM():返回指定字符表達(dá)式值去掉尾部空ge后形成的字符串
LTRIM():返回指定字符表達(dá)式值去掉前導(dǎo)空ge后形成的字符串
ALLTRIM():返回指定字符表達(dá)式值去掉前導(dǎo)空ge和尾部空ge后形成的字符串。
例如:STORE SPACE(1)+”TEST”+SPACE(3) TO SS
?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)
LEN(SS)=8,LEN(TRIM(SS))=5,LEN(LTRIM(SS))=7,LEN(ALLTRIM(SS))=4
(5)取子串函數(shù)
格式:LEFT(<字符表達(dá)式>,<長(zhǎng)度>)
RIGHT(<字符表達(dá)式>,<長(zhǎng)度>)
SUBSTR(<字符表達(dá)式>,<起始位置>,<長(zhǎng)度>)
功能:LEFT(): 從指定表達(dá)式值的左端取一個(gè)指定長(zhǎng)度的子串作為函數(shù)值。
RIGHT():從指定表達(dá)式值的右端取一個(gè)指定長(zhǎng)度的子串作為函數(shù)值。
SUBSTR():從指定表達(dá)式值的起始位置取指定長(zhǎng)度的子串作為函數(shù)值。
例如:STORE “GOOD BYE!” TO X
LEFT(X,2)=GO,SUBSTR(X,6,2)+SUBSTR(X,6)=BYBYE!,RIGHT(X,3)=YE!
(6)計(jì)算子串出現(xiàn)次數(shù)函數(shù)
格式:OCCURS(<字符表達(dá)式1>,<字符表達(dá)式2>)
功能:返回第一個(gè)字符串在第二個(gè)字符串中出現(xiàn)的次數(shù)。
例如:STORE ‘abracadabra’ TO S
OCCURS(‘a’,S)=5, OCCURS(‘b’,S)=2, OCCURS(‘c’,S)=1, OCCURS(‘e’,S)=0
(7)求子串位置函數(shù)
格式:AT(<字符表達(dá)式1>,<字符表達(dá)式2>,<數(shù)值表達(dá)式>)
ATC(<字符表達(dá)式1>,<字符表達(dá)式2>,<數(shù)值表達(dá)式>)
功能:驗(yàn)證表達(dá)式1是否是表達(dá)式2的子串,如果是,返回表達(dá)式1的首字符在表達(dá)式2中的位置,若不是,則為0
ATC()與AT()的功能類似,但比較時(shí)不區(qū)分大小寫
例如: STORE”This is Visual FoxPro” TO X
AT(“fox”,X)=0,ATC(“fox”,X)=16,AT(“is”,X,3)=10,AT(“xo”,X)
(8)子串替換函數(shù)
格式:STUFF( <字符表達(dá)式1>,<起始位置>,<長(zhǎng)度>,<字符表達(dá)式2>)
功能:用<字符表達(dá)式2>的值替換<字符表達(dá)式1>中由<起始位置>和<長(zhǎng)度>指明的一個(gè)子串。
例如:STORE ‘GOOD BYE!’ TO S1
STORE ‘MORNING’ TO S2
?STUFF(S1,6,3,S2)=GOOD MORNING!
?STUFF(S1,1,4,S2)=MORNING BYE!
(9)字符替換函數(shù)
格式:CHRTRAN(<字符表達(dá)式1>,<字符表達(dá)式2>,<字符表達(dá)式3>)
功能:當(dāng)?shù)谝粋€(gè)字符中的一個(gè)或多個(gè)字符與第二個(gè)字符串中的某個(gè)字符相匹配時(shí),就用第三個(gè)字符中的對(duì)應(yīng)字符(相同位置)替換這些字符。如果第三個(gè)字符串包含的字符個(gè)數(shù)少于第二個(gè)字符串包含的字符個(gè)數(shù),因而沒有對(duì)應(yīng)字符,那么第一個(gè)字符串中相匹配的各字符將會(huì)被鏟除。如果第三個(gè)字符串包含的字符個(gè)數(shù)多于第二個(gè)字符串包含的字符個(gè)數(shù),多于字符被刪掉。
例如:CHRTRAN(“ABACAD”,”ACD”,”X12”)=XBX1X2
CHRTRAN(“計(jì)算機(jī)ABC”,”計(jì)算機(jī)”,”電腦”)=電腦ABC
CHRTRAN(“大家好!”,”大家”,”您”)=您好!
總結(jié):第二個(gè)表達(dá)式?jīng)]有的照寫,第三個(gè)表達(dá)式?jīng)]有的去掉。
(10)字符串匹配函數(shù)
格式:LIKE(<字符表達(dá)式1>,<字符表達(dá)式2>)
功能:比較兩個(gè)字符串對(duì)應(yīng)位置上的字符,若所有對(duì)應(yīng)字符相匹配,函數(shù)返回邏輯真(.T.)否則返回邏輯假(.F.)
<字符表達(dá)式1>中可以包含通配符*和?。*可與任何數(shù)目的字符相匹配,?可以與任何單個(gè)字符相匹配。
例如:
STORE “abc” to x
STORE “abcd” to y
LIKE(“ab*”,x)=.T. LIKE(“ab*”,y)=.T. LIKE (x,y)=.F.
LIKE(“?b?”,x)=.T. LIKE(“ABc”,x)=.F
新聞熱點(diǎn)
疑難解答