vf求子字串位置函式沒看懂啥意思,求大神詳細解釋一下

2021-04-14 06:46:43 字數 5414 閱讀 3058

1樓:匿名使用者

at要區分大小寫,fox首字母小寫,和fox不一樣,所以不是子字串,結果是0。

atc不區分大小寫,fox和fox算一樣,首字母f在那句話中是第16個字元(前面有12個字母和3空格)。

vf常用函式

2樓:匿名使用者

數值函式

:1.絕對值和符號函式

格式:abs(《數值表示式》)

sign(《數值表示式》)

例如:abs(-5)=5,abs(4)=4,sign(8)=1,sign(-3)=-1,sign(0)=0

2.求平方根表示式

格式:sqrt(《數值表示式》)

例如:sqrt(16)=4,它與開二分之一次方等同。

3.圓周率函式

格式:pi()

4.求整數函式

格式:int(《數值表示式》)返回數值表示式的整數部分

ceiling(《數值表示式》)返回大於或等於表示式的最小整數

floor(《數值表示式》)返回小於或等於表示式的最大整數

例如:int(5.8)=5.8,int(-7.8)=-7,ceiling(6.4)=7,ceiling(-5.9)=-5

floor(9.9)=9

5.四捨五入函式

格式:round(《數值表示式1>,《數值表示式2>)

功能:返回制定表示式在制定位置四捨五入的結果

例如:round(345.345,2)=345.35,round(345.345,1)=345.3,round(345.345,0)=345,

round(345.345,-1)=350

6.求餘函式

格式:mod(《數值表示式1>,《數值表示式2>)

例如:mod(10,3)=1 mod(10,-3)=-2 mod(-10,3)=2 mod(-10,-3)=-1

求餘數的規律:1.首先按照兩數的絕對值求餘

2.表示式1的絕對值大於表示式2的絕對值,則餘數為表示式1的值

3.餘數取表示式1的正負號

4.若兩數異好號,餘數在加上表示式2的值為最終的結果

7. 求最大值和最小值函式

max(數值表示式列表)

min (數值表示式列表)

例如:max(2,3,5)=5 max(„2‟,‟12‟,‟05‟)=2 max(„汽車‟,‟飛機‟,‟輪船‟)

字串比較的規律:

字串比較首先比較第一個字母,如果有結果那就不用在進行比較了。如果相等在進行第二個字母的比較,以次類推。

字元函式

1.求字串長度函式

格式:len(《字元表示式》)

功能:返回制定字元表示式的長度,即所包含的字元個數。函式值為數值型

例如:x=「中文visual foxpro6.0」 則len(x)=20

2.大小寫轉換函式

格式:lower(《字元表示式》)

upper(《字元表示式》)

功能:lower將制定表示式值中的大寫字母轉換成小寫字母,其他字元不變

upper將指定表示式值中的小寫字母轉換成大寫字母,其他字元不變。

例如:lower(„x1y2a‟)=x1y2a upper(„n=1‟)=n=1

3.空格字串生成函式

格式:space(《字元表示式》)

功能:返回指定數目的空格組成的字串。

4.刪除前後空格函式

格式:trim(《字元表示式》)

ltrim(《字元表示式》)

alltrim(《字元表示式》)

功能:trim():返回指定字元表示式值去掉尾部空格後形成的字串

ltrim():返回指定字元表示式值去掉前導空格後形成的字串

alltrim():返回指定字元表示式值去掉前導空格和尾部空格後形成的字串。

例如: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(《字元表示式》,《起始位置》,《長度》)

例如:store „-123.‟ to x,stort „45‟ to y

store ‟a45‟ to z

0val(x+y)=123.45,val(x+z)=123.00,val(z+y)=0.00

3.字串轉換成日期或日期時間

格式:ctod(《字元表示式》)轉化成日期型資料

ctot(《字元表示式》)轉化成日期時間型資料

4.日期或日期時間轉化成字串

格式:dtoc(《日期表示式》|《日期時間表示式》[,1])

ttoc(《日期時間表示式》 [,1])

功能toc()將日期型資料或日期時間資料的日期部分轉化成字串

ttoc()將日期時間資料轉化成字串

宣告:對dtoc()來說,如果選項是1,則字串的格式總是yyyymmdd,8個字元。 對ttoc()來說,如果使用選項1,則字串格式總是yyyymmddhhmmss,14個字元

例如:store datetime() to t

dtoc(t)=11/11/2005, dtoc(t,1)=20051111,

ttoc(t)=11/11/2005 18:54:34 pm ttoc (t,1)=20051111185434

5巨集替換函式

格式 :&《字元變數》[.]

功能:替換出字元變數的內容,即去掉定界符。

例如:kk=「456」, ?&kk*100=45600

測試函式

1.值域測試函式

格式:between(《表示式t>,《表示式l>,《表示式h>)

例如:store null to x;store 100 to y

between(150,y,y+100)=.t.

between(90,x,y)=null

2.空值(null值)測試函式

格式:isnull(《表示式》)

例如:store .null. to x

isnull(x)=.t.

3「空」值測試函式

格式:empty(《表示式》)

4.資料型別測試函式

格式:vartype (《表示式》[,《邏輯表示式》])

功能:測試表示式的型別,返回一個大寫字母,函式值為字元型

2.空值(null值)測試函式

格式:isnull(《表示式》)

3.表檔案尾測試函式

格式:eof([《工作區號》|《表別名》])

4.表檔案頭測試函式

格式:bof([《工作區號》|《表別名》])

5.記錄號測試函式

格式:recno([《工作區號》|《表別名》])

6記錄個數測試函式

reccount ([《工作區號》

6.條件測試函式

格式:iif(《邏輯表示式》,《表示式1>,《表示式2>)

功能:測試《邏輯表示式》的值,表示式邏輯若為真,函式返回《表示式1>

的值,若為邏輯假,函式返回《表示式2>的值,《表示式1>和《表示式2>表示式型別不要求相同。

例如:x=100;y=300

iif(x>100,x-50,x+50)=150;iif(y>100,y-50,y+50)=250

7.記錄刪除測試函式

格式:deleted([《工作區號》|《表別名》])

vf命令及函式 命令

store {}|| to db &&賦空日期 store to tblankdate &&賦空日期時間

set strictdate to [0|1] &&關閉日期格式檢查0關1開 #define 《常量名》《表示式》 &&賦值符號(編譯)常量 #undefine 《常量名》 &&釋放定義的常量 store 《表示式》to《變數名錶》 &&記憶體變數賦值

list memory [like《萬用字元》] [to print|to 《檔名》] && 顯示記憶體變數 disply用於分屏顯示

declare 陣列名1(行數[,列數])[,陣列名2(行數[,列數])]... &&定義陣列,也可用dimension定義 函式

vf基本資料型別: c-字元型 n-數值型 i-整型 f-浮點型

b-雙精度型 y-貨幣型 l-邏輯型 d-日期型 t-日期時間型 m-備註型 g-通用型

* 字元表示式 數值表示式 日期時間型表示式 n型函式

abs&&絕對值 int&&無條件取整

round(,n) &&四捨五入.n>=0,從小數點後n+1四 舍五入,n<0,從小數點前n位取.n為小數絕對取整 sqrt&&平方根.expn必須大於0

log/log10&&自然對數/以10為底的對數 exp&&自然指數 sin&&正弦 cos&&餘弦 tan&&餘切 asin&&反正弦 acos&&反餘弦 atan&&反餘切 mod&&取餘/取模

ceiling&&返回大於等於expn的最小整數 floor&&返回小於等於expn的最大整數

sign&&符號函式.若expn>0、=0、<0,返回1、0、-1 rand&&隨機函式.返回0與1之間一個隨機數,expn為種子數 max|min(,)&&取大小函式.

expn應為d、n型 c型函式

len&&測試字串長度,返回n型 upper&&返回c型大寫字串 lower&&返回c型小寫字串 space&&空格函式.返回c型

substr(,[,]) &&擷取expn1開始的expn2個字元,若省略expn2則從expn1擷取開始到末尾

ltrim&&刪除expc前空格 rtrim/trim&&刪除expc後空格

alltrim&&刪除expc前後空格,返回c型 &《字元型記憶體變數》[.] &&巨集代換

$&&測試1是否包含2.返回.t.

、.f. at(,&&搜尋1在2中的起始位置,若無為0 left(,) &&擷取左邊開始的expn個字元 right(,) &&擷取右邊開始的expn個字元

stuff (,,,) &&替換.用c2的內容替換n1開始的n2個c1個字元 padc (,[,]) &&左右填充.用c填充在字串兩邊,n為填充後總長度.字串可為c、n、d型

padl(,[,]) &&左填充 padr(,[,]) &&右填充 ltrim &&刪空格(前) ririm/irim&&刪空格(後) replcate(,) &&重複n次c

transform(,) &&按expc的要求顯示exp e.g:?transform(131.137,"$$$.999") $131.140 d型函式

date() &&當前系統日期,返回t型 time() &&當前系統時間,返回c型 datetime() &&系統日期時間,返回t型

year(|) &&年份.返回d|t對應年的數值,n型 month(|) &&月份 day (|) &&日

vf中求子串出現次數函式時at和atc和occurs命令有什麼區別

at和atc求子串在主串中出現的位置,at 1個全形字元計2個字元,atc 1個全形字元也計1個字元 occurs求子串在主串中出現的次數 求子串位置函式。store this is visual foxpro to x at fox x at is x,3 請講解謝謝 at fox x 0 求fo...

可以用strcpy函式將字串拷貝到字元陣列中嗎

可以。include include int main char name1 20 吃了沒?世界 std string name2 吃了 strcpy s name1,name2.size 1,name2.c str 這個改成name2.c str name2是知string型別,不是char st...

C替換字串中固定位置0的問題

string str otonaninaru 009 09 10 001 配信日 2009 06 19 string arr str.split if arr.length 2 str string.join arr console.writeline str string s otonaninar...