最新-VF程序設(shè)計基礎(chǔ)-課件_第1頁
最新-VF程序設(shè)計基礎(chǔ)-課件_第2頁
最新-VF程序設(shè)計基礎(chǔ)-課件_第3頁
最新-VF程序設(shè)計基礎(chǔ)-課件_第4頁
最新-VF程序設(shè)計基礎(chǔ)-課件_第5頁
已閱讀5頁,還剩163頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

最新-VF程序設(shè)計基礎(chǔ)-課件1第二章VisualFoxPro程序設(shè)計基礎(chǔ)第二章VisualFoxPro程序設(shè)計基礎(chǔ)22.1常量與變量常量通常是指以文字串形式出現(xiàn)在代碼中的數(shù)據(jù),代表一個具體的、不變的值。變量用于存儲數(shù)據(jù),一個變量在不同的時該可以存放不同的數(shù)據(jù)。常量、變量類型包括數(shù)值型(N)、貨幣型(Y)、字符型(C)、日期型(D)、日期時間型(T)、邏輯型(L)六種。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1常量與變量第二章VisualFoxPro程序3第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.1常量常量一個非常重要的特點是類型不同的常量書寫格式不同。

1.?dāng)?shù)據(jù)值型常量就是常數(shù),用來表示一個數(shù)量大小的具體值,由0~9、小數(shù)點和正負(fù)號構(gòu)成。數(shù)值型數(shù)據(jù)在內(nèi)存中用8個字節(jié)表示。如:56780.15-56

也可以用科學(xué)記數(shù)法形式書寫來表示很大或很小的數(shù):如2.845×1012用2.845E12表式,5.8×10-12用5.8E-12表式。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.14第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.貨幣型常量表示貨幣值,和數(shù)值型常量類似,但要在前放一個美元符號($),如:$57$68.25-$78

此類型數(shù)據(jù)在存儲及運算時采用4位小數(shù),如有多余的小數(shù)將四舍五入。它沒有科學(xué)記數(shù)法形式。貨幣型常量在內(nèi)存中用8個字節(jié)表示。3.字符型常量也稱為字符串,通常用來表示人名、代碼編號、地名、性別、民族、書名等類似代表特定意義的信息。其書寫方法是用半角單引號、雙引號或方括號(定界符)把字符串?dāng)U起來,規(guī)定常量的起始和終止。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.貨幣型常5第二章VisualFoxPro程序設(shè)計基礎(chǔ)如:”FDSGED””北京”’海拉爾’[中國]”74568”’我是一個”中國人”’

定界符必須成對,如果定界符本身也做字符串內(nèi)容必須用另一定界符定界。

不包含認(rèn)何字符的字符串(””)叫空串。與只含空格的字符串(””)不同。

[要注意單問號(?)命令與雙問號(??)的功能]第二章VisualFoxPro程序設(shè)計基礎(chǔ)如:”F6第二章VisualFoxPro程序設(shè)計基礎(chǔ)

4.日期型常量有兩種書寫格式,即嚴(yán)格日期格式和傳統(tǒng)日期格式,其定界符都是一對花括花。花括號內(nèi)年、月、日間用斜杠(/)、連字號(—)、句點(.)或空格做分隔符分隔。日期型數(shù)據(jù)用8個字節(jié)表示。①嚴(yán)格日期格式書寫格式固定:{^yyyy-mm-dd},定界符內(nèi)第一個字符必須是脫字符"^",年份必須4位,書寫不受任何環(huán)境設(shè)置命令影響,能表達(dá)一個確切的日期。如:{^2019-08-08}第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.日期型7第二章VisualFoxPro程序設(shè)計基礎(chǔ)②傳統(tǒng)日期格式要根據(jù)系統(tǒng)設(shè)置來書寫,受SETDATETO和SETCENTURYTO等環(huán)境設(shè)置命令影響,書寫時月、日各為2位,年份可以是2位也可以是4位。如:{01/25/98}、{01/25/2019}VFP默認(rèn)下不可以使用,只能在SETSTRICTDATETO0時才可以使用。第二章VisualFoxPro程序設(shè)計基礎(chǔ)②傳統(tǒng)日期格8第二章VisualFoxPro程序設(shè)計基礎(chǔ)●影響日期格式的相關(guān)設(shè)置命令有:①SETMARKTO[日期分隔符]命令功能:用于指定顯示日期值時所用的分隔符。若未指定,表示恢復(fù)系統(tǒng)默認(rèn)分隔符”/“)②SETDATE[TO]AMERICAN|ANSI|JAPAN|……命令功能:用于設(shè)置日期顯示的格式。該格式也決定系統(tǒng)如何解釋一個傳統(tǒng)格式的日期常量。第二章VisualFoxPro程序設(shè)計基礎(chǔ)●影響日期格9第二章VisualFoxPro程序設(shè)計基礎(chǔ)③SETCENTURYON|OFF|TO[世紀(jì)值]ROLLOVER[年份參照值]命令功能:用于決定如何顯示或解釋一個日期數(shù)據(jù)的年份。ON顯示世紀(jì),即用4位數(shù)字表示年份。OFF不顯示世紀(jì),即用2位數(shù)字表示年份。該項是系統(tǒng)默認(rèn)設(shè)置。④SETSTRICTDATETO[0|1|2]命令功能:用于設(shè)置是否對日期格式進(jìn)行檢查。0:不進(jìn)行嚴(yán)格的日期格式檢查。1:進(jìn)行嚴(yán)格的日期格式檢查。為系統(tǒng)默認(rèn)設(shè)置。2:進(jìn)行嚴(yán)格的日期格式檢查,并且對CTOD和CTOT函數(shù)的格式也有效。第二章VisualFoxPro程序設(shè)計基礎(chǔ)③SETC10第二章VisualFoxPro程序設(shè)計基礎(chǔ)2019年9月份考試試題:(15)要想將日期型或日期時間型數(shù)據(jù)中的年份用4位數(shù)字顯示,應(yīng)當(dāng)使用設(shè)置命令。

A)SETCENTURYONB)SETCENTURYOFFC)SETCENTURYTO4D)SETCENTURYOF4第二章VisualFoxPro程序設(shè)計基礎(chǔ)2019年911第二章VisualFoxPro程序設(shè)計基礎(chǔ)5.日期時間型常量與日期一樣有傳統(tǒng)及嚴(yán)格兩種書寫格式,主要在日期書寫上有區(qū)別,與日期型一樣,也受上面的設(shè)置命令控制。嚴(yán)格日期時間型是我們常用的書寫方式,格式如下:

{^yyyy-mm-dd[hh[:mm[:ss]][a|p]]}如:{^2019-08-08,11:36:58}日期時間型數(shù)據(jù)用8個字節(jié)存儲。第二章VisualFoxPro程序設(shè)計基礎(chǔ)5.日期時間12第二章VisualFoxPro程序設(shè)計基礎(chǔ)6.邏輯型常量只有兩個值:真(.T.)、假(.F.)。書寫時大小寫的.T.或.Y.表示真,大小寫的.F.或.N.表示假。這里的“.”是定界符,必不可少。邏輯型數(shù)據(jù)只占用一個字節(jié)。第二章VisualFoxPro程序設(shè)計基礎(chǔ)6.邏輯型常13第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.2變量

變量值是能夠隨時更改的。每個變量有一個變量名,代碼通過變量名來訪問變量的值。VF變量分為字段變量和內(nèi)存變量兩大類。表中的字段名就是變量,稱為字段變量。內(nèi)存變量是內(nèi)存中的一個存儲區(qū)域,變量值就是存放在這個區(qū)域中的數(shù)據(jù),變量類型取決于變量值的類型。隨著存放數(shù)據(jù)的變化變量值在變化,類型也隨之改變。與常量一樣也有相應(yīng)的6種類型。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.214第二章VisualFoxPro程序設(shè)計基礎(chǔ)1.簡單的內(nèi)存變量變量都有名,通過變量名來使用變量中存放的數(shù)據(jù)(訪問變量值)。向簡單內(nèi)存變量賦值不用先定義,賦值時變量不存在將自動產(chǎn)生。有兩種賦值格式:①<內(nèi)存變量名>=<表達(dá)式>②STORE<表達(dá)式>TO<內(nèi)存變量名表>●等號一次給一個變量賦值。STORE命令可以同時給多個變量賦相同值,變量名間用逗號隔開。第二章VisualFoxPro程序設(shè)計基礎(chǔ)1.簡單的內(nèi)15第二章VisualFoxPro程序設(shè)計基礎(chǔ)一個變量在使用前并不需要特別的定義或聲明,當(dāng)給變量賦值而變量不存在時系統(tǒng)會自動建立它。可以對內(nèi)存變量重新賦值來改變其取值和類型。當(dāng)出現(xiàn)內(nèi)存變量與字段變量同名時,若直接用變量名來訪問則系統(tǒng)默認(rèn)為字段變量,要訪問內(nèi)存變量必須在變量名前加上前綴M.(或M->)。2019年4月份考試填空題:(7)執(zhí)行命令A(yù)=2019/4/2之后,內(nèi)存變量A的數(shù)據(jù)類型是【7】型。(數(shù)值)第二章VisualFoxPro程序設(shè)計基礎(chǔ)一個變量在使16第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.?dāng)?shù)組數(shù)組是內(nèi)存中連續(xù)的一片存儲區(qū)域,它由一系列元素組成,每個元素可通過數(shù)組名及相應(yīng)的下標(biāo)來訪問。每個數(shù)組元素相當(dāng)于一個簡單變量,可以給元素分別賦不同類型的值。數(shù)組在使用前一般要用DIMENSION或DECLARE命令創(chuàng)建,定義是一維還是二維數(shù)組。數(shù)組大小有下標(biāo)值的上、下限決定。下限規(guī)定為1。

格式:DIMENSION<數(shù)組名>(<下標(biāo)上限1>[,<下標(biāo)上限2>])[,……]DECLARE<數(shù)組名>(<下標(biāo)上限1>[,<下標(biāo)上限2>])[,……]數(shù)組創(chuàng)建后,系統(tǒng)自動給每個數(shù)組元素賦以邏輯假.F.。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.?dāng)?shù)組17第二章VisualFoxPro程序設(shè)計基礎(chǔ)數(shù)組及數(shù)組元素要注意:①可以使用簡單變量的地方都可使用數(shù)組元素;②賦值語句中使用數(shù)組名可以給其全部元素賦值;③同一環(huán)境中數(shù)組名不可與簡單內(nèi)存變量同名;④賦值語句的表達(dá)式位置不能出現(xiàn)數(shù)組名;⑤可以用一維數(shù)組形式訪問二維數(shù)組。第二章VisualFoxPro程序設(shè)計基礎(chǔ)數(shù)組及數(shù)組18第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.3內(nèi)存變量常用命令1.內(nèi)存變量的賦值格式1:<內(nèi)存變量名>=<表達(dá)式>格式2:STORE<表達(dá)式>TO<內(nèi)存變量名表>功能:計算表達(dá)式并將表達(dá)式值賦給一個或多個內(nèi)存變量,格式1只能給一個變量賦值。2.表達(dá)式值的顯示格式1:?[<表達(dá)式表>]格式2:??<表達(dá)式表>第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.319第二章VisualFoxPro程序設(shè)計基礎(chǔ)功能:計算表達(dá)式表中的各表達(dá)式并輸出各表達(dá)式值。不管有沒有指定表達(dá)式表,格式1都會輸出一個回車換行符。如果指定了表達(dá)式表,各表達(dá)式值將在下一行的起始處輸出。格式2不回輸出回車換行符,各表達(dá)式值在當(dāng)前行的光標(biāo)所在處直接輸出。第二章VisualFoxPro程序設(shè)計基礎(chǔ)功能:計算表20第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.內(nèi)存變量的顯示格式1:LISTMEMORY[LIKE<通配符>][TOPRINTER|TOFILE<文件名>]

格式2:DISPLAYMEMORY[LIKE<通配符>][TOPRINTER|TOFILE<文件名>]通配符包括*和?,*表示任意多個字符,?表示任意一個字符。注意兩種格式的區(qū)別。第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.內(nèi)存變量21第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.內(nèi)存變量的清除格式1:CLEARMEMORY

格式2:RELEASE<內(nèi)存變量名表>

格式3:RELEASEALL[EXTENDED]

格式4:RELEASEALL[LIKE<通配符>|EXCEPT<通配符>]格式5:CLEARALL第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.內(nèi)存變量22第二章VisualFoxPro程序設(shè)計基礎(chǔ)功能:①格式1表示清除所有內(nèi)存變量。②格式2表示清除指定的內(nèi)存變量。③格式3表示清除所有的內(nèi)存變量。在人機(jī)會話狀態(tài)時其作用與格式1相同。如果出現(xiàn)在程序中,則應(yīng)該加上短語ENTENDED,否則不能刪除全局內(nèi)存變量。④格式4表示選用LIKE短語清除與通配符相匹配的內(nèi)存變量,選用EXCEPT短語清除與通配符不相匹配的內(nèi)存變量。第二章VisualFoxPro程序設(shè)計基礎(chǔ)功能:23第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.2表達(dá)式表達(dá)式是由常量、變量和函數(shù)通過特定的運算符連接起來的式了。表達(dá)式的形式包括:●單一的運算對象(常量、變量或函數(shù))。如:23'中國'(78)●由運算符將運算對象連接起來形成的式了。如:45+50{^2019-10-01}+80

表達(dá)式都有值。依據(jù)其運算對象及值分為數(shù)值表達(dá)式、字符表達(dá)式、日期時間表達(dá)式和邏輯表達(dá)式。大多數(shù)邏輯表達(dá)式是帶比較運算符的關(guān)系表達(dá)式。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.2表24第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.2.1數(shù)值、字符與日期時間表達(dá)式

1.?dāng)?shù)值表達(dá)式由算術(shù)運算符將數(shù)值型數(shù)據(jù)(數(shù)值類的常量、變量或函數(shù))連接起來形成,結(jié)果仍為數(shù)值型。①算術(shù)運算符其運算符按優(yōu)先級別分別是:()、**或^、*、/、%、+、-②求余運算

求余運算%和取余函數(shù)MOD()的作用相同,結(jié)果的正負(fù)號與除數(shù)一致。如果被除數(shù)與除數(shù)同號,那么運算結(jié)果即為兩數(shù)相除的余數(shù);若異號,則運算結(jié)果為兩數(shù)相除的余數(shù)再加上除數(shù)的值。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.2.125第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.字符表達(dá)式由字符串運算符將字符型數(shù)據(jù)(字符類的常量、變量或函數(shù))連起來形成,結(jié)果仍是字符型數(shù)據(jù)。運算符只有兩個分別是加(+)和減(-)。+:前后兩個字符串首尾連接形成一個新的字符串。-:連接前后兩個字符串,并將前字符串的尾部空格移到合并后的新字符串尾部。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.字符表達(dá)26第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.日期時間表達(dá)式運算符只有兩個分別是加(+)和減(-)。書寫時格式有一定限制,不能任意組合。詳見表2-3。2019年4月份考試試題:(6)表達(dá)式{^2019-1-310:0:0}一{^2019-10-39:0:0}的數(shù)據(jù)類型是【6】。第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.日期時間27第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.2.2關(guān)系表達(dá)式1.關(guān)系表達(dá)式也稱簡單的邏輯表達(dá)式,格式一般為:<表達(dá)式1><關(guān)系運算符><表達(dá)式2>

功能是比較兩表達(dá)式的大小或前后。結(jié)果是邏輯型。運算符:小于(<)、大于(>)、等于(=)、不等于(<>或#或!=)、小于等于(<=)、大于等于(>=)、字符串精確比較(==)、子串包含測試($)。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.2.228第二章VisualFoxPro程序設(shè)計基礎(chǔ)運算符==和$僅適用于字符型數(shù)據(jù)。其他運算符適用于任何類型的數(shù)據(jù),但除了日期型和日期時間型數(shù)據(jù)、數(shù)值型和貨幣型數(shù)據(jù)可以比較外,其他情況下前后兩個運算對象的數(shù)據(jù)類型要一致。1.數(shù)值型、貨幣型數(shù)據(jù)比較2.日期、日期時間型數(shù)據(jù)比較3.邏輯型數(shù)據(jù)比較4.子串包含測試第二章VisualFoxPro程序設(shè)計基礎(chǔ)29第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.設(shè)置字符的排序次序可以在選項設(shè)置對話框窗口中的數(shù)據(jù)頁中設(shè)置,也可以用命令SETCOLLATETO“MACHINE”/”PINYIN”/”STROKE”。3.字符串精確比較與EXACT設(shè)置在用雙等號運算符比較兩個字符串時,只有當(dāng)兩個字符串完全相同時,運算結(jié)果才是.T.,否則為.F.。用單等號(=)比較兩個字符串時,結(jié)果與SETEXACTON|OFF的設(shè)置有關(guān)。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.設(shè)置字30第二章VisualFoxPro程序設(shè)計基礎(chǔ)ON先在較短字符串的尾部加上若干個空格,使兩個字符串的長度相等,然后再進(jìn)行精確比較。OFF默認(rèn)值當(dāng)處于OFF狀態(tài)時,只要右邊字符串與左邊字符串的前面部分內(nèi)容相匹配,即得.T.,即字符串的比較因右面的字符串結(jié)束而終止。第二章VisualFoxPro程序設(shè)計基礎(chǔ)ON先在較31第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.賦值與相等比較的區(qū)別

<內(nèi)存變量>=<表達(dá)式>(是一條命令語句)

<表達(dá)式1>=<表達(dá)式2>(是一個比較是否相等的關(guān)系表達(dá)式)第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.賦值與32第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.2.3邏輯表達(dá)式由邏輯運算符將邏輯型數(shù)據(jù)連接起來而形成,其結(jié)果仍為邏輯型數(shù)據(jù)。運算符有三個按優(yōu)先順序依次是:.NOT.或?。ㄟ壿嫹牵?、.AND.(邏輯與)、.OR.(邏輯或)。

2.2.4運算符優(yōu)先級不同類型運算出現(xiàn)在同一表達(dá)式中,先執(zhí)行算術(shù)運算符、字符串運算符和日期時間運算符,其次是關(guān)系運算符,最后執(zhí)行邏輯運算符。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.2.333第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.3常用函數(shù)

函數(shù)是用程序來實現(xiàn)的一種數(shù)據(jù)運算或轉(zhuǎn)換。每個函數(shù)都有特定的運算或轉(zhuǎn)換功能,都有一個結(jié)果,被稱為函數(shù)值或返回值。函數(shù)通常用在表達(dá)式中,也可作為一條命令使用,但此時系統(tǒng)忽略它的返回值。格式:函數(shù)名([自變量1[,自變量2[,自變量3[,……])

常用函數(shù)分五類:數(shù)值函數(shù)、字符處理函數(shù)、日期類函數(shù)、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)、測試函數(shù)。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.3常34第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.3.1數(shù)值函數(shù)

1.絕對值和符號函數(shù)

ABS(<數(shù)值表達(dá)式>)、SIGN(<數(shù)值表達(dá)式>)2.求平方根函數(shù)

SQRT(<值不為負(fù)的數(shù)值表達(dá)式>)3.圓周率函數(shù)

PI()4.求整數(shù)函數(shù)

INT(<數(shù)值表達(dá)式>)返回指定數(shù)值表達(dá)式的整數(shù)部分。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.3.135第二章VisualFoxPro程序設(shè)計基礎(chǔ)5.四舍五入函數(shù)

ROUND(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)

若<數(shù)值表達(dá)式2>大于等于0,那么它表示的是要保留的小數(shù)位數(shù);若小于0,那么它表示的是整數(shù)部分的舍入位數(shù)。6.求余函數(shù)MOD(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)7.求最大值和最小值函數(shù)MAX(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>[,<……])MIN(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>[,<……])被除數(shù)除數(shù)所有表達(dá)式的類型必須一致第二章VisualFoxPro程序設(shè)計基礎(chǔ)5.四舍五入36第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.3.2字符函數(shù)

1.求字符串長度函數(shù)LEN(<字符表達(dá)式>)功能:返回指定字符表達(dá)式值的長度,即包含的字符個數(shù)。函數(shù)值為數(shù)值型。2.大小寫轉(zhuǎn)換函數(shù)LOWER(<字符表達(dá)式>)、UPPER(<字符表達(dá)式>)

提示:只對字母進(jìn)行轉(zhuǎn)換,其它字符不變。3.空格字符串生成函數(shù)SPACE(<數(shù)值表達(dá)式>)功能:返回由指定數(shù)目的空格組成的字符串。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.3.237第二章VisualFoxPro程序設(shè)計基礎(chǔ)

4.刪除前后空格函數(shù)TRIM(<字符表達(dá)式>)返回指定字符表達(dá)式值去掉尾部空格后形成的字符串。LTRIM(<字符表達(dá)式>)返回指定字符表達(dá)式值去掉前導(dǎo)空格后形成的字符串。ALLTRIM(<字符表達(dá)式>)返回指定字符表達(dá)式值去掉前導(dǎo)和尾部空格后形成的字符串。5.取子串函數(shù)LEFT(<字符表達(dá)式>,<長度>)從指定表達(dá)式值的左端取一個指定長度的子串作為函數(shù)值。RIGHT(<字符表達(dá)式>,<長度>)SUBSTR(<字符表達(dá)式>,<起始位置>[,<長度>])從指定表達(dá)式值的指定起始位置取指定長度的子串作為函數(shù)值。第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.刪除前38第二章VisualFoxPro程序設(shè)計基礎(chǔ)6.計算子串出現(xiàn)次數(shù)函數(shù)OCCURS(<字符表達(dá)式1>,<字符表達(dá)式2>)功能:返回第一個字符串在第二個字符串中出現(xiàn)的次數(shù),函數(shù)值為數(shù)值型。若第一個字符串不是第一個字符串的子串,函數(shù)值為0。7.求子串位置函數(shù)AT(<字符表達(dá)式1>,<字符表達(dá)式2>[,<數(shù)值表達(dá)式>])ATC(<字符表達(dá)式1>,<字符表達(dá)式2>[,<數(shù)值表達(dá)式>])功能:AT()函數(shù)值為數(shù)值型。若1是2的子串,則返回1值的首字符在2中的位置。若不是子串,返回0。ATC()與AT()功能類似,但在子串比較時不區(qū)分字母大小寫。1在2中第幾次出現(xiàn)第二章VisualFoxPro程序設(shè)計基礎(chǔ)6.計算子串39第二章VisualFoxPro程序設(shè)計基礎(chǔ)8.子串替換函數(shù)格式:STUFF(<字符表達(dá)式1>,<起始位置>,<長度>,<字符表達(dá)式2>)功能:用<字符表達(dá)式2>值替換<字符表達(dá)式1>中由<起始位置>和<長度>指明的一個子串。替換和被替換的字符個數(shù)不一定相等。如果<長度>為0,則相當(dāng)于在<字符表達(dá)式1>中由<起始位置>指定的字符前面插入<字符表達(dá)式2>。如果<字符表達(dá)式2>值是空串,則相當(dāng)于在<字符表達(dá)式1>中刪去由<起始位置>和<長度>指明的子串。第二章VisualFoxPro程序設(shè)計基礎(chǔ)8.子串替換40第二章VisualFoxPro程序設(shè)計基礎(chǔ)9.字符替換函數(shù)

格式:CHRTRAN(<字符表達(dá)式1>,<字符表達(dá)式2>,<字符表達(dá)式3>)10.字符串匹配函數(shù)格式:LIKE(<字符表達(dá)式1>,<字符表達(dá)式2>)功能:比較兩個字符串對應(yīng)位置上的字符,若所有對應(yīng)字符都相匹配,函數(shù)返回邏輯真,否則返回邏輯假。<字符表達(dá)式1>中可以包含通配符*和?。第二章VisualFoxPro程序設(shè)計基礎(chǔ)9.字符替換41第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.3.3日期和時間函數(shù)

1.系統(tǒng)日期和時間函數(shù)

DATE()(函數(shù)值為日期型)TIME()(函數(shù)值為字符型)DATETIME()(函數(shù)值為日期時間型)2.求年份、月份和天數(shù)函數(shù)

YEAR(<日期表達(dá)式>|<日期時間表達(dá)式>)、MONTH(<日期表達(dá)式>|<日期時間表達(dá)式>)DAY(<日期表達(dá)式>|<日期時間表達(dá)式>)(函數(shù)返回值均為數(shù)值型)3.時、分和秒函數(shù)

HOUR(<日期時間表達(dá)式>)、MINUTE(<日期時間表達(dá)式>)、SEC(<日期時間表達(dá)式>)(函數(shù)返回值均為數(shù)值型)第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.3.342第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.3.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)

1.?dāng)?shù)值轉(zhuǎn)換成字符串STR(<數(shù)值表達(dá)式>[,<長度>[,<小數(shù)位數(shù)>]])2.字符串轉(zhuǎn)換成數(shù)值VAL(<字符表達(dá)式>)

功能:將有數(shù)字符號(包括正負(fù)數(shù)、小數(shù)點)組成的字符型數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的數(shù)值型數(shù)據(jù)。若字符串內(nèi)出現(xiàn)非數(shù)字字符,那么只轉(zhuǎn)換前面部分;若字符串的首字符不是數(shù)字符號,則返回數(shù)值零,但忽略前導(dǎo)空格。3.字符串轉(zhuǎn)換成日期或日期時間CTOD(<字符表達(dá)式>)CTOT(<字符表達(dá)式>)第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.3.443第二章VisualFoxPro程序設(shè)計基礎(chǔ)

4.日期或日期時間轉(zhuǎn)換成字符串DTOC(<日期表達(dá)式>|<日期時間表達(dá)式>[,1])TTOC(<日期時間表達(dá)式>[,1])5.宏替換函數(shù)

&<字符型變量>[.]

功能替換出字符型變量的內(nèi)容,即&的值是變量中的字符串。功能:替換出字符型變量的內(nèi)容,即函數(shù)值是變量中的字符串。如果該函數(shù)與其后的字符無明確分界,則要用“.”作函數(shù)結(jié)束標(biāo)識。宏替換可以嵌套使用。第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.日期或44第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.3.5測試函數(shù)

1.值域測試函數(shù)BETWEEN(<表達(dá)式T>,<表達(dá)式L>,<表達(dá)式H>)

功能:判斷一個表達(dá)式的值是否介于另外兩個表達(dá)式的值之間。當(dāng)T值大于等于L且小于等于H時,函數(shù)值為邏輯真,否則函數(shù)值為邏輯假。如果L或H有一個是NULL值,那么函數(shù)值也是NULL值。該函數(shù)的自變量類型可以是數(shù)值型、字符型、日期型、日期時間型、浮點型等。但3個自變量的數(shù)據(jù)類型要一致。

第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.3.545第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.空值(NULL值)測試函數(shù)ISNULL(<表達(dá)式>)功能:判斷一個表達(dá)式的運算結(jié)果是否為NULL值,若是則返回真,否則返回假。3."空"值測試函數(shù)EMPTY(<表達(dá)式>)功能:根據(jù)指定表達(dá)式的運算結(jié)果是否為“空”值,返回邏輯真或邏輯假。這里所指的“空”值與NULL值是兩個不同的概念。不同數(shù)據(jù)類型的“空”值,有不同的規(guī)定。見表2.6。

第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.空值(N46第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.?dāng)?shù)據(jù)類型測試函數(shù)VARTYPE(<表達(dá)式>[,<邏輯表達(dá)式>])功能:測試<表達(dá)式>的類型,返回一個大寫字母,函數(shù)值為字符型。見表2.7。若<表達(dá)式>的運算結(jié)果是NULL值,則函數(shù)根據(jù)<邏輯表達(dá)式>值決定是否返回<表達(dá)式>的類型;如果<邏輯表達(dá)式>為.T.,就返回<表達(dá)式>的類型;如果<邏輯表達(dá)式>為.F.或缺省,則返回X以表明<表達(dá)式>的運算結(jié)果是NULL。第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.?dāng)?shù)據(jù)類型47第二章VisualFoxPro程序設(shè)計基礎(chǔ)5.表文件尾測試函數(shù)系統(tǒng)對表中的記錄是逐條進(jìn)行處理的。對于一個打開的表來說,在某一時刻只能處理一條記錄。VF為每一個打開的表設(shè)置了一個內(nèi)部使用的記錄指針,指向正在被操作的記錄,該記錄稱為當(dāng)前記錄。記錄指針的作用是標(biāo)識表的當(dāng)前記錄。

TOP:首記錄。BOTTOM:尾記錄BOF:在第一個記錄之前的文件起始標(biāo)識。

EOF:在最后一個記錄后面的文件結(jié)束標(biāo)識。第二章VisualFoxPro程序設(shè)計基礎(chǔ)5.表文件尾48第二章VisualFoxPro程序設(shè)計基礎(chǔ)使用測試函數(shù)能夠得到指針的位置。剛剛打開表時,記錄指針總是指向首記錄。格式:EOF([<工作區(qū)號>|<表別名>])若缺省自變量,則測試當(dāng)前表文件。若在指定工作區(qū)上沒有打開表文件,函數(shù)返回邏輯假。若表文件中不包含任何記錄,函數(shù)返回邏輯真。第二章VisualFoxPro程序設(shè)計基礎(chǔ)49第二章VisualFoxPro程序設(shè)計基礎(chǔ)6.表文件首測試函數(shù)BOF([<工作區(qū)號>|<表別名>])7.記錄號測試函數(shù)RECNO([<工作區(qū)號>|<表別名>])8.記錄個數(shù)測試函數(shù)RECCOUNT([<工作區(qū)號>|<表別名>])9.條件測試函數(shù)IIF(<邏輯表達(dá)式>,<表達(dá)式1>,<表達(dá)式2>)10.記錄刪除測試函數(shù)DELETED([<工作區(qū)號>|<表別名>])第二章VisualFoxPro程序設(shè)計基礎(chǔ)6.表文件首50第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.4程序與程序文件2.4.1程序的概念學(xué)習(xí)VisualFoxPro目的是要調(diào)用它提供的功能來組織和處理數(shù)據(jù),完成一些具體任務(wù)。調(diào)用VFP功能的方式有兩種:交互方式和程序方式。

程序是能夠完成一定任務(wù)的命令的有序集合。這組命令被存放在稱為程序文件或命令文件的文本文件中。當(dāng)運行程序時,系統(tǒng)會自動按一定次序執(zhí)行程序文件中的命令。較交互方式它有以下特點:①可利用編輯器方便地輸入、修改和保存程序。②建立后可多次運行,且一個程序中還可以調(diào)用另一個程序。③程序中可以使用在命令窗口無法使用的命令和語句。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.4程51第二章VisualFoxPro程序設(shè)計基礎(chǔ)程序中可以插入注釋以提高程序的可讀性。其為非執(zhí)行代碼,不影響程序功能。有兩種注釋方式:①*<注釋內(nèi)容>或NOTE<注釋內(nèi)容>整行注釋,一般用于對下面一段命令代碼的說明。②&&<注釋內(nèi)容>在命令行后對當(dāng)前命令功能進(jìn)行注釋程序中的每條命令都以回車結(jié)尾,如果一行太長可以在行后用分號(;)回車轉(zhuǎn)到下行,表示下行和上行是一條命令。另外在編程時通??梢猿绦蜷_頭或尾添加相關(guān)環(huán)境設(shè)置命令以便對程序整體進(jìn)行設(shè)置或取消。常用的有:SETTALKON/OFF、SETCENTURYON/OFF、SETSAFEON/OFF等。第二章VisualFoxPro程序設(shè)計基礎(chǔ)程序中可以插52第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.2程序文件的建立與執(zhí)行

1.程序文件的建立與修改程序文件的建立與修改一般是通過調(diào)用VFP系統(tǒng)內(nèi)置的文本編輯器來進(jìn)行的。㈠建立程序文件的步驟操作:①從“文件”菜單中選擇“新建”命令,在新建對話框中選擇“程序”文件類型,來建立,或在項目管理器中的“代碼”標(biāo)簽中選擇“程序”后點擊新建來建立程序文件。也可以在命令窗口輸入:MODIFYCOMMAND[文件名]來建立程序文件。②在文本編輯器窗口中輸入程序內(nèi)容。③保存程序文件。給程序文件命名,程序文件的擴(kuò)展名是.prg。第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.2程53第二章VisualFoxPro程序設(shè)計基礎(chǔ)㈡修改程序文件操作:①文件菜單中選“打開”命令,調(diào)出打開對話框;②在“文件類型”列表中選擇“程序”;③在文件列表框中選定要打開的文件,并單擊“確定”打開該程序文件;④編輯修改后保存或放棄修改。也可以在項目中打開要修改的程序文件或用命令:MODIFYCOMMAND<文件名>來打開要修改的程序文件。第二章VisualFoxPro程序設(shè)計基礎(chǔ)㈡修改程序54第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.執(zhí)行程序文件可以用多種方式、多次次執(zhí)行程序。常用的兩種方式:①從“程序”菜單選擇“運行”命令并選要運行的程序文件來執(zhí)行程序;或在項目中的代碼頁中選擇要運行的程序執(zhí)行它。②命令方式,在命令窗口輸入:DO<文件名>來運行程序。當(dāng)然一個程序也可以在另一個程序文件中用DO<文件名>調(diào)用。在程序文件運行時它中包含的命令將被依次執(zhí)行,直到所有命令被執(zhí)行或執(zhí)行到以下命令:第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.執(zhí)行程序55第二章VisualFoxPro程序設(shè)計基礎(chǔ)CANCEL終止程序運行,清除所有的私有變量并返回到命令窗口;DO轉(zhuǎn)去執(zhí)行另一個程序;RETURN結(jié)束當(dāng)前程序的執(zhí)行,返回到調(diào)用它的上級程序,若無上級程序則返回命令窗口。QUIT退出VisualFoxPro系統(tǒng),返回到操作系統(tǒng)。第二章VisualFoxPro程序設(shè)計基礎(chǔ)CANCEL56第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.4.3簡單的輸入/輸出命令程序的功能一般包括數(shù)據(jù)輸入、數(shù)據(jù)加工、信息輸出三部分,在一些小程序中,傳統(tǒng)的專用輸入/輸入命令仍然很有用。

1.INPUT命令命令格式:INUPT[<字符表達(dá)式>]TO<內(nèi)存變量>當(dāng)程序執(zhí)行到該命令時,暫停等待用戶從鍵盤輸入數(shù)據(jù),回車后繼續(xù)往下執(zhí)行。其中[<字符表達(dá)式>]主要用于在屏幕上顯示的提示信息;輸入的數(shù)據(jù)可以是常量、變量也可以是表達(dá)式,但不能不輸入任何內(nèi)容而直接按回車。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.4.357第二章VisualFoxPro程序設(shè)計基礎(chǔ)不管輸入的是什么數(shù)據(jù)必須符合相應(yīng)的語法要求。如:INPUT“請輸入您的姓名:”

TONA此命令執(zhí)行后在屏幕上會顯示:請輸入您的姓名:并等待您輸入信息,輸入時不能輸入:張三,這樣會顯示找不到變量的錯誤提示,因為我們知道這字符型常量在輸入時要加定界符即:”張三”,這樣輸入就可以了,當(dāng)然其它的常量在輸入時也要按照固定的格式書寫。實際這個命令最方便的是接收數(shù)值型的數(shù)據(jù),因為數(shù)值型數(shù)據(jù)不需要加定界符。INPUT“請輸入您成績:”

TONA這個更方便用戶使用。第二章VisualFoxPro程序設(shè)計基礎(chǔ)不管輸入的是58第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.ACCEPT命令命令格式:ACCEPT[<字符表達(dá)式>]TO<(字符型)內(nèi)存變量>與上面的INPUT命令功能基本相同,關(guān)鍵是它固定接收字符型數(shù)據(jù),在輸入常量時不需要加定界符(若加上定界符,系統(tǒng)會把定界符本身作為字符串本身的一部分。)。更適合接收類似:INPUT“請輸入您的姓名:”TONA的輸入語句,在輸入姓名時直接:張三后回車就可以了,當(dāng)然如果輸入:2342這樣的數(shù)據(jù)它也按照字符型放入TO后的內(nèi)存中。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.ACCE59第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.WAIT命令命令格式:WAIT[<字符表達(dá)式>][TO<內(nèi)存變量>][WINDOWS[AT<行>,<列>]]顯示字符串表達(dá)式的值作為提示信息,暫停程序執(zhí)行,直到用戶按任意鍵或單擊鼠標(biāo)。(1)若沒有指定<字符表達(dá)式>,則顯示默認(rèn)的提示信息“按任意鍵繼續(xù)…”。若<字符表達(dá)式>為空串,那么不會顯示任何提示信息。第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.WAIT60第二章VisualFoxPro程序設(shè)計基礎(chǔ)(2)<內(nèi)存變量>用來保存用戶鍵入的字符,其類型為字符型。若用戶按的是Enter鍵或單擊鼠標(biāo),那么<內(nèi)存變量>中保存的將是空串。如果沒有指定TO<內(nèi)存變量>短語,那么輸入的字符將不被保存。(3)如果沒有WINDOW子句,提示信息被顯示在VF主窗口或當(dāng)前用戶自定義窗口里。若指定了WINDOW子句,則會出現(xiàn)一個WAIT提示窗口,用以顯示提示信息。第二章VisualFoxPro程序設(shè)計基礎(chǔ)(2)<內(nèi)存61第二章VisualFoxPro程序設(shè)計基礎(chǔ)(4)若同時選用NOWAIT短語和WINDOW子句,系統(tǒng)將不等待用戶按鍵,直接往下執(zhí)行。此時,若指定了TO<內(nèi)存變量>短語,那么<內(nèi)存變量>中保存的將是空串。之后,按下任何鍵或者移動鼠標(biāo),提示窗口就會消失。(5)若選用NOCLEAR短語,則不關(guān)閉提示窗口,直到用戶執(zhí)行下一條WAITWINDOW命令或WAITCLEAR命令為止。(6)TIMEOUT子句用來設(shè)定等待時間。一旦超時就不再等待用戶按鍵,自動往下執(zhí)行。第二章VisualFoxPro程序設(shè)計基礎(chǔ)(4)若同時62第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.5程序的基本結(jié)構(gòu)程序結(jié)構(gòu)是指程序中命令或語句執(zhí)行的流程結(jié)構(gòu)。順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)是程序的三種基本結(jié)構(gòu)。2.5.1選擇結(jié)構(gòu)支持選擇結(jié)構(gòu)的語句包括條件語句(IF—ENDIF)和分支語句(DOCASE—ENDCASE)。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.5程63第二章VisualFoxPro程序設(shè)計基礎(chǔ)1.簡單的條件語句語句格式:

IF<條件><語句序列1>ENDIF如果<條件>表達(dá)式的值是真(.T.)則執(zhí)行<語句序列1>,然后執(zhí)行ENDIF后的語句;否則跳過IF和ENDIF間的<語句序列1>,直接執(zhí)行ENDIF后的語句。第二章VisualFoxPro程序設(shè)計基礎(chǔ)1.簡單的條64第二章VisualFoxPro程序設(shè)計基礎(chǔ)CLEARINPUT"請輸入待判斷的數(shù):"TOXIFX/3=INT(X/3)?X,"可以被3整除!"ENDIFRETURN第二章VisualFoxPro程序設(shè)計基礎(chǔ)CLEAR65第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.一般形式的條件語句語句格式:

IF<條件><語句序列1>ELSE<語句序列2>ENDIF如果<條件>表達(dá)式的值是真(.T.)則執(zhí)行<語句序列1>,然后執(zhí)行ENDIF后的語句;否則執(zhí)行<語句序列2>,然后執(zhí)行ENDIF后的語句。IF和ENDIF必須成對出現(xiàn),分別是入口和出口;條件語句可以嵌套但不能交叉。書寫時最好按縮進(jìn)格式。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.一般形式66第二章VisualFoxPro程序設(shè)計基礎(chǔ)CLEARINPUT“請輸入待判斷的數(shù):”TOXIFX/3=INT(X/3)?X,”能被3整除!”

ELSE?X,”不能被3整除!”

ENDIFRETURN第二章VisualFoxPro程序設(shè)計基礎(chǔ)CLEAR67第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:判斷并輸出三個數(shù)中的最大數(shù)(不用函數(shù)條件語句編程實現(xiàn))。

CLEARINPUT“請輸入第一個數(shù):”TON1INPUT“請輸入第二個數(shù):”TON2INPUT“請輸入第三個數(shù):”TON3IFN1>=N2ANDN1>=N3MAX=N1ELSEIFN2>=N3MAX=N2ELSEMAX=N3ENDIFENDIF?”這三個數(shù)中最大數(shù)是:”,MAXRETURN第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:判斷并輸68第二章VisualFoxPro程序設(shè)計基礎(chǔ)

3.多分支語句多分支語句實現(xiàn)一種擴(kuò)展的選擇結(jié)果,它可以根據(jù)條件從多組代碼中選擇一組執(zhí)行。語句格式:

DOCASECASE<條件1><語句序列1>CASE<條件2><語句序列2>……CASE<條件n><語句序列n>[OTHERWISE<語句序列>]ENDCASE第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.多分支69第二章VisualFoxPro程序設(shè)計基礎(chǔ)依次判斷CASE后的條件是否成立。當(dāng)發(fā)現(xiàn)某個CASE后的條件成立時,就執(zhí)行該CASE和下一個CASE間的命令序列,然后執(zhí)行ENDCASE后面的命令。如所有的條件都不成立,則執(zhí)行OTHERWISE與ENDCASE之間的命令序列,然后轉(zhuǎn)向ENDCASE后面的語句。不管有幾個CASE條件成立,只有最先成立的那個CASE條件的對應(yīng)命令序列被執(zhí)行;如都不成立且沒有OTHERWISE子句,則直接跳出本結(jié)構(gòu);DOCASE與ENDCASE必須成對出現(xiàn)。第二章VisualFoxPro程序設(shè)計基礎(chǔ)依次判斷CA70第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:根據(jù)輸入的考試成績,顯示出相應(yīng)的成績等級。CLEARINPUT“輸入考試成績:”TOCJDOCASECASECJ<60DJ=”不合格”CASECJ<90DJ=”合格”O(jiān)THERWISEDJ=”優(yōu)秀”ENDCASE?“成績等級:”+DJRETURN第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:根據(jù)輸入71第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.5.2循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)也稱為重復(fù)結(jié)構(gòu),是指程序在執(zhí)行過程中,其中的某段代碼被重復(fù)執(zhí)行若干次。被重復(fù)執(zhí)行的代碼段通常稱為循環(huán)體。VFP支持的循環(huán)結(jié)構(gòu)語句包括:DOWHILE—ENDDO、FOR—ENDFOR和SCAN—ENDSCAN語句。

1.DOWHILE—ENDDO語句是一個功能全面使用頻率較高的循環(huán)語句。語句格式:

DOWHILE<條件><命令序列>[LOOP][EXIT]ENDDO第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.5.272第二章VisualFoxPro程序設(shè)計基礎(chǔ)執(zhí)行該語句時,先判斷<條件>是否為真,如果是真則執(zhí)行DOWHILE與ENDDO間的循環(huán)體,當(dāng)執(zhí)行到ENDDO時,再返回DOWHILE重新判斷循環(huán)條件是否為真,確定是否再次執(zhí)行循環(huán)體。若條件為假則結(jié)束循環(huán)語句執(zhí)行ENDDO后的語句。如果循環(huán)體中有LOOP命令,當(dāng)遇到LOOP時就結(jié)束本次循環(huán),不再執(zhí)行它下面到ENDDO間的語句,提前返回DOWHILE進(jìn)行下一次的循環(huán)判斷;如果循環(huán)體中有EXIT命令,當(dāng)遇到它時就結(jié)束循環(huán)執(zhí)行ENDDO后的語句。第二章VisualFoxPro程序設(shè)計基礎(chǔ)執(zhí)行該語句時73第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:計算1+2+3+……+100的值。CLEARI=1S=0DOWHILEI<=100S=S+II=I+1ENDDO?”1+2+3+……+100=”,SRETURN第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:計算1+74第二章VisualFoxPro程序設(shè)計基礎(chǔ)☆2019年4月份考試試題:(27)下列程序段執(zhí)行以后,內(nèi)存變量Y的值是CLEARX=12345Y=0DOWHILEX>0Y=Y+X%10X=INT(X/10)ENDDO?YA)54321B)12345C)51D)15第二章VisualFoxPro程序設(shè)計基礎(chǔ)☆201975第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.FOR—ENDFOR語句該語句通常用于已知循環(huán)次數(shù)情況下的循環(huán)操作。語句格式:

FOR<循環(huán)變量>=<初值>TO<終值>[STEP<步長>]<循環(huán)體>[LOOP][EXIT]ENDFOR|NEXT第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.FOR76第二章VisualFoxPro程序設(shè)計基礎(chǔ)先將初值賦給循環(huán)變量,然后判斷循環(huán)條件是否成立,若成立,則執(zhí)行循環(huán)體,然后循環(huán)變量增加一個步長值,并在次判斷循環(huán)條件確定下一次的循環(huán)操作。如果條件不成立則結(jié)束循環(huán)執(zhí)行ENDFOR后的語句。①<步長>默認(rèn)值是1;②<初值>、<終值>、<步長>都可以是數(shù)值表達(dá)式,但只在循環(huán)開始被計算一次;③可在循體內(nèi)改變循變量值但循環(huán)次數(shù)不變;④LOOP與EXIT功能與DOWHILE循環(huán)一樣。第二章VisualFoxPro程序設(shè)計基礎(chǔ)77第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:計算1+2+3+……+100的值。CLEARS=0FORI=1TO100S=S+IENDFOR?”1+2+3+……+100=”,SRETURN第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:計算1+78第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:計算1+3+5+……+99(1到100奇數(shù)的和)的值。CLEARS=0FORI=1TO100STEP2S=S+IENDFOR?”1+3+5+……+99=”,SRETURN第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:計算1+79第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:從鍵盤輸入十個數(shù),然后找出其中的最大值和最小值。CLEARINPUT“請輸入一個數(shù):”

TOASTOREATOMA,MIFORI=2TO10INPUT“請輸入一個數(shù):”

TOAIFMA<AMA=AENDIFIFMI>AMI=AENDIFENDFOR?’最大值:’,MA?’最小值:’,MIRETURN第二章VisualFoxPro程序設(shè)計基礎(chǔ)例:從鍵盤輸80第二章VisualFoxPro程序設(shè)計基礎(chǔ)

3.SCAN—ENDSCAN語句該循環(huán)語句也稱為掃描循環(huán)語句,功能相當(dāng)于LOCATE、CONTINUE和DOWHILE—ENDDO語句功能的合并。一般只是用于處理表中記錄,語句可指明需處理記錄的范圍及應(yīng)滿足的條件。語句格式:

SCAN[<范圍>][FOR<條件1>][WHILE<條件2>]<循環(huán)體>[LOOP][EXIT]ENDSCAN第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.SCA81第二章VisualFoxPro程序設(shè)計基礎(chǔ)執(zhí)行該語句時,記錄指針自動、依次地在當(dāng)前表的指定范圍內(nèi)滿足條件的記錄上移動,對每一條記錄執(zhí)行循環(huán)體內(nèi)的命令。①<范圍>的默認(rèn)值是ALL;②LOOP與EXIT功能與DOWHILE循環(huán)一樣。第二章VisualFoxPro程序設(shè)計基礎(chǔ)82第二章VisualFoxPro程序設(shè)計基礎(chǔ)☆2019年4月份考試試題:(18)在VisualFoxPro中,如果希望跳出SCAN…ENDSCAN循環(huán)體、執(zhí)行ENDSCAN后面的語句,應(yīng)使用______。A)LOOP語句B)EXIT語句C)BREAK語句D)RETURN語句填空:(8)如下程序顯示的結(jié)果是【8】。(13)s=1i=0dowhilei<8s=s+Ii=i+2enddo?s第二章VisualFoxPro程序設(shè)計基礎(chǔ)☆201983第二章VisualFoxPro程序設(shè)計基礎(chǔ)☆2019年9月份考試試題:填空:(8)在VisualFoxPro中,可以使用【8】語句跳出SCAN…ENDSCAN循環(huán)體外執(zhí)行ENDSCAN后面的語句。(EXIT)☆2019年9月份考試試題:(17)下列程序執(zhí)行以后,內(nèi)存變量y的值是________。

x=34357

y=0

DOWHILEx>0

y=x%10+y*10

x=int(x/10)

ENDDOA)3456

B)34567

C)7654

D)76543第二章VisualFoxPro程序設(shè)計基礎(chǔ)☆201984最新-VF程序設(shè)計基礎(chǔ)-課件85第二章VisualFoxPro程序設(shè)計基礎(chǔ)第二章VisualFoxPro程序設(shè)計基礎(chǔ)862.1常量與變量常量通常是指以文字串形式出現(xiàn)在代碼中的數(shù)據(jù),代表一個具體的、不變的值。變量用于存儲數(shù)據(jù),一個變量在不同的時該可以存放不同的數(shù)據(jù)。常量、變量類型包括數(shù)值型(N)、貨幣型(Y)、字符型(C)、日期型(D)、日期時間型(T)、邏輯型(L)六種。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1常量與變量第二章VisualFoxPro程序87第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.1常量常量一個非常重要的特點是類型不同的常量書寫格式不同。

1.?dāng)?shù)據(jù)值型常量就是常數(shù),用來表示一個數(shù)量大小的具體值,由0~9、小數(shù)點和正負(fù)號構(gòu)成。數(shù)值型數(shù)據(jù)在內(nèi)存中用8個字節(jié)表示。如:56780.15-56

也可以用科學(xué)記數(shù)法形式書寫來表示很大或很小的數(shù):如2.845×1012用2.845E12表式,5.8×10-12用5.8E-12表式。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.188第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.貨幣型常量表示貨幣值,和數(shù)值型常量類似,但要在前放一個美元符號($),如:$57$68.25-$78

此類型數(shù)據(jù)在存儲及運算時采用4位小數(shù),如有多余的小數(shù)將四舍五入。它沒有科學(xué)記數(shù)法形式。貨幣型常量在內(nèi)存中用8個字節(jié)表示。3.字符型常量也稱為字符串,通常用來表示人名、代碼編號、地名、性別、民族、書名等類似代表特定意義的信息。其書寫方法是用半角單引號、雙引號或方括號(定界符)把字符串?dāng)U起來,規(guī)定常量的起始和終止。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.貨幣型常89第二章VisualFoxPro程序設(shè)計基礎(chǔ)如:”FDSGED””北京”’海拉爾’[中國]”74568”’我是一個”中國人”’

定界符必須成對,如果定界符本身也做字符串內(nèi)容必須用另一定界符定界。

不包含認(rèn)何字符的字符串(””)叫空串。與只含空格的字符串(””)不同。

[要注意單問號(?)命令與雙問號(??)的功能]第二章VisualFoxPro程序設(shè)計基礎(chǔ)如:”F90第二章VisualFoxPro程序設(shè)計基礎(chǔ)

4.日期型常量有兩種書寫格式,即嚴(yán)格日期格式和傳統(tǒng)日期格式,其定界符都是一對花括花。花括號內(nèi)年、月、日間用斜杠(/)、連字號(—)、句點(.)或空格做分隔符分隔。日期型數(shù)據(jù)用8個字節(jié)表示。①嚴(yán)格日期格式書寫格式固定:{^yyyy-mm-dd},定界符內(nèi)第一個字符必須是脫字符"^",年份必須4位,書寫不受任何環(huán)境設(shè)置命令影響,能表達(dá)一個確切的日期。如:{^2019-08-08}第二章VisualFoxPro程序設(shè)計基礎(chǔ)4.日期型91第二章VisualFoxPro程序設(shè)計基礎(chǔ)②傳統(tǒng)日期格式要根據(jù)系統(tǒng)設(shè)置來書寫,受SETDATETO和SETCENTURYTO等環(huán)境設(shè)置命令影響,書寫時月、日各為2位,年份可以是2位也可以是4位。如:{01/25/98}、{01/25/2019}VFP默認(rèn)下不可以使用,只能在SETSTRICTDATETO0時才可以使用。第二章VisualFoxPro程序設(shè)計基礎(chǔ)②傳統(tǒng)日期格92第二章VisualFoxPro程序設(shè)計基礎(chǔ)●影響日期格式的相關(guān)設(shè)置命令有:①SETMARKTO[日期分隔符]命令功能:用于指定顯示日期值時所用的分隔符。若未指定,表示恢復(fù)系統(tǒng)默認(rèn)分隔符”/“)②SETDATE[TO]AMERICAN|ANSI|JAPAN|……命令功能:用于設(shè)置日期顯示的格式。該格式也決定系統(tǒng)如何解釋一個傳統(tǒng)格式的日期常量。第二章VisualFoxPro程序設(shè)計基礎(chǔ)●影響日期格93第二章VisualFoxPro程序設(shè)計基礎(chǔ)③SETCENTURYON|OFF|TO[世紀(jì)值]ROLLOVER[年份參照值]命令功能:用于決定如何顯示或解釋一個日期數(shù)據(jù)的年份。ON顯示世紀(jì),即用4位數(shù)字表示年份。OFF不顯示世紀(jì),即用2位數(shù)字表示年份。該項是系統(tǒng)默認(rèn)設(shè)置。④SETSTRICTDATETO[0|1|2]命令功能:用于設(shè)置是否對日期格式進(jìn)行檢查。0:不進(jìn)行嚴(yán)格的日期格式檢查。1:進(jìn)行嚴(yán)格的日期格式檢查。為系統(tǒng)默認(rèn)設(shè)置。2:進(jìn)行嚴(yán)格的日期格式檢查,并且對CTOD和CTOT函數(shù)的格式也有效。第二章VisualFoxPro程序設(shè)計基礎(chǔ)③SETC94第二章VisualFoxPro程序設(shè)計基礎(chǔ)2019年9月份考試試題:(15)要想將日期型或日期時間型數(shù)據(jù)中的年份用4位數(shù)字顯示,應(yīng)當(dāng)使用設(shè)置命令。

A)SETCENTURYONB)SETCENTURYOFFC)SETCENTURYTO4D)SETCENTURYOF4第二章VisualFoxPro程序設(shè)計基礎(chǔ)2019年995第二章VisualFoxPro程序設(shè)計基礎(chǔ)5.日期時間型常量與日期一樣有傳統(tǒng)及嚴(yán)格兩種書寫格式,主要在日期書寫上有區(qū)別,與日期型一樣,也受上面的設(shè)置命令控制。嚴(yán)格日期時間型是我們常用的書寫方式,格式如下:

{^yyyy-mm-dd[hh[:mm[:ss]][a|p]]}如:{^2019-08-08,11:36:58}日期時間型數(shù)據(jù)用8個字節(jié)存儲。第二章VisualFoxPro程序設(shè)計基礎(chǔ)5.日期時間96第二章VisualFoxPro程序設(shè)計基礎(chǔ)6.邏輯型常量只有兩個值:真(.T.)、假(.F.)。書寫時大小寫的.T.或.Y.表示真,大小寫的.F.或.N.表示假。這里的“.”是定界符,必不可少。邏輯型數(shù)據(jù)只占用一個字節(jié)。第二章VisualFoxPro程序設(shè)計基礎(chǔ)6.邏輯型常97第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.2變量

變量值是能夠隨時更改的。每個變量有一個變量名,代碼通過變量名來訪問變量的值。VF變量分為字段變量和內(nèi)存變量兩大類。表中的字段名就是變量,稱為字段變量。內(nèi)存變量是內(nèi)存中的一個存儲區(qū)域,變量值就是存放在這個區(qū)域中的數(shù)據(jù),變量類型取決于變量值的類型。隨著存放數(shù)據(jù)的變化變量值在變化,類型也隨之改變。與常量一樣也有相應(yīng)的6種類型。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.298第二章VisualFoxPro程序設(shè)計基礎(chǔ)1.簡單的內(nèi)存變量變量都有名,通過變量名來使用變量中存放的數(shù)據(jù)(訪問變量值)。向簡單內(nèi)存變量賦值不用先定義,賦值時變量不存在將自動產(chǎn)生。有兩種賦值格式:①<內(nèi)存變量名>=<表達(dá)式>②STORE<表達(dá)式>TO<內(nèi)存變量名表>●等號一次給一個變量賦值。STORE命令可以同時給多個變量賦相同值,變量名間用逗號隔開。第二章VisualFoxPro程序設(shè)計基礎(chǔ)1.簡單的內(nèi)99第二章VisualFoxPro程序設(shè)計基礎(chǔ)一個變量在使用前并不需要特別的定義或聲明,當(dāng)給變量賦值而變量不存在時系統(tǒng)會自動建立它。可以對內(nèi)存變量重新賦值來改變其取值和類型。當(dāng)出現(xiàn)內(nèi)存變量與字段變量同名時,若直接用變量名來訪問則系統(tǒng)默認(rèn)為字段變量,要訪問內(nèi)存變量必須在變量名前加上前綴M.(或M->)。2019年4月份考試填空題:(7)執(zhí)行命令A(yù)=2019/4/2之后,內(nèi)存變量A的數(shù)據(jù)類型是【7】型。(數(shù)值)第二章VisualFoxPro程序設(shè)計基礎(chǔ)一個變量在使100第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.?dāng)?shù)組數(shù)組是內(nèi)存中連續(xù)的一片存儲區(qū)域,它由一系列元素組成,每個元素可通過數(shù)組名及相應(yīng)的下標(biāo)來訪問。每個數(shù)組元素相當(dāng)于一個簡單變量,可以給元素分別賦不同類型的值。數(shù)組在使用前一般要用DIMENSION或DECLARE命令創(chuàng)建,定義是一維還是二維數(shù)組。數(shù)組大小有下標(biāo)值的上、下限決定。下限規(guī)定為1。

格式:DIMENSION<數(shù)組名>(<下標(biāo)上限1>[,<下標(biāo)上限2>])[,……]DECLARE<數(shù)組名>(<下標(biāo)上限1>[,<下標(biāo)上限2>])[,……]數(shù)組創(chuàng)建后,系統(tǒng)自動給每個數(shù)組元素賦以邏輯假.F.。第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.?dāng)?shù)組101第二章VisualFoxPro程序設(shè)計基礎(chǔ)數(shù)組及數(shù)組元素要注意:①可以使用簡單變量的地方都可使用數(shù)組元素;②賦值語句中使用數(shù)組名可以給其全部元素賦值;③同一環(huán)境中數(shù)組名不可與簡單內(nèi)存變量同名;④賦值語句的表達(dá)式位置不能出現(xiàn)數(shù)組名;⑤可以用一維數(shù)組形式訪問二維數(shù)組。第二章VisualFoxPro程序設(shè)計基礎(chǔ)數(shù)組及數(shù)組102第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.3內(nèi)存變量常用命令1.內(nèi)存變量的賦值格式1:<內(nèi)存變量名>=<表達(dá)式>格式2:STORE<表達(dá)式>TO<內(nèi)存變量名表>功能:計算表達(dá)式并將表達(dá)式值賦給一個或多個內(nèi)存變量,格式1只能給一個變量賦值。2.表達(dá)式值的顯示格式1:?[<表達(dá)式表>]格式2:??<表達(dá)式表>第二章VisualFoxPro程序設(shè)計基礎(chǔ)2.1.3103第二章VisualFoxPro程序設(shè)計基礎(chǔ)功能:計算表達(dá)式表中的各表達(dá)式并輸出各表達(dá)式值。不管有沒有指定表達(dá)式表,格式1都會輸出一個回車換行符。如果指定了表達(dá)式表,各表達(dá)式值將在下一行的起始處輸出。格式2不回輸出回車換行符,各表達(dá)式值在當(dāng)前行的光標(biāo)所在處直接輸出。第二章VisualFoxPro程序設(shè)計基礎(chǔ)功能:計算表104第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.內(nèi)存變量的顯示格式1:LISTMEMORY[LIKE<通配符>][TOPRINTER|TOFILE<文件名>]

格式2:DISPLAYMEMORY[LIKE<通配符>][TOPRINTER|TOFILE<文件名>]通配符包括*和?,*表示任意多個字符,?表示任意一個字符。注意兩種格式的區(qū)別。第二章VisualFoxPro程序設(shè)計基礎(chǔ)3.內(nèi)存變量105第二章VisualFoxPro程序設(shè)計基礎(chǔ)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論