字符及字符串處理函數(shù):字符及字符串處理函數(shù)的處理對象均為字符型數(shù)據(jù),但其返回值類型各異. 1.取子串函數(shù): 格式:substr(c,n1,n2) 功能:取字符串C第n1個字符起的n2個字符.返回值類型是字符型. 例:取姓名字符串中的姓. store "王小風(fēng)" to xm substr(xm,1,2) 結(jié)果為:王 2.刪除空格函數(shù):以下3個函數(shù)可以刪除字符串中的多余空格,3個函數(shù)的返回值均為字符型. trim(字符串):刪除字符串的尾部空格 alltrim(字符串):刪除字符串的前后空格 ltrim(字符串):刪除字符串的前面的空格 例:去掉第一個字符串的尾空格后與第二個字符串連接 store "abcd " to x store "efg" to y trim(x)+y abcdefg 3.空格函數(shù): 格式:space(n) 說明:該函數(shù)的功能是產(chǎn)生指定個數(shù)的空格字符串(n用于指定空格個數(shù)). 例:定義一個變量dh,其初值為8個空格 store space(8) to dh 4.取左子串函數(shù): 格式:left(c,n) 功能:取字符串C左邊n個字符. 5.取右子串函數(shù): 格式:right(c,n) 功能:取字符串c右邊的n個字符 例:a="我是中國人" right(a,4) 國人 left(a,2) 我 6.empty(c):用于測試字符串C是否為空格. 7.求子串位置函數(shù): 格式:At(字符串1,字符串2) 功能:返回字符串1在字符串2的位置 例:?At("教授","副教授") 2 8.大小寫轉(zhuǎn)換函數(shù): 格式: lower(字符串) upper(字符串) 功能:lower()將字符串中的字母一律變小寫;upper()將字符串中的字母一律變大寫 例: bl="FoxBASE" lower(bl)+space(2)+upper(bl) foxbase FOXBASE 9.求字符串長度函數(shù): 格式:len(字符串) 功能:求指定字符串的長度 例:a="中國人" len(a) 6 二.數(shù)學(xué)運算函數(shù): 1.取整函數(shù): 格式:int(數(shù)值) 功能:取指定數(shù)值的整數(shù)部分. 例:取整并顯示結(jié)果 int(25.69) 25 2.四舍五入函數(shù): 格式:round(數(shù)值表達式,小數(shù)位數(shù)) 功能:根據(jù)給出的四舍五入小數(shù)位數(shù),對數(shù)值表達式的計算結(jié)果做四舍五入處理 例:對下面給出的數(shù)四舍五入并顯示其結(jié)果 round(3.14159,4),round(2048.9962,0),round(2048.9962,-3) 3.1416 2049 2000 3.求平方根函數(shù): 格式:sqrt(數(shù)值) 功能:求指定數(shù)值的算術(shù)平方根 例:?sqrt(100) 10 4.最大值、最小值函數(shù): 格式: Max(數(shù)值表達式1,數(shù)值表達式2) Min(數(shù)值表達式1,數(shù)值表達式2) 功能:返回兩個數(shù)值表達式中的最大值和最小值 例: x1=123.456 x2=234.567 max(x1,x2) 234.567 min(x1,x2) 123.456 5.求余數(shù)函數(shù): 格式:mod(表達式1,表達式2) 功能:求表達式1對表達式2的余數(shù) 例: mod(10,3) 1 6.求指數(shù)、對數(shù)函數(shù): 格式: exp(數(shù)值表達式) log(數(shù)值表達式) 功能: (1).exp()計算自然數(shù)e為底,表達式的值為指數(shù)的冪 (2).log()計算表達式值的自然對數(shù),返回lnx的值. 例: x=1 y=exp(x) exp(x),log(x) 2.72 1 三.轉(zhuǎn)換函數(shù): 1.數(shù)值轉(zhuǎn)數(shù)字字符串函數(shù): 格式:str(n,n1,n2) 功能:將數(shù)值n轉(zhuǎn)換為字符串,n1為總長度,n2為小數(shù)位 例:?str(321.56) 322 &&隱含四舍五入取整轉(zhuǎn)換為字符型數(shù)據(jù) str(321.56,6,2) 321.56 2.字符轉(zhuǎn)數(shù)值函數(shù): 格式:val(s) 功能:將數(shù)字字符串s轉(zhuǎn)換為數(shù)值 例:x="23" y="76" val(x)+val(y) 100 3.字符轉(zhuǎn)日期函數(shù): 格式:ctod(c) 功能:將日期字符串c轉(zhuǎn)換為日期 例:set date ansi &&日期格式設(shè)為美國標(biāo)準(zhǔn)化協(xié)會格式 ctod("^2005.11.14") 2005.11.14 4.日期轉(zhuǎn)字符函數(shù): 格式:dtoc(d) 功能:將日期d轉(zhuǎn)化為日期字符串 例:將日期型數(shù)據(jù)轉(zhuǎn)化為字符型日期數(shù)據(jù)并顯示漢字日期. set century on &&開啟世紀(jì)前綴,即日期中年份用4位表示 set date ansi rq={^2005.11.14} rq=dtoc(rq) substr(rq,1,4)+"年"+substr(rq,6,2)+"月"+substr(rq,9,2)+"日" 2005年11月14日 5.時間轉(zhuǎn)字符函數(shù): 格式:ttoc(時間) 功能:將時間轉(zhuǎn)為時間字符串 6.字符轉(zhuǎn)時間函數(shù): 格式:ctot(c) 功能:將時間字符串轉(zhuǎn)化為時間 7.字符串替換函數(shù): 格式:stuff(<字符表達式1>,<起始位置>,<字符個數(shù)>,<字符表達式2>) 功能:從指定位置開始,用<表達式2>的值去替換<表達式1>中指定個數(shù)字符.若<字符個數(shù)>為零,直接插入;若<表達式2>為空字符串,則刪除<表達式1>中指定個數(shù)的字符. 例:X="祝大家新年好!" stuff(X,7,4,"春節(jié)") 祝大家春節(jié)好 stuff(X,11,0,"春節(jié)") 祝大家新年春節(jié)好 stuff(x,7,4," ") 祝大家好 8.字符轉(zhuǎn)ASCⅡ碼函數(shù): 格式:Asc(<字符表達式>) 功能:把<字符表達式>左邊第一個字符轉(zhuǎn)成相應(yīng)的ASCⅡ碼值 例:x="Foxpro" Asc(x),Asc(lower(x)) 70 102 9.ASCⅡ碼值轉(zhuǎn)字符函數(shù): 格式:chr(數(shù)值表達式) 功能:把數(shù)值轉(zhuǎn)成相應(yīng)的ASCⅡ碼字符,返回值為字符型 例:?chr(70)+chr(111)+chr(111+9) Fox 四.日期函數(shù): 1.系統(tǒng)日期函數(shù): 格式:date() 功能:給出系統(tǒng)的當(dāng)前日期,返回值是日期型數(shù)據(jù). 例:顯示系統(tǒng)日期 date() 11/14/05 set date ansi set century on date() 2005.11.14 2.年、月、日函數(shù): 格式:(1).year(日期表達式):從日期表達式中返回一個由四位數(shù)字表示的年份. (2).month(日期表達式):從日期表達式中返回一個用數(shù)字表示的月份. (3).day(日期表達式):從日期表達式中返回一個用數(shù)字表示的日數(shù). 例:測試系統(tǒng)日期 rq=date() year(rq),month(rq),day(rq) 2005 11 14 3.系統(tǒng)時間函數(shù): 格式:time() 功能:得到當(dāng)前時間字符串 例:?time() 20:32:26 4.系統(tǒng)日期時間函數(shù): 格式:datetime() 功能:得到當(dāng)前日期時間 例:?datetime() 2005.11.14 08:35:12 PM 5.星期函數(shù): 格式:dow(日期表達式) cdow(日期表達式) 功能:dow用數(shù)字表示星期,1表示星期日,7為星期六;cdow用英文表示星期 例:?date() 2005.11.15 dow(date()),cdow(date()) 3 Tuesday 五.測試函數(shù): 1.測試文件尾函數(shù): 格式:eof([n]) 說明: (1).n指定被測工作區(qū)號,其范圍為1~32767 (2).該函數(shù)用于測試指定工作區(qū)中的表的記錄指針是否指向文件尾,是則返回真值;否則返回假值;省略可選項指當(dāng)前工作區(qū). 例:測試文件記錄指針是否指向文件尾 use 職工檔案 go bottom eof() .F. skip eof() .T. 2.測試文件頭函數(shù): 格式:bof([n]) 說明: (1).n指定被測工作區(qū)號,其范圍為1~32767 (2).用于測試指定工作區(qū)中的表的記錄指針是否指向文件頭,是則返回真值;否則返回假值;省略可選項指當(dāng)前工作區(qū). 例:測試記錄指針是否指向文件頭 use 職工檔案 go top bof() .f. skip -1 bof() .t. 3.測試當(dāng)前記錄號函數(shù): 格式:recno() 功能:得到當(dāng)前的記錄號 例: use 職工檔案 recno() 1 skip recno() 2 4.測試表文件記錄數(shù)函數(shù): 格式:reccount() 功能:得到表的記錄數(shù) 例:測試"職工檔案"表的記錄數(shù) use 職工檔案 reccount() 5 5.測試表字段數(shù)函數(shù): 格式:fcount() 功能:得到當(dāng)前的字段數(shù) 例:測試"職工檔案"表共有多少個字段 use 職工檔案 fcount() 9 6.測試查找記錄是否成功函數(shù): 格式:found() 功能:測試find、seek和locate命令查找記錄是否成功.如成功則返回真值,否則為假值. 例:在"職工檔案"表中查找"小剛"的文化程度 use 職工檔案 locate for 姓名="小剛" found() .t. display 7.文件測試函數(shù): 格式:file(字符表達式) 功能:測試字符表達式指定的文件是否存在 例:?file("e:\myvfp\職工檔案.dbf") .t. 8.數(shù)據(jù)類型測試函數(shù): 格式:type(字符表達式) 功能:測試表達式的數(shù)據(jù)類型,返回大寫字母:N(數(shù)值)、C(字符)、L(邏輯)、D(日期)、M(備注) 例: x=1236 y="hello" type("x") N type("y") C 9.測試工作區(qū)函數(shù): 格式:select() 功能:返回當(dāng)前工作區(qū)的區(qū)號 10.測試別名函數(shù): 格式:alias() 功能:測試當(dāng)前工作區(qū)的別名 例: select 1 use 職工檔案 alias zgda select 2 use 工資情況 alias() 工資情況 &&打開表時,不指定別名,表名即為別名 select zgda &&通過別名選擇工作區(qū) select() 1 11.表文件名函數(shù): 格式:dbf() 功能:返回當(dāng)前工作區(qū)打開的表名 例: use 工資情況 dbf() e:\myvfp\工資情況 六.其它函數(shù): 1.宏替換函數(shù): 格式:&變量名 說明:vfp中只有宏替換函數(shù)沒有括號.功能是返回指定字符型變量中所存放的字符串. 例:為"工資情況"表中每個人加100元工資 gz="工資" use 工資情況 replace all &gz with &gz+100 2.條件函數(shù): 格式:iif(表達式,表達式1,表達式2) 功能:若表達式值為真,則返回表達式1的值;否則返回表達式2的值;函數(shù)返回值類型與表達式1或表達式2類型一致 a=3 b=5 iif(a>b,"高興","開心") 開心 3.消息框函數(shù): 格式:messagebox(提示文本[,對話框類型[,對話框標(biāo)題文本]]) 功能:顯示提示對話框 說明: (1)對話框類型見表1: 對話框類型 功能 0 僅"確定"按鈕 1 "確定"和"取消"按鈕 2 "終止","重試"和"忽略"按鈕 3 "是","否"和"取消"按鈕 4 "是"和"否"按鈕 5 "重試"和"取消"按鈕 16 stop圖標(biāo) 32 ?圖標(biāo) 48 !圖標(biāo) 64 i圖標(biāo) 0 默認(rèn)第1個按鈕 256 默認(rèn)第2個按鈕 512 默認(rèn)第3個按鈕 (2).返回值見表2: 返回值 按鈕 1 確定 2 取消 3 終止 4 重試 5 忽略 6 是 7 否 例:分析messagebox("您確實要退出系統(tǒng)嗎?",4+64,"提示信息")會彈出什么樣的窗口. 分析:回頭觀察此函數(shù)的格式,彈出的對話框中的提示文本是"您確實要退出系統(tǒng)嗎",對話框標(biāo)題是"提示信息", 函數(shù)中間有"4+64",其中4指定對話框中出現(xiàn)"是"和"否"兩個按鈕(見表1),64指定對話框中出現(xiàn)i圖標(biāo)(見表2) ok,我們在命令窗口依次執(zhí)行下列命令: tui=messagebox("您確實要退出系統(tǒng)嗎?",4+64,"提示信息") &&變量tui用于接收messagebox函數(shù)的返回值,彈出的窗口如圖1 tui &&變量tui值取決于運行時用戶點了哪個按鈕,如果點了"是",返回6,如果點了"否",返回7,見表2 說明:實際應(yīng)用中,我們常在系統(tǒng)菜單或在表單的"退出"按鈕中添加如下代碼: tui=messagebox("您確實要退出系統(tǒng)嗎?",4+64,"提示信息") if tui=6 &&如果此條件成立,說明用戶點了"是"按鈕,執(zhí)行quit命令,安全退出 quit endif
|
|