- Visual Foxpro 9.0數(shù)據(jù)庫程序設(shè)計教程
- 裴海紅
- 2496字
- 2020-06-19 09:11:08
3.1 常量與變量
常量是指在程序運行過程中固定不變的數(shù)據(jù),在Visual FoxPro中,常量包括數(shù)值型常量、字符型常量、日期型常量、日期時間型常量和邏輯型常量。
1.常量
(1)數(shù)值型常量
數(shù)值型常量即數(shù)學中的常數(shù),由數(shù)字(0~9)、小數(shù)點和正負號構(gòu)成的,最大長度為20個字符。例如,3.14、-53、5543等。
(2)字符型常量
字符型常量也稱字符串,它由中英文字符、數(shù)字、空格等ASCII字符組成,使用時必須用定界符括起來,定界符包括單引號(''),雙引號("")和方括號([ ])。如果定界符成為常量的組成部分,則應使用另外的定界符括起來。例如,"I’m a teacher."。
注意:定界符的作用是確定字符串的起始位置和終止界限,它本身不是字符型常量的內(nèi)容。不包含任何字符的字符型常量“”稱為空串,空串與包含空格的字符型常量(" ")不同。
(3)日期型常量
日期型常量是用來表示一個日期,其表示方式是用符號{ }將日期括起來,花括號中包含以分隔符“/”分隔的年、月、日3部分內(nèi)容,還可以用連字符“-”和句點“.”作為分隔符。
①傳統(tǒng)日期格式:{MM/DD/YY}或{MM/DD/YYYY},其中MM、DD、YY分別表示月、日、年。
例如,{0617/15}或{06/17/2015},表示2015年6月17日。
②嚴格日期格式:{^YYYY-MM-DD},其中符號“^”表明該日期格式是嚴格的,并按照年、月、日的格式來解釋日期。
例如,{^2015-06-17},表示2015年6月17日。
注意:系統(tǒng)默認的日期格式為嚴格的日期格式,若要使用傳統(tǒng)的日期格式必須先執(zhí)行set strictdate to 0命令;若再要用嚴格的日期格式須先要執(zhí)行set strictdate to 1命令或通過函數(shù)轉(zhuǎn)換才能進行。
(4)日期時間型常量
日期時間型常量是用符號{}括起來的日期時間型數(shù)據(jù)序列,括號內(nèi)主要包括日期和時間兩部分內(nèi)容,其格式為{<日期>,<時間>}。<日期>部分的格式與日期型常量相似,<時間>部分的格式為[HH[;MM[:SS]]][A/P]。這里HH、MM、SS分別表示時、分和秒,A(或AM)和P(或PM)分別表示上午和下午。
例如,?{^2015-06-20,11:43:30 A}。
(5)邏輯型常量
邏輯型常量只有兩個值:真與假,邏輯真(.T.或.Y.),邏輯假(.F.或.N.),前后兩個句點是定界符,不能省略。邏輯型數(shù)據(jù)只占用一個字節(jié)。
2.變量
變量是在命令或程序執(zhí)行過程中其值可以發(fā)生變化的量,主要有字段變量、內(nèi)存變量、系統(tǒng)變量、對象變量和數(shù)組變量5種類型。
(1)字段變量
字段變量是指表中已定義的任意一個字段,由于在一個數(shù)據(jù)表中字段的值是隨記錄行的變化而變化的,所以它為變量。字段變量是定義在表中的變量,隨表的存取而存取,因而是永久性變量。字段名就是變量名,變量的數(shù)據(jù)類型為Visual FoxPro中的任意數(shù)據(jù)類型,字段值就是變量值。字段變量通常簡稱為字段。
(2)內(nèi)存變量
內(nèi)存變量是指內(nèi)存中的一個存儲單元,該單元的名稱稱為內(nèi)存變量名,該單元內(nèi)存放的數(shù)據(jù)稱為內(nèi)存變量的值,而內(nèi)存變量的類型取決于內(nèi)存變量值的類型,它可以是數(shù)值型、字符型、邏輯型、日期型和日期時間型。
Visual FoxPro的內(nèi)存變量分為“系統(tǒng)內(nèi)存變量”和“用戶內(nèi)存變量”兩種。前者是啟動Visual FoxPro系統(tǒng)后自動產(chǎn)生的內(nèi)存變量,它們決定系統(tǒng)的運行狀態(tài)。后者則是用戶定義的內(nèi)存變量。用戶最多可以定義1 024個內(nèi)存變量。
①內(nèi)存變量的命名規(guī)則:
a.以字母(漢字)或下畫線開頭。
b.只能含字母、數(shù)字和下畫線,不允許有空格和特殊字符。
c.不應超過128個字符,其中每個漢字占2個字符。
d.不應是Visual FoxPro的保留字,也不應是保留字的前4個字符(如該變量只由4個字符組成)。
②使用STORE命令為內(nèi)存變量賦值。
格式1:<內(nèi)存變量名>=<表達式>
格式2:STORE <表達式> TO <內(nèi)存變量名列表>
功能:計算<表達式>,并將計算結(jié)果賦值給內(nèi)存變量。
說明:表達式可由常量、變量、函數(shù)和運算符組成。內(nèi)存變量名列表中的內(nèi)存變量應用逗號分隔,該命令可以同時為多個內(nèi)存變量賦值。
例如:
store 7 to m &&將7賦值給變量m
store 5*12 to a,b &&先計算表達式5*12的值,再將值分別賦給a,b
注意:在store 5*12 to a,b中,不能改寫為a,b=5*12。
③直接為內(nèi)存變量賦值。使用符號“=”可以直接為內(nèi)存變量賦值。
例如:
c1 =2 +7 &&將表達式2+7的和賦值給變量cl
c2 = cl +9 &&將計算表達式c1 +9后的值18賦給變量c2
說明:一個變量的值可以不斷變化,最終結(jié)果是它最后一次的賦值。
④顯示內(nèi)存變量。可以使用DISPLAY MEMORY命令或LIST MEMORY命令來查看已定義的變量。
格式:DISPLAY | LIST MEMORY
功能:該命令用于顯示已定義的變量名、作用范圍、類型和值。
說明:DISPLAY命令用于分屏顯示,LIST命令用于滾屏顯示。
【例1】定義內(nèi)存變量M的值為5,MN的值為“student”,并在屏幕上顯示出來。
在命令窗口中輸入:

⑤釋放內(nèi)存變量。內(nèi)存變量最多可定義1 024個,為了節(jié)省存儲空間,變量使用完以后應及時釋放,可以使用以下命令之一來釋放存儲空間。
格式1:RELEASE ALL
功能:該命令用于釋放全部內(nèi)存變量。
格式2:RELEASE<內(nèi)存變量列表>
功能:該命令用于釋放指定的內(nèi)存變量。
格式3:RELEASE ALL [LIKE模式| EXCEPT模式]
功能:該命令用于釋放與指定模式相匹配的內(nèi)存變量。
說明:[LIKE模式]子句用于指定要釋放與指定的模式相匹配的所有變量,可含通配符。[ EXCEPT模式]子句用于指定要釋放除與指定的模式相匹配之外的所有變量,可含通配符。
格式4:LEAR MEMORY
功能:該命令用于釋放全部內(nèi)存變量。
例如:
RELEASE cl,c2 &&釋放變量c1,c2
DISPLAY MEMORY &&顯示的內(nèi)存變量就只剩下a,bl,b2
RELEASE ALL LIKE b* &&釋放變量名以b為開頭的所有變量
DISPLAY MEMORY &&顯示的內(nèi)存變量就只剩下a
⑥表達式顯示命令。
格式:?|??<表達式>
功能:計算表達式的值,并將其結(jié)果顯示在屏幕上。
說明:“?”表示換行顯示結(jié)果,“??”表示從當前行的當前列顯示結(jié)果。
【例2】內(nèi)存變量的應用。
在命令窗口中輸入:

(3)系統(tǒng)變量
Visual FoxPro提供了一批系統(tǒng)變量,它們都是以下畫線開頭,分別用于控制外圍設(shè)備(如鼠標、打印機等)、屏幕輸出格式或處理有關(guān)計算器、剪貼板和日歷方面的信息。
(4)對象變量
面向?qū)ο笳Z言中特有的變量類型,是一種集合變量,不僅可以包含數(shù)據(jù),還可以包含屬性和方法。
(5)數(shù)組
數(shù)組是按一定順序排列的一組內(nèi)存變量,在內(nèi)存中用一片連續(xù)的區(qū)域來存放,數(shù)組用統(tǒng)一的名稱來表示,稱為數(shù)組名,數(shù)組中的每一個內(nèi)存變量都稱為數(shù)組的元素,數(shù)組元素用數(shù)組名及它在數(shù)組中的排列標號(簡稱下標)來表示。例如,A(1)、A(2)、A(3)、A(4),其中A表示數(shù)組名,1、2、3、4為下標。根據(jù)下標的個數(shù)又可以把數(shù)組分為一維數(shù)組和二維數(shù)組,例如A(3)表示一維數(shù)組、B(3,4)表示二維數(shù)組。
- Node.js Design Patterns
- 自己動手實現(xiàn)Lua:虛擬機、編譯器和標準庫
- Python從入門到精通(精粹版)
- Python Game Programming By Example
- 軟件測試工程師面試秘籍
- C語言程序設(shè)計
- Mastering JavaScript Design Patterns(Second Edition)
- Kotlin編程實戰(zhàn):創(chuàng)建優(yōu)雅、富于表現(xiàn)力和高性能的JVM與Android應用程序
- Clojure for Java Developers
- Python程序設(shè)計教程
- Spring Data JPA從入門到精通
- Mastering Unreal Engine 4.X
- Learning Dynamics NAV Patterns
- 前端Serverless:面向全棧的無服務(wù)器架構(gòu)實戰(zhàn)
- Learning jqPlot