數據類型與數據運算_第1頁
數據類型與數據運算_第2頁
數據類型與數據運算_第3頁
數據類型與數據運算_第4頁
數據類型與數據運算_第5頁
已閱讀5頁,還剩133頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章

VisualFoxPro的數據與數據運算

2.1VisualFoxPro的數據類型

2.2VisualFoxPro數據存儲

2.3常用函數2.4VisualFoxPro的表達式

2.5

VisualFoxPro命令的一般格式

2.6例題解析

本章要點VisualFoxPro系統中各種數據類型數據的存儲、表示方式和操作運算方法常用函數的功能與用法本章難點

數據類型與取值范圍、數據的4種表示形式(常量、變量、函數和表達式)內存變量的操作方法

表達式的使用方法

2.1VisualFoxPro的數據類型

2.1.1字符型(Character)字符型數據是不具計算能力的文字數據類型,用于保存諸如姓名、地址和無需計算的數字等文本信息,用字母C表示。字符型數據包括中文字符、英文字符和其他ASCII字符,其長度(即字符個數)范圍是0到254個字符。

2.1.2數值型(numeric)數值型數據是表示數量、可以進行數值運算的數據類型。數值型數據由數字、小數點、正負號和表示乘冪的字母E組成,數值精度達16位。在VisualFoxPro系統中,按存儲、表達形式與取值范圍不同,數值型數據又分為4種不同類型:

1.普通型(numeric)普通型數據由數字、小數點、正負號和字母E組成,用字母N表示。數值的數據的取值范圍是:-0.9999999999E+19—0.9999999999E+20,包括正負號、小數點和字母E在內,其長度(數據位數)最大20位。通常用于表示實數,如86.0、-0.75、7E-6(即7*10-6)等。

2.浮點型(float)浮點型數據是數值型數據的一種,用字母F表示。它的精度與普通型數據完全等價。3.雙精度型(double)雙精度型數據是具有更高精度的數值型數據,用字母B表示。它采用固定長度的浮點格式存儲,占用8個字節,其取值范圍是±4.94065645841247E-324—±1.79769313486232E308。4.整型(integer)整型數據是不包含小數部分的數值型數據,用字母I表示.整型數據只用來表示整數,以二進制形式存儲,占用4個字節.其取值范圍是:-2147483647—2147483646。

2.1.3日期型(date)日期型數據是表示日期的數據,用字母D表示.日期的默認格式是{mm/dd/yyyy}其中mm表示月份,dd表示日期,yyyy表示年度,固定長度8位,如{^03/16/2005}表示2005年3月16日這一日期數據。

2.1.4日期時間型(DataTimes)日期時間型數據是表示日期和時間的數據,用字母T表示。日期時間的默認格式是{mm/dd/yyyy

hh:mm:ss},其中mm、dd

、yyyy的意義與日期型相同,而hh表示小時,mm表示分鐘,ss表示秒數。日期時間值存儲在含有兩個四字節整數的8個字節中,第一個四字節用于保存日期,剩下的四字節整數保存時間。

2.1.5邏輯型(Logic)邏輯型數據是描述客觀事物真假的數據類型,表示邏輯判斷的結果,用字母L表示。邏輯型數據只有真(.t.或.y.)和假(.f.或.n.)兩種,固定長度1位。為區別其他數據類型,一般需在表示邏輯值的字母t、y、f、n的前后加圓點符“.”。

2.1.6備注型

(Memo)備注型數據用于存儲數據塊。可以把它看成是字符型數據的特殊形式,用字母M表示。

備注型數據沒有數據長度限制,僅受限于磁盤空間。它只用于表中字段類型的定義,字段長度固定為4個字節,實際數據存放在與表文件同名的備注文件(.FPT)中,長度根據數據內容而定。

2.1.7通用型

(General)通用型數據是存儲OLE(ObjectLinkingandEmbedding)對象的數據類型,用字母G表示。通用型數據中的OLE對象可以是電子表格、字處理文檔、

圖形圖片等。它只用于表中字段類型的定義。通用型數據字段長度固定為4個字節,實際數據長度僅受限于磁盤空間。

2.1.8貨幣型

(Currency)貨幣型數據是存儲美元金額而使用的一種稱為貨幣(Currency)的數據類型,其取值范圍是:-922337203685477.5808—922337203685477.5807,默認保留4位小數,占據8字節存儲空間。貨幣型數據用字母Y表示。

2.2VisualFoxPro數據存儲

2.2.1常量

1、常量的概念在VisualFoxPro系統中,常量是指在程序運行過程中始終保持不變的數據;變量是指其值在程序運行的不同時刻會發生改變的量。

2、常量分類

常量是在命令或程序中可以直接引用、具有具體值的命名數據項,其特征是在整個操作過程中它的值和表現形式保持不變。創建常量和釋放常量可以采用以下命令語句:#define<常量名><表達式>#undef<常量名>VisualFoxPro按照常量取值的數據類型將常量分為6種類型。

1.數值型常量由數字、點和正負號組成,表示整數或實數值,如365、-785、155.98、1092.5041等分別是數值型常量中的整數和實數。

2.字符型常量

由任意ASCⅡ字符、漢字和漢字字符組成的字符型數據,字符常量又稱為字符串。為與其他類型相區別,VisualFoxPro要求將字符串中的所有字符用對雙引號“””或單引號“’”或方括號“

[]”作為定界符括起來。

3.邏輯型常量

邏輯型常量就是表示邏輯判斷結果“真”或“假”的邏輯值。邏輯常量只有真和假兩個值,并分別用(.t.和y.)或(.f.和n.)表示。

4.日期型常量

日期型常量就是用來表示日期的數值,其默認格式是{mm/dd/[yy]yy},如{05/01/05},{05/01/2005}均用來表示2005年5月1日這一日期常量值。

5.日期時間型常量

用于表示日期和時間的常量,其默認格式{mm/dd/[yy]yy[,]hh:mm:ss[a|p]},其中a和p分別表示AM(上午)PM(下午)。

(1)日期格式中用2位數表示年份,但涉及到世紀問題就不便區分VisualFoxPro提供設置命令對此進行相應設置:命令格式:

SETCENTURYON|OFF命令功能:

ON:日期數據顯示10位,其中年份4位,即日期值輸出時顯示年份值。

OFF:默認值.日期數據顯示8位,年份2位,即日期值輸出是不顯示年份值。

(2)設置日期顯示格式

命令格式:SETDATA[TO]

AMERICAN|ANSI|BRITISH|FREN|GERMAN|ITLIAN|JAPAN|USE|MDU|DMU|YMD|SHORT|LONG

命令功能:設置日期型和日期時間型數據的顯示格式.系統默認為AMERICAN美國格式。

單擊VisualFoxPro主窗口中的【工具】、【選項】菜單項,打開“選項”對話框后選中“區域”選項卡,單擊展開“日期和時間”欄中的“日期格式”下拉列表框,選擇其中的某個日期格式,然后單擊“確定”按鈕確定此格式設置。

6、貨幣型常量數字前加“$”表示貨幣型數據,如$121.76,表示美元。貨幣型數據最多4位小數,超過4位時自動調整為4位。2.2.2內存變量

VisualFoxPro系統中,變量分為字段變量、內存變量、數組變量和系統變量4類,各種變量都具有名稱和類型屬性。1.命名約定

(1)VisualFoxPro的一般命名約定

只使用字母、下劃線和數字命名。雖然中文版VisualFoxPro允許使用漢字為各類數據容器命名,但一般建議盡量不采用漢字命名,必要時用漢字的拼音字母代替,以提高操作效率。

除自由表中字段名、索引的TAG標志名最多只能有10個字符外,其他的命名可使用1~128個字符。

避免命名時以數字開頭;不可用VisualFoxPro系統中的保留字(如命令名、函數名等各種系統預定義項的名稱)進行命名,以免造成系統的混亂。

文件名的命名要嚴格遵循操作系統的約定。

(2)字段名命名約定:

表中字段的命名,推薦按如下格式:

TypeName

其中:Type為字段的數據類型,Name為字段的命名。數據類型用一個小寫字母表示。如:cXingming定義了姓名字段(字符型)

dBirthDay定義了出生日期字段(日期型)的字段名。

(3)變量命名約定:

變量的命名,推薦如下格式:

TypeName

Type為變量數據類型,Name為變量的命名。如:

dMonths表示一個數組變量

cLastName表示一個字符型變量

2.內存變量

內存變量是內存中的臨時單元,可以用來在程序的執行過程中保留中間結果和最后結果,或用來保留對數據庫進行的某種分析處理后得到的結果。

(1)內存變量的數據類型

內存變量的數據類型包括:數值型、字符型、邏輯型、日期型和日期時間型。

內存變量的數據類型是在變量建立時確定的,由賦值的數據類型決定。相同變量名重復賦值時,其類型可能被改變。所以,相同變量名的類型是可變的、不固定的。(2)內存變量的建立

命令格式:

Store<表達式>to<內存變量表>

命令功能:將<表達式>的值計算出來并賦值給指定內存變量表中的各個內存變量。內存變量表中如有多個內存變量則個兩兩之間以逗號分隔。

命令格式:

<內存變量>=<表達式>

命令功能:將<表達式>的值計算出來并賦值給指定的內存變量。每次只能為一個內存變量賦值。

(3)內存變量的顯示輸出可以用以下命令在屏幕上顯示輸出內存變量的值。

命令格式:

?/??<表達式表>[At<列號>]

命令功能:計算表達式表中各表達式的值,并在屏幕上指定位置顯示輸出各式的值。?代表分行顯示??代表連續顯示

(4)內存變量的清除

內存變量的清除可用RELEASE命令清除內存變量數據,語法格式如下:格式:RELEASE[ALL[LIKE|EXCEPT<結構>]]<內存變量表>

功能:如果語句中包含<內存變量表>,則僅清除清單中指定的內存變量;如果語句中包含ALL[LIKE|EXCEPT<結構>,則按如下條件清除內存變量:

?ALLLIKE<結構>:表示把符合結構中所指定條件的所有內存變量清除。

?ALLEXCEPT<結構>:表示把符合結構中所指定條件以外的所有內存變量清除。變量清除示例:Releasea&&清除變量aReleasealllike??a*&&清除第三字符為a的所有變量Releaseallexcepta*&&清除開頭字符不是a的所有變量Releaseall&&清除所有變量注意:1、Clearmemory命令也可清除所有變量

2、?、*在變量名稱中代表統配符,?代表一個任意字符;*代表多個任意字符。試驗2分鐘A=“你好”Store5*6tob,c?a??b2.2.3數組變量

數組是一組具有相同名稱、以下標相互區分的有序內存變量。其中每一個下標不同的內存變量都是這個數組的一個元素,它是由一個以行和列形式表示的數組元素的矩陣。

1.數組元素

數組元素的名稱(變量名)用數組名加下標構成。如A(1,2)、B(6)分別表示二維數組A中的第1行第2列的元素;一維數組B中第6個元素。

下標必須是非負數值,可以是常量、變量、函數或表達式,下標值會自動取整,如AA(1.75)、AA(nA1)、AA(2,10/3)等。

數組元素的數據類型決定于最后賦值的數據類型,不同數組元素的數據類型可以不同。

2.數組的定義

命令格式:

Dimension|Declare|Public<數組名1>(<下標1>[,<下標2>])

[,<數組名2>(<下標1>[,<下標2>])]

命令功能:定義指定的各個數組。

3.數組的賦值與引用數組元素的賦值與引用,與普通內存變量的規則相同。

常用store命令賦值,如:Store<表達式>to<數組名><數組名>=<表達式>功能:給數組中每個元素賦相同的值。與數組有關的賦值與引用命令還有:Scatter、copytoarray、gatherfrom等,詳細說明可查閱資料。試驗2分鐘Decleara(3)Dimensionb(2,3)A(1)=1Store2*3tob?a(1)?b(1,3)4.系統變量

系統變量是VisualFoxPro系統特有的內存變量,它由VisualFoxPro系統定義、維護。系統變量有很多,其變量名均以下劃線“_”開始,因此在定義內存變量和數組變量名時,不要以下劃線開始,以免與系統變量名沖突。部分系統變量如下:_screen、_vfp

、_pagetotal、_text、_diarydate、_shell,有關說明清查閱資料。5.內存變量與數組變量的基本操作

(1)變量的顯示

命令格式:

Display|ListMemory

命令功能:顯示指定變量的信息。

(2)變量的保存

命令格式:

SaveTo<變量文件名>

命令功能:將指定變量的信息保存到指定的變量文件(*.MEM)中。

(3)變量的恢復

命令格式:

RestoreFrom<變量文件名>[Additive]命令功能:將指定變量文件(*.MEM)

中的變量信息恢復到內存中。

2.2.4字段變量

在一個數據表中,同一個字段名下有若干個數據項,而數據項的值取決于該數據項所在記錄行的變化,所以稱它為字段變量,有時也把字段變量稱為字段名變量。

字段變量的數據類型包括:字符型、整型、浮點型、雙精度型、通用型、備注型、邏輯型、日期型和日期時間型等。2.2.5內存變量與數組變量的作用域

變量只有在運行應用程序時才會存在。所謂變量的作用域即某個變量在應用程序中的有效作用區間。(1)局部變量格式:LOCAL<變量表>

功能:建立局部變量。作用范圍:僅在定義變量的程序內有效,退出程序時自動刪除。其它使用同名變量的程序對本程序無影響。

(2)私有變量格式:PRIVATE<變量表>

功能:PRIVATE并不創建變量,它只在當前程序中隱藏變量,這些變量是在高層程序中聲明的。當前程序可以改變、引用這些變量的值,但不會改變隱藏值。作用范圍:僅在定義變量的程序內以及其調用的下屬程序內有效,定義程序結束后,該聲明即無效。(3)全局變量

格式:PUBLIC<變量表>

功能:定義一個或多個全局內存變量。命令窗口中定義的任何變量或數組自動賦予全局屬性。程序中想要定義全局變量必須先聲明,后賦值,否則會產生語法錯誤。作用范圍:整個系統的所有程序。定義程序結束后,公共變量仍舊存在,不會自動刪除。(4)變量的默認屬性或自然屬性不特別說明,默認是私有變量,一般不必說明。2.3函數

函數是預先編制的程序模塊,可以實現某項功能或完成某種運算。VisualFoxPro的函數有兩種:一種是系統的函數,一種是自定義函數。函數調用的語法格式為:函數名([參數列表])按返回值的類型或功能主要分為以下幾類:(1)數值型函數(2)字符型函數(3)數據轉換函數(4)日期時間型函數(5)測試函數

2.3.1數值型函數

(1)取整函數INT()、CEILING()、FLOOR()(2)取絕對值函數ABS()

(3)四舍五入函數ROUND()

(4)求余數函數MOD()(5)求最大值函數MAX()(6)求平方根函數SQRT()(7)求指數函數EXP()(8)求對數函數LOG()1.絕對值函數函數格式:ABS(<nExp>)

函數功能:計算nExp的值,并返回該值的絕對值。

2.指數函數函數格式:EXP(nExp)

函數功能:求以e為底、nExp值為指數的冪,即返回ex的值。3.取整數函數格式:INT(<nExp>)

函數功能:計算nExp的值,返回該值的整數部分。

4.上界函數函數格式:CEILING(<nExp>)

函數功能:指定nExp的值,返回一個大于或等于該值的最小整數。

5.下界函數函數格式:FLOOR(<nExp>)

函數功能:指定nExp的值,返回一個小于或等于該值的最大整數。

6.自然對數函數函數格式:LOG(<nExp>)

函數功能:返回給定數值表達式的自然對數(底數為e),nExp必須大于0。

7.常用對數函數函數格式:LOG10(<nExp>)函數功能:返回給定數值表達式的常用對數(底數為10),nExp的值必須大于0。

8.平方根函數函數格式:SQRT(<nExp>)函數功能:返回指定數值表達式nExp的平方根。

9.最大值函數和最小值函數函數格式:

MAX(<nExp1>,<nExp2>[,<nExp3>...])

MIN(<nExp1>,<nExp2>[,<nExp3>...])函數功能:分別返回數值表達式中的最大值表達式和最小值表達式。可返回的數據類型有字符型、數值型、貨幣型、雙精度型、浮點型、日期型、日期時間型。

10.求余數函數函數格式:MOD(<nExp1>,<nExp2>)函數功能:返回nExp1除以nExp2的余數。余數的小數位數與nExp1相同,符號與nExp2相同。

11.四舍五入函數函數格式:ROUND(<nExp1>,<nExp>)函數功能:返回nExp1四舍五入的值,nExp2表示保留的小數位數。

12.

π函數函數格式:PI()

函數功能:返回數值常量π的近似值。

13.符號函數函數格式:SIGN(<nExp>)

函數功能:當nExp表達式的值為正、負或0時,分別返回:1、-1或0。

2.3.2字符型函數

(1)求子串函數SUBSTR()、LEFT()、RIGHT()(2)宏代換函數&(3)刪除字符串前導空格函數LTRIM()

(4)刪除字符串尾部空格函數RTRIM()/TRIM()

(5)刪除字符串前后空格函數ALLTRIM()

(6)子串位置檢索函數AT()(7)字符串替換函數STUFF()

(8)產生重復字符函數REPLICATE()

(9)求字符出現次數函數OCCURS()1.查找子串函數函數格式:

AT(<cExp1>,<cExp2>,[<數值表達式n>])函數功能:查找字符串表達式cExp1在字符串表達式cExp2中的起始位置。如果有數值表達式n,則確定字符型表達式cExp1在字符型表達式cExp2中的第n次出現的起始位置;如果未指定數值表達式n,則確定每次出現的起始位置;如果cExp1不在cExp2中,函數返回值為零。

2.取左子字符串函數函數格式:LEFT(<cExp>,<nExp>)

函數功能:返回從cExp字符串中的左邊第一個字符開始,截取nExp個指定長度的字符串。

3.取右子字符串函數函數格式:RIGHT(<cExP>,<nExP>)

函數功能:返回從cExP字符串中右邊的第一個字符開始,截取nExP個指定長度的字符。有關提示要點同LEFT()函數。

4.截取子字符串函數函數格式:

SUBSTR(<cExp>,<nExp1>[,<nExp2>])

函數功能:返回從串cExp中的第nExp1個字符開始,截取nExp2個字符長度的子字符串。

5.字符串長度函數函數格式:

LEN(<cExp>)

函數功能:返回cExp串的字符數(包括空格),函數值為數值型。

6.刪除字符串前導空格函數函數格式:LTRIM(<cExp>)函數功能:刪除cExp字符串前空格字符。7.刪除字符串尾部空格函數函數格式:

RTRIM(<cExp>)|TRIM(<cExp>)函數功能:刪除cExp串尾空格字符。8.空格函數函數格式:

SPACE(<nExp>)

函數功能:生成指定空格數的空字符串。

9.字符串替換函數函數格式:

STUFF<cExp1>,<nExp1>,<nExp2>,<cExp2>)函數功能:從nExp1指定位置開始,用cExp2串替換cExp1串中的nExp2個字符。10.重復字符串函數函數格式:

REPLICATE(<cExp>,<nExp>)函數功能:將字符串cExp重復指定的nExp次數。

11.大小寫轉換函數函數格式:

LOWER(<cExp>)|UPPER(<cExp>)

函數功能:LOWER()將cExp串中的字母全部變成小寫字母;

UPPER()將cExp串中的字母全部變成大寫字母,其他字符不變。

12.宏替換函數函數格式:&<cVar>[.<cExp>]

函數功能:替換出字符型變量cvar中的字符。

2.3.3數據轉換函數

(1)大小寫轉換函數(2)數值型轉換成字符型函數(3)字符型轉換成數值函數(4)字符轉換成日期型函數(5)日期型轉換成字符型函數1.ASCII碼函數函數格式:ASC(<cExp>)函數功能:返回cExp串首字符的ASCII碼值,函數值為數值型。2.ASCII碼轉換為字符函數函數格式:CHR(<cExp>)函數功能:將ASCII碼轉化為相應的字符,函數返回值為字符型。3.字符型轉換為日期型函數函數格式:CTOD(<cExp>)函數功能:將“mm/dd/yy”格式的cExp串轉換成對應的日期值,返回的函數值為日期型。4.日期型轉換為字符型函數函數格式:DTOC(<dExp>[,1])函數功能:將日期型dExp轉換成相應的字符串,函數返回值類型為字符型。

5.數值型轉換為字符型函數函數格式:

STR(<nExp1>[,<nExp2>][,<nExp3>])

函數功能:將數值表達式nExp1按設定的長度nExp2和小數位數nExp3轉換成字符型數據,函數返回值為字符型。

6.字符型轉換為數值型函數函數格式:VAL(<cExp>)函數功能:將數值字符串轉換為數值。

2.3.4日期時間型函數(1)時間函數TIME()(2)日期函數DATE()

(3)年份函數YEAR()(4)月份函數MONTH()

(5)日期函數DAY()

1.系統日期函數函數格式:DATE()函數功能:返回當前系統日期,此日期由Windows系統設置,函數返回值為日期型。

2.系統時間函數函數格式:TIME([nExp])

函數功能:返回當前系統時間,時間顯示格式為hh:mm:ss。若選擇了nExp,則不管為何值,返回的系統時間都包括秒的小數部分,精確至小數點后兩位,函數返回值為字符型。3.日期函數函數格式:DAY(<dExp>)

函數功能:返回dExp式中的天數,函數返回值為數值型。

4.星期函數函數格式:

DOW(<dExp>)|CDOW(<dExp>)

函數功能:DOW()函數返回dExp式中星期的數值,用1~7表示星期日~星期六。函數值為N型。CDOW()函數返回dExp式中星期的英文名稱,函數型為字符型。5.月份函數函數格式:

MONTH(<dExp>)|CMONTH<dExp>)函數功能:MONTH()函數返回dExp式中的月份數,函數值為數值型。CMONTH()函數則返回月份的英文名,函數值為字符型。6.年份函數函數格式:YEAR(<dExp>)

函數功能:函數返回dExp式中的年份值,函數值為數據型。2.3.5測試函數

1.文件開始測試函數函數格式:BOF()

函數功能:測試記錄指針是否到指向第一條記錄之前。

2.文件結束測試函數函數格式:EOF()

函數功能:測試記錄指針是否到指向第一條記錄之后。3.檢索測試函數函數格式:FOUND()

函數功能:測試是否找到符合要求的記錄。4.記錄號測試函數函數格式:RECNO()

函數功能:返回當前記錄的記錄號。5.工作區測試函數函數格式:SELECT()

函數功能:測試當前工作區的區號。6.數據類型測試函數函數格式:TYPE(<cExp>)函數功能:測試表達式的數據類型,用大寫字母表示。表達式必須用字符串表示。如果表達式不存在或有錯誤,則返回值為U。邏輯函數主要用于對表達式進行測試判斷,如果表達式為真時,則輸出結果為.T.為假時,輸出結果為.F.。(1)判斷表達式是否在上下限之間BETWEEN()(2)判斷表達式是否為空EMPTY()

(3)測試表達式類型TYPE()(4)快速表達式判斷IIF()

(5)判斷表達式是否匹配INLIST()2.3.5邏輯函數用戶自定義函數是由用戶建立、可返回值的代碼,包括過程和函數等。

1.用戶自定義過程

VisualFoxPro中,過程的語法格式是:PROCEDURE<過程名>[LPARAMETERS變量1[,變量2},...]COMMAND[RETURN[表達式]]ENDPROC

2.3.6用戶自定義函數2.用戶自定義函數函數的基本語法格式如下:

FUNCTION<函數名>[LPARAMETERS變量1[,變量2},...]COMMAND[RETURN[表達式]]ENDFUNC2.4VisualFoxPro的表達式

表達式是由常量、變量、函數、字段與運算符組成的有意義的運算式。

運算符是對數據對象進行加工處理的符號,根據其處理數據對象的數據類型,運算符分為算術(數值)運算符、字符運算符、日期運算符、邏輯運算符和關系運算符等5類。相應地,表達式也分為算術表達式、字符表達式、日期時間表達式、邏輯表達式和關系表達式5類。

表2-2算術運算符及其優先級

運算符功能表達示舉例運算結果優先級別()圓括號(2-5)*(3+2)-15最高最低-取相反數-(3-8)5**^乘冪2**5,2^532*/乘、除2*10,25/520,5%取余數20%50+-加、減36+19,29-4755,-182.4.1算術表達式

算術表達式又稱數值表達式,其運算對象和運算結果均為數值型數據。數值運算符的功能及運算優先順序如表2-2所示。表中運算符按運算優先級別從高到低順序排列。

2.4.2字符表達式

字符表達式是用字符運算符將字符型數據對象連接起來進行運算的式子。字符運算的對象是字符型數據,運算結果是字符常量或邏輯常量。字符運算符有合并“+”、連接“-”、包含“$”三種。

日期表達式是由“+”或“—”運算符將日期型數據或日期時間型數據與數值常量或同類型數據進行加、減運算。其結果為日期型數據或日期時間型數據或數值常量。共有6種情況:

格式1:

<日期型數據>+<天數><天數>+<日期型數據>

功能:結果是將來的某個日期。

格式2:

<日期型數據>-<天數>

功能:結果是過去的某個日期。

格式3:<日期型數據1>-<日期型數據2>

功能:結果是兩個日期之間相差的天數。

2.4.3日期表達式格式4:<日期時間型數據>+<秒數><秒數>+<日期時間型數據>

功能:結果是若干秒后的某個日期時間。

格式5:<日期時間型數據>-<秒數>

功能:結果是若干秒前的某個日期時間。

格式6:<日期時間型數據1>-<日期時間型數據2>

功能:結果是兩個日期之間相差的秒數。2.4.4關系表達式

關系表達式是由關系運算符將數值表達式、字符表達式、日期表達式連接起來的表達式,結果為邏輯真和邏輯假,分別用.T.和.F.表示。

2.4.5邏輯表達式

邏輯表達式是由邏輯運算符對關系表達式進行運算的表達式,結果為邏輯真和邏輯假。表2-5為邏輯運算符的功能。邏輯運算符前后一般前后要加圓點“.”標記,以示區別。

2.5VFP命令的一般格式2.5.1命令的一般格式命令通常由兩部分組成:第一部分是命令動詞,表示應該執行的操作;第二部分是若干短語,對操作提供某些限制性的說明。下面列出VisualFoxPro操作命令的一般語法格式:

命令動詞[<范圍>][<表達式表>][FOR<條件>][WHILE<條件>][TOFILE<文件名>/TOPRINTER/TOARRAY<數組表>/TO<內存變量>][ALL[LIKE/EXCEPT<通配符>]][IN<別名>]

?

命令動詞是個英文動詞,表示這個命令所要完成的操作。

?

<范圍>表示對數據庫表文件進行操作的記錄范圍

?

表達式可以是一個或多個由逗號分隔開的表達式,用來表示命令所進行操作的結果參數

?

FOR<條件>和WHILE<條件>在FOR短語和WHILE短語中<條件>是一個邏輯表達,它的值必須為真(.T.)或假(.F.)

(1)任何一條命令必須以命令動詞開頭。后面的多個短語通常與順序無關,但是必須符合命令格式的規定。(2)用空格來分隔每條命令中的各個短語,如果兩個短語之間有其它分界符,則空格可以省略。(3)一行只能寫一條命令,以回車表示結束。一行不能寫多條命令,但一條命令可以寫多行。一條命令的最大長度是254個字符。一行寫不下時。用續行符“;”在行末進行分行,并在下行連續書寫。

2.5.2命令的書寫規則(4)命令中的英文字母大小寫可以混合使用。(5)命令動詞和子句中的短語可以用其前四個字母縮寫表示。(6)MicrosoftVisualFoxPro中的保留字包括函數,系統內存變量,屬性,事件,方法,命令,菜單常數和子句。用戶在選擇變量名、字段名和文件名時,應盡可能不使用系統中的命令動詞和命令字,以免程序在運行中產生語法錯誤。不能用操作系統所規定的輸出設備名作為文件名,也不能用A到J之間的單個字母作表名,以免與工作區名稱沖突。

VisualFoxPro有兩種運行方式:命令方式和程序方式。

1.命令方式命令方式即在VisualFoxPro的命令窗口中鍵入命令行,按回車鍵立即執行,系統的主窗口區馬上會顯示執行的結果。命令方式一般都在VFP的命令窗口中進行的。

2.5.3命令的運行方式2.程序方式程序方式先要通過命令MODIFYCOMMAND<命令文件名>建立特定的命令文件。建立時逐行鍵入命令行,然后存人磁盤,由用戶指定命令文件名,系統默認的擴展名是.PRG,然后由DO命令執行。格式:DO<命令文件名>

功能:這種方式調用程序文件,系統將自動執行這一文件,將用戶繁瑣的介入減到最少。程序執行方式運行效率高,可以重復執行。如何進行程序設計,使本課程學習重點,將隨后講述。2.5.4常用命令1賦值命令STORE

在程序中如果要使用變量,則必須在使用之前為變量設定一個初始值或改變它的現行值。賦值語句可以將指定的值賦給內存變量或對象的某個屬性。格式:STORE<表達式>TO<變量名列表.>/<數組名列表>

功能:賦值命令STORE的主要是給內存變量賦值,多個變量名之間通過逗號隔開。具體功能如下:

?

建立內存變量,并給內存變量/數組賦初值。

?

為已建立的內存變量/數組重新賦值。STORE會用新值替換舊值。

?給一個變量或數組賦值時,可以用“=”可以代替STORE命令,簡寫為:

<內存變量名>/<數組名>=<表達式>?

對日期型內存變量賦值時,如果<表達式>是日期型常量,則必須用花括號“{}”括起來并在前面加上一個符號(^),如果<表達式>是字符串,則必須用轉換函數將其換為日期型。示例:today={^2005/12/06}today=CTOD(“12/06/2005”)格式:?︱??<表達式>[[FUNCTION參數][FONT字體名[,字體大小]]…功能:在屏幕上顯示表達式的內容。參數說明:·

?表達式:用于對表達式進行計算,然后新起一行顯示計算結果,計算結果顯示在VisualFoxPro主窗口或者活動的用戶自定義窗口的下一行;

2、顯示命令??表達式:結果顯示在VisualFoxPro主窗口、活動的用戶定義窗口或者打印機當前行的當前位置上。不換行而接著當前行直接輸出。計算并顯示變量、表達式和常量的值當?命令后面沒有任何表達式時,輸出一個空行;該命令后可以跟多行參數,有PICTURE參數、V參數、AT參數、FONT參數、STYLE參數等。這些參數的含義與使用可參閱有關文獻并逐步熟練。其它命令以后逐步講述。2.6例題解析

1.下列

符號不能作為VisualFoxPro中的變量名。

A)

ABCDEFGB)

K123C)

12SADFD)

溫馨提示

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

評論

0/150

提交評論