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