- Visual FoxPro程序設計
- 黃玲芳 劉建蘭主編
- 3132字
- 2019-07-25 11:48:23
2.2 VFP 9.0的常量與變量
常量和變量是VFP 9.0數(shù)據(jù)運算和數(shù)據(jù)處理的基本對象。
2.2.1 常量
常量指在操作或程序運行過程中其值不變的量,按取值可分為如下6種類型。
1.字符型常量
字符型常量又稱為“字符串”,是用英文單引號(' ')、英文雙引號(" ")或英文中括號([ ])等定界符括起的一串字符,定界符不作為字符串的一部分。如果某種定界符本身也是字符串的內(nèi)容,則需要用另一種定界符為該字符串定界。
字符型常量的定界符必須成對匹配。不包含任何字符的字符串(如" ")為空串,它與包含空格的字符串(如" ")不同。
2.數(shù)值型常量
數(shù)值型常量即常數(shù),由阿拉伯數(shù)字、正負號、數(shù)字與小數(shù)點組成。數(shù)值型數(shù)據(jù)之間可以執(zhí)行數(shù)學運算,整數(shù)、小數(shù)或用科學記數(shù)法表示的數(shù)都是數(shù)值型。
數(shù)值型常量中的小數(shù)有小數(shù)形式和指數(shù)形式兩種表示方法,如20、-3.42、6.56是小數(shù)形式的數(shù)值型常量;指數(shù)形式通常用來表示絕對值很大或很小的一些數(shù)值,對應于日常應用中的科學計數(shù)法,如用6.25E-5表示6.25×10-5。
3.邏輯型常量
邏輯型常量表示邏輯判斷的結(jié)果,只有“真”和“假”兩個值,用.T.、.t.、.Y.、.y.來表示邏輯真(True);用.F.、.f.、.N.、.n.表示邏輯假(False)。注意字母兩側(cè)必須用一對英文小數(shù)點。
4.貨幣型常量
貨幣型常量用來表示貨幣值,與數(shù)值型常量類似(不能采用指數(shù)形式),但要添加一個前置的符號$。貨幣型數(shù)據(jù)在存儲和計算時保留4位小數(shù),如果小數(shù)多于4位,系統(tǒng)將自動進行四舍五入。
5.日期型常量
日期型常量是表示日期值的數(shù)據(jù),書寫格式為“{^yyyy-mm-dd}”,年、月、日3部分之間用分隔符(-)、(/)、(.)或空格隔開。日期型常量的默認顯示格式為mm/dd/yy(月/日/年),顯示格式的依據(jù)為系統(tǒng)設置的日期格式。
6.日期時間型常量
日期時間型常量用來表示一個具體的日期與時間,與日期型常量相似,也用{ }括起。其書寫格式為{^yyyy-mm-dd hh:mm:ss},年、月、日3部分之間用分隔符(-)、(/)、(.)或空格隔開,hh:mm:ss為時、分、秒,3個部分之間用冒號分隔。
日期時間型常量與日期型常量一樣顯示格式與書寫格式并不完全相同,顯示格式的依據(jù)為系統(tǒng)設置的格式。
VFP 9.0系統(tǒng)中與日期格式有關(guān)的命令和設置選項如下。
(1)日期格式中的世紀值。
● 命令方式。
格式:SET CENTURY ON|OFF
功能:設置顯示日期時是否顯示世紀。
說明:ON表示日期值輸出時顯示10位,年份占4位;OFF為默認值,表示日期值輸出時顯示8位,年份占2位。
● 菜單方式。
選擇“工具”|“選項”|“區(qū)域”選項,就可以在日期和時間區(qū)域中選擇顯示日期時是否顯示世紀。
(2)設置日期顯示格式。
● 命令方式。
格式:SET DATE [TO] AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITALIAN | JAPAN | USA | MDY | DMY | YMD | SHORT | LONG
功能:設置日期的顯示輸出格式。
說明:系統(tǒng)默認為AMERICAN(美國日期格式)。
● 菜單方式。
選擇“工具”|“選項”|“區(qū)域”選項,就可以在日期和時間區(qū)域中選擇顯示的日期格式。
(3)嚴格的日期格式。
{^yyyy-mm-dd[, ][hh[:mm[:ss]][a|p]]}即年-月-日[, ][時[:分[:秒]][上午或下午]],其中^符號表示該格式是嚴格的日期格式,并按照YMD的格式解釋日期型和日期時間型數(shù)據(jù),系統(tǒng)默認采用嚴格的日期格式。
● 命令方式。
格式:SET STRICTDATE TO [0|1|2]
功能:設置是否對日期格式進行檢測。
說明:“0”表示不進行嚴格的日期格式檢測;“1”表示進行嚴格的日期格式檢測(默認值),要求所有日期和日期時間型數(shù)據(jù)均按嚴格格式;“2”表示進行嚴格的日期格式檢測,且對“CTOD()”和“CTOT()”函數(shù)的格式有效。
● 菜單方式。
選擇“工具”|“選項”|“常規(guī)”選項,展開“2000年兼容性”欄中的“嚴格的日期級別”下拉列表框。選擇其中某個選項,然后單擊“確定”按鈕確認此格式設置。
(4)設置日期分隔符。
● 命令方式。
格式:SET MARK TO [日期分隔符]
功能:設置顯示日期時使用的分隔符,如/、-、.等,如沒有指定任何定界符,系統(tǒng)默認為斜杠分隔符。
● 菜單方式。
在系統(tǒng)菜單中依次選擇“工具”“選項”“區(qū)域”,就可以在日期和時間區(qū)域中設置日期分隔符。
2.2.2 變量
變量是在命令操作過程中其值可以改變的量。
確定一個變量需要確定變量名、變量類型、變量值3個要素,如cj=100, cj是變量名,100是變量值,數(shù)據(jù)類型是數(shù)值型。
在VFP 9.0中變量命名的規(guī)則如下。
(1)使用字母、漢字、下畫線和數(shù)字,盡量不采用漢字,以提高操作效率。
(2)以字母或下畫線開頭。
(3)為避免混淆,不應使用VFP 9.0的保留字(命令名、函數(shù)名等系統(tǒng)預定義項的名稱)。
變量分為如下3種類型。
1.字段變量
字段變量指數(shù)據(jù)表中的字段名,是表中最基本的數(shù)據(jù)單元。隨著記錄的不同字段所對應的內(nèi)容隨之變化,隨表的存取而存取。字段變量的類型可以是VFP 9.0規(guī)定的任意數(shù)據(jù)類型,其名字、類型和長度等是在定義表結(jié)構(gòu)時定義的。
2.內(nèi)存變量
內(nèi)存變量是一種獨立于數(shù)據(jù)表之外的變量,常用來存儲用戶經(jīng)常用到的常量,以及程序運行過程中的中間結(jié)果、最后結(jié)果和用戶輸入的信息等。內(nèi)存變量是內(nèi)存中存儲數(shù)據(jù)的位置名稱,變量值就是存儲在這個內(nèi)存空間中的數(shù)據(jù)。該類型取決于變量值的類型,可以是字符型、數(shù)值型、貨幣型、邏輯型、日期型和日期時間型等。
內(nèi)存變量名由字母、數(shù)字和下畫線組成,不能以下畫線開頭。不允許有空格,最長不超過254個字符。如果內(nèi)存變量和字段變量重名,則應該在內(nèi)存變量名前添加標識符號“M”,并用分隔符“.”或“->”連接,即:
M.<內(nèi)存變量名> 或M-><內(nèi)存變量名>
(1)為內(nèi)存變量賦值。
賦值的同時也創(chuàng)建了內(nèi)存變量,常用的賦值命令如下。
<內(nèi)存變量名> = <表達式> STORE <表達式> TO <內(nèi)存變量名表>
例如:
xx=6 STORE 3 TO x, y, z
(2)輸出和顯示內(nèi)存變量的值。
格式:? <表達式表> 或?? <表達式表>
功能:計算并顯示表達式的值,?表示結(jié)果值顯示在下一行;? ?表示結(jié)果顯示在同一行。
例如:
?xx ?? x, y, z
(3)輸出顯示內(nèi)存變量。
格式:LIST MEMORY [LIKE <通配符>][TO PRINT]或DISPLAY MEMORY [LIKE <通配符>] [TO PRINT]
功能:顯示當前已經(jīng)定義的內(nèi)存變量的名稱、數(shù)據(jù)類型和其值。若選擇TO P RINT,則打印當前顯示的內(nèi)容。
例如:
LIST MEMORY &&不分屏顯示所有內(nèi)存變量和系統(tǒng)變量 DISPLAY MEMORY &&分屏顯示所有內(nèi)存變量和系統(tǒng)變量 LIST MEMORY LIKE x* &&不分屏顯示所有名稱以x開始的內(nèi)存變量
(4)保存內(nèi)存變量。
格式:SAVE TO <文件名>[ALL LIKE<通配符>|EXCEPT<通配符>]
功能:將當前已經(jīng)定義的內(nèi)存變量的全部或指定部分存入到內(nèi)存變量文件中,系統(tǒng)將自動生成擴展名為.mem的文件。保存后并沒有清除內(nèi)存變量,仍具有當前值。
例如:
SAVE TO ma SAVE TO bk ALL EXCEPT a*
(5)恢復內(nèi)存變量。
格式:RESTORE FROM <文件名> [ADDITIVE]
功能:恢復指定的內(nèi)存變量文件中保存的所有內(nèi)存變量。若命令中包括可選項ADDITIVE,系統(tǒng)不清除當前的所有內(nèi)存變量,并追加文件中的內(nèi)存變量;否則執(zhí)行后只有內(nèi)存變量文件中保存的那些變量。
例如:
RESTORE FROM bk
(6)清除內(nèi)存變量。
格式:CLEAR MEMORY或RELEASE [<內(nèi)存變量表>][ALL [LIKE|EXCEPT <通配符>]]
功能:清除內(nèi)存變量并釋放相應的內(nèi)存空間,CLEAR MEMORY清除所有的內(nèi)存變量,等同于RELEASE ALL; RELEASE [<內(nèi)存變量表>][ALL [LIKE|EXCEPT <通配符>]]命令清除指定的內(nèi)存變量。
3.數(shù)組變量
數(shù)組也是一種內(nèi)存變量,是內(nèi)存中連續(xù)的一片區(qū)域,須先定義后使用。它由一系列元素組成,每個數(shù)組元素可通過數(shù)組名及相應的下標來訪問。每個元素相當于一個簡單變量,這些數(shù)組元素的數(shù)據(jù)類型可以不同。
(1)定義。
格式:DIMENSION <數(shù)組名>(<下標上界1>[, <下標上界2>])[, …]或DECLARE <數(shù)組名>(<下標上界1>[, <下標上界2>])[, …]
功能:定義一維或二維數(shù)組。
說明:下標的上界是一正整數(shù)值,下界由系統(tǒng)統(tǒng)一規(guī)定為1。下標必須用圓括號括起,一維數(shù)組的元素只有一個下標,二維數(shù)組的元素有兩個以逗號分隔的下標。數(shù)組定義后系統(tǒng)自動為每個數(shù)組元素賦初值邏輯假.F.。
例如:
DIMENSION h(6), j(3,4)
(2)賦值。
可以使用賦值命令分別為數(shù)組元素賦值,也可以為整個數(shù)組的各個元素賦予相同的值。
注意:數(shù)組名不能與簡單變量同名。
例如,在命令窗口中輸入下列內(nèi)容,并觀察結(jié)果:
DIMENSION h(3), j(3,2) h= "系統(tǒng)" j(2,1)=114 j(2,2)=.T. j(3,1)=$12 j(3,2)={^2017/3/20} ?h(1), h(2), h(3) &&顯示結(jié)果為系統(tǒng) 系統(tǒng) 系統(tǒng) ?j(1,1), j(1,2) &&顯示結(jié)果為 .F. F. ?j(2,1), j(2,2) &&顯示結(jié)果為 114 .T. ?j(3,1), j(3,2) &&顯示結(jié)果為 12.0000 03/20/17 ?j(1), j(2), j(3), j(4), j(5), j(6)
顯示結(jié)果為.F. F. 1 14 .T. 12.00 00 03/20/17
4.系統(tǒng)變量
系統(tǒng)變量是VFP 9.0提供的內(nèi)存變量,使用方法與一般變量相同。系統(tǒng)變量名都以下畫線開始,用于控制打印機等外部設備及屏幕輸出格式,或者處理有關(guān)計算器、日歷和剪貼板等方面的信息,因此在定義內(nèi)存變量名時不能以下畫線開始。
- 微服務設計(第2版)
- Unreal Engine Physics Essentials
- C語言程序設計案例教程(第2版)
- MATLAB圖像處理超級學習手冊
- Learning Apache Mahout Classification
- ASP.NET程序設計教程
- Developing SSRS Reports for Dynamics AX
- Android應用開發(fā)深入學習實錄
- AMP:Building Accelerated Mobile Pages
- MySQL數(shù)據(jù)庫應用實戰(zhàn)教程(慕課版)
- 計算機應用基礎案例教程(第二版)
- 大話代碼架構(gòu):項目實戰(zhàn)版
- C語言程序設計實驗指導教程
- 面向物聯(lián)網(wǎng)的Android應用開發(fā)與實踐
- Java基礎案例教程(第2版)