![VFP6.0程序設(shè)計(jì)第2章-Visual-FoxPro-6.0-編程基礎(chǔ)_第1頁(yè)](http://file4.renrendoc.com/view12/M04/02/1C/wKhkGWbcfXyAXad7AACyD5Lk-7E004.jpg)
![VFP6.0程序設(shè)計(jì)第2章-Visual-FoxPro-6.0-編程基礎(chǔ)_第2頁(yè)](http://file4.renrendoc.com/view12/M04/02/1C/wKhkGWbcfXyAXad7AACyD5Lk-7E0042.jpg)
![VFP6.0程序設(shè)計(jì)第2章-Visual-FoxPro-6.0-編程基礎(chǔ)_第3頁(yè)](http://file4.renrendoc.com/view12/M04/02/1C/wKhkGWbcfXyAXad7AACyD5Lk-7E0043.jpg)
![VFP6.0程序設(shè)計(jì)第2章-Visual-FoxPro-6.0-編程基礎(chǔ)_第4頁(yè)](http://file4.renrendoc.com/view12/M04/02/1C/wKhkGWbcfXyAXad7AACyD5Lk-7E0044.jpg)
![VFP6.0程序設(shè)計(jì)第2章-Visual-FoxPro-6.0-編程基礎(chǔ)_第5頁(yè)](http://file4.renrendoc.com/view12/M04/02/1C/wKhkGWbcfXyAXad7AACyD5Lk-7E0045.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2.2數(shù)據(jù)容器2.3操作符和表達(dá)式2.4命令和函數(shù)2.5流程控制語(yǔ)句2.6程序文件第二章VisualFoxPro6.0編程基礎(chǔ)2.1數(shù)據(jù)類型2.1數(shù)據(jù)類型VisualFoxPro6.0的數(shù)據(jù)類型共有如下14種:字符型、貨幣型、數(shù)值型、浮點(diǎn)型、日期型、日期時(shí)間型、雙精度型、整型、邏輯型、備注型、通用型、字符型(二進(jìn)制)、備注型(二進(jìn)制)、對(duì)象型
2.1.1字符型(Character)
字符型數(shù)據(jù)是由字母(包括漢字)、數(shù)字、空格等任意ASCII碼字符組成,其長(zhǎng)度為0~254,每個(gè)字符占用一個(gè)字節(jié)。
字符型常量是用單撇號(hào)或雙撇號(hào)括起來(lái)的字符串。如:“abc”、’12c’、‘中國(guó)’等。
2.1.2貨幣型(Currency)
當(dāng)使用人民幣或美元等貨幣數(shù)據(jù)時(shí),可采用貨幣型數(shù)據(jù)類型。貨幣型數(shù)據(jù)的取值范圍是:-922337203685477.5808~922337203685477.5807當(dāng)小數(shù)位超過(guò)四位時(shí)系統(tǒng)自動(dòng)進(jìn)行四舍五入處理。每個(gè)貨幣型數(shù)據(jù)占用8個(gè)字節(jié)。
2.1.3日期型(Date)
日期型數(shù)據(jù)的格式為“yyyy-mm-dd”。其中:yyyy代表年,mm代表月,dd代表日。
日期型數(shù)據(jù)還可以表示為“mm/dd/yyyy”等格式。
例如:{^2002-05-23}是正確的日期型常量。
2.1.4日期時(shí)間型(Datetime)
除了能夠保存日期還能夠保存時(shí)間,日期時(shí)間型數(shù)據(jù)存儲(chǔ)格式為:yyyymmdd[hh[:mm[:ss]][a|p]]。其中yyyy代表年,mm代表月,dd代表日,hh代表小時(shí),mm代表分鐘,ss代表秒,a|p代表上午或下午。例如:{^2002-05-2310:20:33}是正確的日期時(shí)間型常量。
注意:[]中的數(shù)據(jù)可以省略。
2.1.5邏輯型(Logical)
該數(shù)據(jù)類型只有真(Ture)和假(False)兩種狀態(tài)。具體輸入邏輯型數(shù)據(jù)時(shí),邏輯真輸入“Y”或“T”,邏輯假輸入“N”或“F”。
2.1.6數(shù)值型與浮點(diǎn)型(NumericandFloat)
當(dāng)存儲(chǔ)諸如年產(chǎn)量、月工資等數(shù)值型數(shù)據(jù)時(shí),可用數(shù)值型數(shù)據(jù)類型。數(shù)值型數(shù)據(jù)由數(shù)字0~9,一個(gè)符號(hào)(+或-)和一個(gè)小數(shù)點(diǎn)(.)組成。其長(zhǎng)度為1~20位,每個(gè)數(shù)據(jù)占8個(gè)字節(jié)。
2.1.7雙精度型(Double)
具有比數(shù)值型更高的精度,用于數(shù)據(jù)表中字段的定義,采用固定存儲(chǔ)長(zhǎng)度的浮點(diǎn)數(shù)形式。
雙精度型數(shù)值的取值范圍:
+/-4.94065645841247E-324~+/-1.79769313486232E308
每個(gè)雙精度數(shù)據(jù)占8個(gè)字節(jié)。
2.1.8整型(Integer)
當(dāng)存儲(chǔ)諸如“職工人數(shù)”等數(shù)據(jù)時(shí),可用整型數(shù)據(jù)類型。整型數(shù)值沒(méi)有小數(shù)點(diǎn)部分,只能用于表中字段的定義。其取值范圍是:
-2147483647~2147483646,整型字段占4個(gè)字節(jié)。
2.1.9備注型(Memo)
當(dāng)存儲(chǔ)諸如“工作簡(jiǎn)歷”等數(shù)據(jù)時(shí),可用備注型數(shù)據(jù)類型。備注型只能用于表中字段的定義,備注內(nèi)容的多少只受內(nèi)存可用空間的限制。備注型字段的內(nèi)容不能直接存放于.dbf文件中,系統(tǒng)將備注的內(nèi)容存放在擴(kuò)展名為.fpt的文件中。
2.1.10通用型(General)
通用型是用途十分廣泛的數(shù)據(jù)類型,當(dāng)存儲(chǔ)諸如“照片”、“Word文檔”、“Excel工作簿”等OLE對(duì)象時(shí),可用通用型數(shù)據(jù)類型。該類型只能用于表中字段的定義。通用型數(shù)據(jù)的多少只受內(nèi)存可用空間的限制。
2.1.11二進(jìn)制數(shù)據(jù)類型
二進(jìn)制數(shù)據(jù)類型包括:字符型(二進(jìn)制)和備注型(二進(jìn)制)兩種。用于存儲(chǔ)任意不經(jīng)過(guò)代碼頁(yè)修改的字符型數(shù)據(jù)或備注型數(shù)據(jù)。
2.1.12對(duì)象型(Object)
對(duì)象型是用于存儲(chǔ)類的具體實(shí)例的數(shù)據(jù)類型。對(duì)象型的數(shù)據(jù)可以存取表單、控件等系統(tǒng)對(duì)象,還可以存取用戶自定義對(duì)象。
2.2數(shù)據(jù)容器數(shù)據(jù)容器包括存儲(chǔ)數(shù)據(jù)的變量、數(shù)組、字段、記錄、對(duì)象等,是數(shù)據(jù)的載體。
2.2.1常量
2.2.4字段
2.2.2變量
2.2.5記錄
2.2.3
數(shù)組
2.2.6對(duì)象
2.2.1常量
在整個(gè)操作過(guò)程中其值保持不變的量稱為常量。
1.常量的類型
常量有數(shù)值型、字符型、日期型、邏輯型和貨幣型等多種類型。例如:{^2002/08/30}是日期型常量。
(1)數(shù)值型常量
用整數(shù)、小數(shù)、科學(xué)計(jì)數(shù)法表示的數(shù)都是數(shù)值型常量。例如:3.14159265、1.234、-200、0.313233E3。
(2)字符型常量
用雙撇號(hào)、單撇號(hào)或方括號(hào)等定界符括起來(lái)的字符串。例如:“計(jì)算機(jī)”、‘110’、[XYZ]。VFP的字符串的最大長(zhǎng)度為254個(gè)字符。若字符串中含有定界符,則須用另一種定界符括起來(lái)。例如:[Iama‘student’]。
(3)日期型常量
日期型常量必須用花括號(hào)括起來(lái)。例如:{^10/12/2002};{^05/23/200212:23am}。
空白的日期可表示為{}或{/},空白的日期時(shí)間可表示為{/:}。在日期數(shù)據(jù)的輸入時(shí),若使用^符號(hào)表示使用嚴(yán)格的日期格式,按照YMD(即年、月、日)的格式來(lái)解釋日期和日期時(shí)間。例如:{^2002/08/30}。
(4)邏輯型常量
邏輯型常量只有邏輯真和邏輯假兩種。.T.、.t.、.Y.、.y.都表示邏輯真;.F.、.f.、.N.、.n.都表示邏輯假。
(5)貨幣型常量
貨幣型常量以$或¥符號(hào)開(kāi)頭,并四舍五入至小數(shù)四位。例如:貨幣型常量$123.45678,計(jì)算結(jié)果為$123.4568。
2.常量的定義
在程序中可用偽編譯指令#DEFINE定義常量。
例如:#DEFINENOEDIT“表中沒(méi)有記錄,不可編輯”
定義了NOEDIT常量之后,在源代碼中就可使用NOEDIT。在編譯之后,凡是出現(xiàn)NOEDIT的地方,均用字符串“表中沒(méi)有記錄,不可編輯”取代。
用#DEFINE定義的常量必須用偽編譯指令#UNDEF取消,下面的語(yǔ)句取消了上述的定義。
例如:#UNDEFNOEDIT
2.2.2變量
變量是一種其值可以發(fā)生變化的數(shù)據(jù)。VisualFoxPro中的變量有兩種:字段變量和內(nèi)存變量。字段變量也稱為字段名變量,是用戶已定義的數(shù)據(jù)庫(kù)結(jié)構(gòu)中的任一數(shù)據(jù)項(xiàng)。本書如沒(méi)有特別說(shuō)明,常指內(nèi)存變量。內(nèi)存變量是用變量名來(lái)表示的,變量名是內(nèi)存中存儲(chǔ)一個(gè)數(shù)據(jù)的位置名稱,可理解為房間名稱,而數(shù)據(jù)放在房間中。在這個(gè)存儲(chǔ)位置中存放的數(shù)據(jù)通過(guò)這個(gè)名稱來(lái)讀和寫。
1.內(nèi)存變量的命名
內(nèi)存變量的命名與字段、文件的命名有所不同,其規(guī)則為:以字母或漢字或下劃線開(kāi)頭;由字母、數(shù)字、下劃線組成;至多128個(gè)字符可與系統(tǒng)保留字同名。所謂系統(tǒng)保留字就是VFP語(yǔ)言中使用的字,例如:USE命令中的USE就是一個(gè)系統(tǒng)保留字。
2.內(nèi)存變量的賦值
內(nèi)存變量的賦值有如下幾種:
(1)利用賦值號(hào)“=”賦值;
(2)利用STORE命令賦值。
例2-1:在命令窗口中為內(nèi)存變量V1、V2、V3、V4賦值。
在命令窗口中的賦值如圖2-1所示。在圖2-1中,第1條命令將“VisualFoxPro6.0”字符串給變量V1;第2條命令將表達(dá)式“5*6/3”值同時(shí)給變量V2,V3和V4。
圖2-1使用賦值語(yǔ)句的命令窗口說(shuō)明:
(1)內(nèi)存變量賦值時(shí)定義了它的值及其數(shù)據(jù)類型。
(2)STORE語(yǔ)句可同時(shí)為多個(gè)內(nèi)存變量賦值,各變量需用逗號(hào)
隔開(kāi),而采用“=”賦值僅可為一個(gè)內(nèi)存變量賦值。
3.表達(dá)式值的顯示命令
在命令窗口或程序中,可用“?\??<表達(dá)式表>”命令顯示內(nèi)存變量、表達(dá)式的值。
例2-2:在命令窗口中顯示內(nèi)存變量V1、V2、V3、V4的數(shù)值。
具體操作如圖2-2所示。從圖2-2可以看出:
?<表達(dá)式表>:在下一行顯示表達(dá)式的內(nèi)容;
??<表達(dá)式表>:在當(dāng)前行顯示表達(dá)式的內(nèi)容。
說(shuō)明:<表達(dá)式表>中的<>是必須要輸入的,表達(dá)式表是指可用逗號(hào)隔開(kāi)的多個(gè)表達(dá)式。圖2-2在命令窗口中顯示內(nèi)存變量的值4.內(nèi)存變量的定義
在VisualFoxPro6.0的程序中可用LOCAL、PUBLIC和
PRIVATE命令來(lái)定義變量的作用范圍。
(1)用“LOCAL變量名”定義的變量為局部變量,它只能在當(dāng)前程序中使用,而不影響其他程序同名變量的原始值。(2)用“PUBLIC變量名”定義的變量為全局變量,在本次VisualFoxPro程序運(yùn)行期間,所有程序都可以使用這些全局變量。
(3)用“PRIVATE變量名”定義的變量為私有變量。
2.2.3數(shù)組
數(shù)組是一系列數(shù)據(jù)值的集合,其中每個(gè)數(shù)據(jù)值稱為數(shù)組中的一個(gè)元素,而且每個(gè)元素都可以通過(guò)一個(gè)數(shù)值下標(biāo)來(lái)被引用。數(shù)組中的元素可以是不同的數(shù)據(jù)類型。
1.數(shù)組的定義
數(shù)組可以理解為特殊的內(nèi)存變量,在使用前必須定義,其定義的方式有:
(1)DECLARE數(shù)組名定義數(shù)組為私有數(shù)組,它只能在當(dāng)前程序中使用,而不影響其他程序同名數(shù)組的原始值。例如:DECLAERABC(3)&&定義了數(shù)組名為abc的一維數(shù)組,其下標(biāo)的上界為3。
(2)DIMENSION數(shù)組名定義的數(shù)組為私有數(shù)組,含義同上。
(3)用PUBLIC數(shù)組名定義的數(shù)組為全局?jǐn)?shù)組,在本次VisualFoxPro運(yùn)行期間,所有程序都可以使用全局?jǐn)?shù)組。例如:PUBLICxyz(2,3)&&定義了數(shù)組名為xyz的二維數(shù)組。
(4)用LOCAL數(shù)組名定義的數(shù)組為局部數(shù)組。
有關(guān)數(shù)組的說(shuō)明:(1)系統(tǒng)規(guī)定數(shù)組的下標(biāo)的下界為1。例如:通過(guò)DECLAREabc(3),定義的數(shù)組abc有3個(gè)數(shù)組元素,分別為abc(1)、abc(2)、abc(3)。(2)VFP6.0最多可定義65000個(gè)數(shù)組,且數(shù)組最多可包含65000個(gè)元素。
2.數(shù)組的賦值
(1)VFP6.0允許同一數(shù)組的不同元素可取不同數(shù)據(jù)類型,而且同一元素的前、后類型也允許改變。
(2)數(shù)組的賦值與內(nèi)存變量的賦值基本相同,可為數(shù)組元素單個(gè)地賦值,也可以給整個(gè)數(shù)組的各個(gè)元素賦以相同的值。
2.2.4字段
數(shù)據(jù)是以二維表的方式在數(shù)據(jù)庫(kù)中存儲(chǔ),二維表的列可理解為字段(Fields)。字段名的定義與內(nèi)存變量名的定義類同,可用英文字母或漢字定義,不超過(guò)10個(gè)字符。
字段名可理解為變量,稱字段變量。例如:在具有姓名、性別、出生日期等字段的人員登記表中,姓名是字段名,稱為字段變量,隨著記錄指針的移動(dòng),姓名所代表的值是變動(dòng)的。
字段數(shù)據(jù)類型的定義可有13種,通常情況下,編號(hào)、姓名、性別等字段定義為字符型;工資字段定義為數(shù)值型;出生日期定義為日期型等等。
2.2.5記錄
當(dāng)數(shù)據(jù)在二維表上存儲(chǔ)時(shí),二維表中的行可理解為記錄(Records),記錄是字段的集合,也是構(gòu)成表的基本單位。一條記錄最多可以有255個(gè)字段,同一個(gè)數(shù)據(jù)表中的記錄具有相同的結(jié)構(gòu),即具有相同的字段名、字段類型、字段寬度等。一個(gè)二維表中的記錄數(shù)最多可達(dá)到10億條。
2.2.6對(duì)象
VisualFoxPro6.0的對(duì)象可以是窗口、表單、控件、用戶自定義對(duì)象等。合理的運(yùn)用對(duì)象,通過(guò)代碼的重用、對(duì)象的繼承,能夠加快系統(tǒng)開(kāi)發(fā)的進(jìn)程。用戶可以通過(guò)對(duì)象的事件、屬性和方法來(lái)處理對(duì)象。
2.3操作符和表達(dá)式2.3.1操作符2.3.2表達(dá)式
2.3.1操作符
1.算術(shù)操作符2.關(guān)系操作符3.邏輯操作符4.字符操作符5.日期時(shí)間操作符6.類和對(duì)象操作符
1.算術(shù)操作符算術(shù)操作符的操作對(duì)象必須是數(shù)值,操作的結(jié)果也是數(shù)值。操作順序是先乘方、再乘除與取余、后加減。同一級(jí)別的操作順序?yàn)閺淖笙蛴?。算術(shù)操作符的意義及應(yīng)用如表2-1所示。
2.關(guān)系操作符
關(guān)系操作符的操作對(duì)象的數(shù)據(jù)類型必須一致,操作比較的結(jié)果是邏輯值。數(shù)值型數(shù)據(jù)按數(shù)值大小進(jìn)行比較;日期型數(shù)據(jù)按年、月、日的順序進(jìn)行比較;字符型數(shù)據(jù)按相應(yīng)位置上兩個(gè)字符的ASCII碼的大小進(jìn)行比較。表2-1算術(shù)操作符及應(yīng)用舉例操作符意義應(yīng)用舉例**,^乘冪
3**4,3^4
&&81
*,/乘,除
3*4/2&&6
%模運(yùn)算(取余)
30%5&&0
+,_加,減
3+4-2&&5關(guān)系操作符的比較意義及其應(yīng)用如表2-2所示。表2-2關(guān)系操作符比較意義及應(yīng)用舉例操作符意義應(yīng)用舉例<小于10<16&&.T.>大于10>16&&.F.=等于10=10&&.T.<>,#,!=不等于10<>12&&.T.<=小于等于10<=16&&.T.>=小于等于10>=8&&.T.==完全相等“a”==“b”&&.F.$包含于“zha”$”zha”&&.T.
表2-3邏輯操作符的意義及其應(yīng)用舉例
3.邏輯操作符
邏輯操作符的操作對(duì)象是邏輯值,運(yùn)算結(jié)果也是邏輯值。若操作數(shù)不符合要求,會(huì)出現(xiàn)“操作符/操作數(shù)不一致”的錯(cuò)誤提示。關(guān)系操作常用來(lái)描述某種條件,而邏輯操作常用來(lái)描述復(fù)合條件。若兩個(gè)條件中只要有一個(gè)滿足條件即可,則用OR運(yùn)算;若兩個(gè)條件中必須同時(shí)成立才算成立,則用AND運(yùn)算;至于NOT則用于否定一個(gè)條件。邏輯操作符的含義及其應(yīng)用舉例如表2-3所示。
操作符意義應(yīng)用舉例.OR.邏輯或3>2.OR.4=5&&.T..AND.邏輯與3>2.AND.4=5&&.F..NOT.邏輯非.NOT.”BC”$”ABCD”&&.T.
4.字符操作符
字符操作符用于連接兩個(gè)字符串,有“+”和“-”兩個(gè)運(yùn)算符,其含義和應(yīng)用舉例如表2-4所示。
5.日期時(shí)間操作符日期時(shí)間操作符有“+”和“-”兩個(gè),其含義和應(yīng)用舉例如表2-5所示。
表2-4字符操作符的意義及其應(yīng)用舉例
表2-5日期操作符的意義及其應(yīng)用舉例操作符意義應(yīng)用舉例+連接兩個(gè)字符型數(shù)據(jù)‘a(chǎn)’+’b’&&’ab’-刪除尾部空格后連接兩個(gè)字符型數(shù)據(jù)‘a(chǎn)’-’b’&&’ab’操作符意義應(yīng)用舉例%+日期相加{05/16/2002}+10&&{05/26/2002}%-日期相減{05/16/2002}-10&&{05/06/2002}
6.類和對(duì)象操作符
類和對(duì)象操作符有“.”和“::”兩個(gè),其含義和應(yīng)用舉例如表2-6所示。
表2-6類和對(duì)象操作符的意義及其應(yīng)用舉例操作符意義應(yīng)用舉例.點(diǎn)操作符。用于對(duì)象符的意義及其應(yīng)用舉例Thisform.::作用域操作符。用于在子類中調(diào)用父類中調(diào)用父類的方法Thisform::click
2.3.2表達(dá)式1.算術(shù)表達(dá)式2.字符表達(dá)式3.日期表達(dá)式4.關(guān)系表達(dá)式5.邏輯表達(dá)式6.名稱表達(dá)式
1.算術(shù)表達(dá)式
算術(shù)表達(dá)式是由算術(shù)操作符將數(shù)值型常量、數(shù)值型變量或數(shù)組元素、數(shù)值型字段、返回?cái)?shù)值型數(shù)據(jù)的函數(shù)連接成的式子。例如:(11+22)*2/3&&結(jié)果應(yīng)為22
2.字符表達(dá)式
字符表達(dá)式是由字符操作符將字符型常量、字符型變量或數(shù)組元素、字符型字段、返回字符型數(shù)值的函數(shù)連接成的式子。例如:“abc”+“def”&&結(jié)果應(yīng)為“abcdef”
3.日期表達(dá)式
日期表達(dá)式是由日期操作符將日期(日期時(shí)間)型常量、日期(日期時(shí)間)型變量或數(shù)組元素、日期(日期時(shí)間)型字段、返回日期(日期時(shí)間)型數(shù)值的函數(shù)連接成的式子。
例如:{05/16/2002}+30&&結(jié)果應(yīng)為{06/15/2002}{05/16/2002}-{05/16/2001}&&結(jié)果應(yīng)為365
4.關(guān)系表達(dá)式
關(guān)系表達(dá)式是由關(guān)系操作符將數(shù)值型、字符型、日期型三種類型的常量、變量或數(shù)組元素、字段、函數(shù)連接構(gòu)成的式子。例如:姓名=“張三”&&姓名為字符型字段
工資>1800&&工資為數(shù)值型字段
“ABCD”<=“CDEF”&&結(jié)果應(yīng)為.T.
5.邏輯表達(dá)式
邏輯表達(dá)式是由邏輯操作符將邏輯型常量(.T.或.F.)、邏輯型變量或數(shù)組元素、邏輯型字段、返回邏輯型數(shù)據(jù)的函數(shù)、關(guān)系表達(dá)式連接的式子。
例如:性別=“女”.and.技術(shù)職稱=“高級(jí)工程師”
&&性別、技術(shù)職稱均為字符型字段
是否培訓(xùn).or.出生日期<{10/01/1949}
&&是否培訓(xùn)為邏輯型字段;出生日期為日期型字段
6.名稱表達(dá)式
這里的名稱指數(shù)據(jù)庫(kù)表文件名、字段名、表單名、對(duì)象名等。所謂名稱表達(dá)式是指將名稱存放到變量或數(shù)組元素中并將其用一對(duì)括號(hào)括起來(lái)。
例如:
STORE“NAME”TOVAR_NAME&&將字段名存入內(nèi)存變量VAR_NAME中
REPLACE(VAR_NAME)WITH“張三”&&用“張三”替換當(dāng)前記錄的NAME字段,字段名NAME被存放到變量VAR_NAME中。
在使用REPLACE命令時(shí)名稱表達(dá)式(VAR_NAME)將用字段名NAME代替變量。
2.4命令和函數(shù)2.4.1命令2.4.2函數(shù)
2.4.1命令
1.命令
VisualFoxPro6.0的命令由一個(gè)命令關(guān)鍵字開(kāi)頭,后面通常是被命令的對(duì)象構(gòu)成的命令子句。2.命令書寫有關(guān)約定
VisualFoxPro6.0中的命令不區(qū)分大小寫,但為了程序的可讀性,一般變量采用小寫,系統(tǒng)關(guān)鍵字采用大寫。例如:定義一個(gè)全局二維數(shù)組xyz(2,3),其書寫格式如下:
PUBLICxyz(2,3)
3.VisualFoxPro6.0的文件命名方法
文件名由主文件名和擴(kuò)展名兩部分組成:主文件名最長(zhǎng)由10個(gè)字符組成,可以包括字母、數(shù)字、下劃線、連字符,但不能使用“*”、“?”、“/”等。但加入到了數(shù)據(jù)庫(kù)中的表和字段名均可以為長(zhǎng)文件名,最長(zhǎng)為128個(gè)字符。擴(kuò)展名由“.”加3個(gè)字母組成,表示文件類型。
4.命令構(gòu)成的基本格式
1)VisualFoxPro6.0的一般語(yǔ)法格式:<命令動(dòng)詞>[<表達(dá)式表>][<范圍>][FOR<條件>][WHILE<條件>][TOFILE<文件名>/TOPRINTER/TOARRAY<數(shù)組名>/TO<內(nèi)存變量>][ALL[LIKE/EXCEPT<通配符>]][IN<別名>]可以將命令分為如下八個(gè)部分。
命令動(dòng)詞:它是VFP的命令名,用來(lái)指示計(jì)算機(jī)要完成的操作。表達(dá)式表:用來(lái)指示計(jì)算機(jī)執(zhí)行該命令所操作的結(jié)果參數(shù)。范圍:指定命令可以操作的記錄集。范圍有下列四種選擇:
ALL:當(dāng)前表中的全部記錄。
NEXT<n>:從當(dāng)前記錄開(kāi)始的連續(xù)N條記錄。
RECORD<n>:當(dāng)前表中的第N號(hào)記錄。
REST:從當(dāng)前記錄開(kāi)始到最后一條記錄為止的所有記錄。
FOR<條件>:它規(guī)定只對(duì)滿足條件的記錄進(jìn)行操作。
WHILE<條件>:從當(dāng)前記錄開(kāi)始,按記錄順序從上向下處理,一旦遇到不滿足條件的記錄,就停止搜索。
TO子句:它控制操作結(jié)果的輸出去向。
ALL[LIKE/EXCEPT<通配符>]:它指出包括或不包括與通配符相匹配的文件、字段或內(nèi)存變量。
IN<別名/工作區(qū)>:它允許在當(dāng)前工作區(qū)操作指定工作區(qū)。
例如:
(1)quit&&退出本系統(tǒng)
(2)usecustom&&打開(kāi)名字為custom的數(shù)據(jù)庫(kù)表
(3)listforname=“李明”&&顯示名字為李明的記錄
(4)replaceallpricewith1.3*price&&把當(dāng)前數(shù)據(jù)庫(kù)中所有記錄的price字段都提高到1.3倍
2.4.2
函數(shù)
函數(shù)用來(lái)完成特定的功能,在VisualFoxPro中,系統(tǒng)提供了400多種函數(shù),加強(qiáng)了VisualFoxPro語(yǔ)言的功能。
函數(shù)由函數(shù)名、參數(shù)和函數(shù)值構(gòu)成。其中,函數(shù)名起標(biāo)識(shí)作用;參數(shù)是自變量,用于在程序之間傳遞信息,一般以表達(dá)式的方式存在于函數(shù)的括號(hào)內(nèi);函數(shù)值是函數(shù)運(yùn)算結(jié)束后的返回值。根據(jù)返回值類型的不同,函數(shù)可分為:
數(shù)值型函數(shù)
字符型函數(shù)
日期型函數(shù)
邏輯型函數(shù)
其他函數(shù)VFP有關(guān)函數(shù)的說(shuō)明,均遵守如下約定:
?<>中的項(xiàng)目是必須輸入的,不可省略;
?[]中的項(xiàng)目是可輸可不輸,可以省略;
?/具有或者的意思,其兩端只能選一。
1.數(shù)值型函數(shù)
(1)ABS(<數(shù)值表達(dá)式>):求<數(shù)值表達(dá)式>的絕對(duì)值。
(2)SQRT(<數(shù)值表達(dá)式>):求<數(shù)值表達(dá)式>的平方根。
(3)INT(<數(shù)值表達(dá)式>):求<數(shù)值表達(dá)式>的整數(shù)部分。
(4)ROUND(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>):<數(shù)值表達(dá)式1>四舍五入,保留<數(shù)值表達(dá)式2>位小數(shù)。
(5)MAX(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>,…,<數(shù)值表達(dá)式n>):求N個(gè)數(shù)值表達(dá)式的最大值。
(6)MOD(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>):返回<數(shù)值表達(dá)式1>除以<數(shù)值表達(dá)式2>所得的余數(shù)。
(7)RAND([<數(shù)值表達(dá)式>]):返回一個(gè)0-1之間的隨機(jī)數(shù)。
2.字符型函數(shù)
(1)ASC(<字符表達(dá)式>):求字符的ASCII碼值。
(2)CHR(<數(shù)值表達(dá)式>):從<數(shù)值表達(dá)式>表示的ASCII碼返回字符。
(3)SUBSTR(<字符表達(dá)式>,<數(shù)值表達(dá)式1>,[,<數(shù)值表達(dá)式2>):返回<字符表達(dá)式>中第<數(shù)值表達(dá)式1>位起的長(zhǎng)度為<數(shù)值表達(dá)式2>的子串。
(4)LEFT(<字符表達(dá)式>,<數(shù)值表達(dá)式1>):返回<字符表達(dá)式>左起長(zhǎng)度為<數(shù)值表達(dá)式1>個(gè)字符的子串。
(5)RIGHT(<字符表達(dá)式>,<數(shù)值表達(dá)式>):返回<字符表達(dá)式>右起長(zhǎng)度為<數(shù)值表達(dá)式>個(gè)字符的子串。
(6)LEN(<字符表達(dá)式>):求字符串的長(zhǎng)度。
(7)AT(<字符表達(dá)式1>,<字符表達(dá)式2>[,<數(shù)值表達(dá)式>]):返回字符串<字符表達(dá)式1>在<字符表達(dá)式2>中第<數(shù)值表達(dá)式>次出現(xiàn)的位置。
(8)ALLTRIM(<字符表達(dá)式>):刪除字符表達(dá)式首尾的空格。
(9)UPPER(<字符表達(dá)式>):將小寫字符大寫。
(10)LOWER(<字符表達(dá)式>):將大寫字符轉(zhuǎn)換為小寫。
(11)VAL(<字符表達(dá)式>):將字符串轉(zhuǎn)換為數(shù)值。
3.日期型函數(shù)
(1)CTOD(<字符表達(dá)式>):將<字符表達(dá)式>轉(zhuǎn)化成日期。
(2)DTOC(<日期表達(dá)式>):將<日期表達(dá)式>轉(zhuǎn)化成字符串。
(3)TIME():返回系統(tǒng)當(dāng)前日期。
(4)DATE():返回系統(tǒng)的當(dāng)前日期。
(5)YEAR(<日期表達(dá)式>):返回<日期表達(dá)式>的年份。
4.邏輯型函數(shù)
(1)BOF([<數(shù)據(jù)庫(kù)表>/<工作區(qū)>):記錄指針指向第一條記錄之前時(shí)返回.T.,否則返回.F.。
(2)EOF([<數(shù)據(jù)庫(kù)表>/<工作區(qū)>):記錄指針指向最后一條記錄之后時(shí)返回.T.,否則返回.F.。
說(shuō)明:<工作區(qū)>表示工作區(qū)號(hào)或工作區(qū)別名,用來(lái)指定工作區(qū)。
5.其他函數(shù)
(1)DBF([<工作區(qū)>]):返回工作區(qū)中打開(kāi)表的名稱。
(2)RECNO([<工作區(qū)>]):返回工作區(qū)中當(dāng)前記錄的記錄號(hào)。
(3)TYPE(“<字符表達(dá)式>”):返回表達(dá)式類型,以N、C、D、L等表示。
(4)INLIST(<表達(dá)式1>,<表達(dá)式2>,[,<表達(dá)式3>…]):判斷<表達(dá)式1>是否包含在后面的表達(dá)式中,若包含,則返回.T.,否則返回.F.。
2.5流程控制語(yǔ)句
2.5.1順序結(jié)構(gòu)2.5.2分支選擇結(jié)構(gòu)2.5.3循環(huán)語(yǔ)句
2.5.1順序結(jié)構(gòu)
VisualFoxPro6.0的程序從主體上來(lái)說(shuō)都是順序的,程序運(yùn)行時(shí)按照語(yǔ)句排列的先后順序,依次自動(dòng)執(zhí)行。
2.5.2分支選擇結(jié)構(gòu)
一個(gè)功能復(fù)雜的程序往往都有判斷功能,而判斷是靠程序?qū)崿F(xiàn)的,VFP能用條件語(yǔ)句或多分支語(yǔ)句構(gòu)成分支條件,并根據(jù)條件的不同而執(zhí)行不同的程序段。
條件語(yǔ)句依據(jù)其簡(jiǎn)易程度可分成帶ELSE與不帶ELSE兩種格式。
1.簡(jiǎn)單條件語(yǔ)句
其語(yǔ)句格式如下:
IF<條件表達(dá)式>
<語(yǔ)句序列>
ENDIF
簡(jiǎn)單條件語(yǔ)句的執(zhí)行過(guò)程,如圖2-3所示。計(jì)算機(jī)首先判斷<條件表達(dá)式>的值,如果為真,則執(zhí)行IF和ENDIF之間的語(yǔ)句序列(程序段);如果為假,則跳過(guò)IF和ENDIF之間的語(yǔ)句序列,執(zhí)行ENDIF后面的語(yǔ)句。
圖2-3簡(jiǎn)單條件語(yǔ)句框圖圖2-4帶ELSE條件語(yǔ)句框圖
2.帶ELSE的條件語(yǔ)句
其語(yǔ)句格式如下:
IF<條件表達(dá)式>
<語(yǔ)句序列1>
ELSE
<語(yǔ)句序列2>
ENDIF
帶ELSE的條件語(yǔ)句的執(zhí)行過(guò)程如框圖2-4所示。計(jì)算機(jī)首先判斷<條件表達(dá)式>的值,如果為真則執(zhí)行語(yǔ)句序列1,否則執(zhí)行語(yǔ)句序列2,然后執(zhí)行ENDIF后面的語(yǔ)句。
3.多分支條件語(yǔ)句
其語(yǔ)句格式如下:
DOCASE
CASE<條件表達(dá)式1>
<語(yǔ)句序列1>
CASE<條件表達(dá)式2>
<語(yǔ)句序列2>
…
CASE<條件表達(dá)式n>
<語(yǔ)句序列n>
[OTHERWISE<語(yǔ)句序列n+1>]
ENDCASE
執(zhí)行多分支語(yǔ)句的過(guò)程如框圖2-5所示。系統(tǒng)首先依次判斷條件表達(dá)式1、條件表達(dá)式2、…、條件表達(dá)式n是否為真,如果某個(gè)條件表達(dá)式為真,則執(zhí)行該CASE段的<語(yǔ)句序列>,然后執(zhí)行ENDCASE后面的語(yǔ)句。
如果所有的條件表達(dá)式的值都為假,若有OTHERWISE子句,就執(zhí)行<語(yǔ)句序列n+1>,最后執(zhí)行ENDCASE后面的語(yǔ)句。圖2-5多分支結(jié)構(gòu)框圖在編寫分支結(jié)構(gòu)程序時(shí)需注意:
(1)條件語(yǔ)句中的IF和ENDIF必須配對(duì)出現(xiàn);同樣,多分支條件語(yǔ)句中的DOCASE和ENDCASE也必須配對(duì)出現(xiàn)。
(2)分支選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)的語(yǔ)句因?yàn)椴荒茉谝粋€(gè)命令行中輸入完畢,所以不能在命令窗口中使用這些語(yǔ)句。
(3)為使程序清晰易讀,分支選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)應(yīng)使用縮格書寫方式。2.5.3循環(huán)結(jié)構(gòu)
通過(guò)VFP程序解決實(shí)際問(wèn)題時(shí),經(jīng)常遇到從某一語(yǔ)句開(kāi)始反復(fù)有規(guī)律的執(zhí)行某個(gè)程序段的現(xiàn)象,我們把這個(gè)程序段稱為循環(huán)體。按照循環(huán)體的執(zhí)行方式和條件的不同,可將循環(huán)分為:1.條件循環(huán)(dowhile型)2.步長(zhǎng)循環(huán)
(for型)3.掃描循環(huán)(scan型)
1.條件循環(huán)
其語(yǔ)句格式如下:
DOWHILE<條件表達(dá)式>
<語(yǔ)句序列>
ENDDO
當(dāng)條件表達(dá)式為真時(shí),系統(tǒng)反復(fù)執(zhí)行程序段,當(dāng)條件表達(dá)式為假時(shí),終止程序段的執(zhí)行。因而,如果條件表達(dá)式開(kāi)始就是假時(shí),則程序段不執(zhí)行。所以,條件循環(huán)的循環(huán)體執(zhí)行次數(shù)最少為0次。
在具體執(zhí)行過(guò)程中,首先執(zhí)行DOWHILE語(yǔ)句判斷條件表達(dá)式的值,如果為假,則直接執(zhí)行ENDDO后面的語(yǔ)句;如果為真,則執(zhí)行程序段,程序段全部執(zhí)行完畢后,遇到ENDDO之后,重新執(zhí)行DOWHILE語(yǔ)句,并重新判斷條件表達(dá)式的值,根據(jù)這個(gè)值是否為真來(lái)決定是否繼續(xù)循環(huán)。
2.步長(zhǎng)循環(huán)
其語(yǔ)句格式如下:
FOR<內(nèi)存變量>=<數(shù)值表達(dá)式1>TO<數(shù)值表達(dá)式2>[step<數(shù)值表達(dá)式3>]
<語(yǔ)句序列>
[EXIT]
[LOOP]
ENDFOR|NEXT
語(yǔ)句格式中的<內(nèi)存變量>稱為循環(huán)變量,<數(shù)值表達(dá)式1>、<數(shù)值表達(dá)式2>[、<數(shù)值表達(dá)式3>分別稱為初值、終值和步長(zhǎng)。步長(zhǎng)默認(rèn)為1。
[EXIT]:將控制從FOR…ENDFOR循環(huán)中跳出,轉(zhuǎn)去執(zhí)行ENDFOR后第一條語(yǔ)句??砂袳XIT放在FOR…ENDFOR中任何位置。
[LOOP]:將控制直接轉(zhuǎn)回到FOR子句,而不執(zhí)行LOOP、ENDFOR之間的語(yǔ)句。具體執(zhí)行過(guò)程中,當(dāng)步長(zhǎng)為正數(shù)時(shí),通過(guò)比較循環(huán)變量與數(shù)值表達(dá)式2來(lái)決定是否執(zhí)行程序段,當(dāng)循環(huán)變量不大于數(shù)值表達(dá)式2就執(zhí)行程序段;當(dāng)步長(zhǎng)為負(fù)時(shí),循環(huán)變量不小于數(shù)值表達(dá)式2就執(zhí)行程序段。程序段遇到ENDFOR或NEXT時(shí),循環(huán)變量的值加上步長(zhǎng),然后返回到FOR重新與數(shù)值表達(dá)式2進(jìn)行比較以決定是否執(zhí)行程序段。
3.掃描循環(huán)
其語(yǔ)句格式如下:
SCAN[<掃描范圍>[FOR<條件表達(dá)式1>][WHILE
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手轎車買賣合同示范文本
- 個(gè)人車位贈(zèng)與合同范本
- 臨時(shí)工勞動(dòng)合同范本參考
- 2025年平安保險(xiǎn)公司特定疾病終身保險(xiǎn)賠付合同
- 業(yè)務(wù)合作合同格式樣本
- 不銹鋼采購(gòu)與銷售合同
- 個(gè)人借款質(zhì)押合同書樣本
- 專用線鐵路物流服務(wù)合同細(xì)則
- 個(gè)人與企業(yè)租賃合同范本大全
- 采購(gòu)標(biāo)準(zhǔn)合同書
- 突發(fā)公共衛(wèi)生事件衛(wèi)生應(yīng)急
- 《景觀設(shè)計(jì)》課件
- 會(huì)所股東合作協(xié)議書范文范本
- 人教版(2024)七年級(jí)上冊(cè)英語(yǔ)期中復(fù)習(xí)單項(xiàng)選擇100題(含答案)
- 2024年胡麻油市場(chǎng)前景分析:全球胡麻油市場(chǎng)規(guī)模達(dá)到了25.55億美元
- 小學(xué)英語(yǔ)800詞分類(默寫用)
- 《 西門塔爾牛臉數(shù)據(jù)集的研究》范文
- 八年級(jí)上冊(cè) 第三單元 11《簡(jiǎn)愛(ài)》公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 2024年燃?xì)廨啓C(jī)值班員技能鑒定理論知識(shí)考試題庫(kù)-上(單選題)
- 中小商業(yè)銀行數(shù)字化轉(zhuǎn)型現(xiàn)狀及對(duì)策研究
- 2024-2030年中國(guó)車載冰箱行業(yè)市場(chǎng)發(fā)展調(diào)研及投資戰(zhàn)略分析報(bào)告
評(píng)論
0/150
提交評(píng)論