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