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

下載本文檔

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

文檔簡介

第2章

VisualFoxPro的數(shù)據(jù)與數(shù)據(jù)運算

2.1VisualFoxPro的數(shù)據(jù)類型

2.2VisualFoxPro數(shù)據(jù)存儲

2.3常用函數(shù)2.4VisualFoxPro的表達式

2.5

VisualFoxPro命令的一般格式

2.6例題解析

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

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

表達式的使用方法

2.1VisualFoxPro的數(shù)據(jù)類型

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

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

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

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

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

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

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

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

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

2.1.6備注型

(Memo)備注型數(shù)據(jù)用于存儲數(shù)據(jù)塊??梢园阉闯墒亲址蛿?shù)據(jù)的特殊形式,用字母M表示。

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

2.1.7通用型

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

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

2.1.8貨幣型

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

2.2VisualFoxPro數(shù)據(jù)存儲

2.2.1常量

1、常量的概念在VisualFoxPro系統(tǒng)中,常量是指在程序運行過程中始終保持不變的數(shù)據(jù);變量是指其值在程序運行的不同時刻會發(fā)生改變的量。

2、常量分類

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

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

2.字符型常量

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

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

3.邏輯型常量

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

4.日期型常量

日期型常量就是用來表示日期的數(shù)值,其默認格式是{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位數(shù)表示年份,但涉及到世紀問題就不便區(qū)分VisualFoxPro提供設置命令對此進行相應設置:命令格式:

SETCENTURYON|OFF命令功能:

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

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

(2)設置日期顯示格式

命令格式:SETDATA[TO]

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

命令功能:設置日期型和日期時間型數(shù)據(jù)的顯示格式.系統(tǒng)默認為AMERICAN美國格式。

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

6、貨幣型常量數(shù)字前加“$”表示貨幣型數(shù)據(jù),如$121.76,表示美元。貨幣型數(shù)據(jù)最多4位小數(shù),超過4位時自動調(diào)整為4位。2.2.2內(nèi)存變量

VisualFoxPro系統(tǒng)中,變量分為字段變量、內(nèi)存變量、數(shù)組變量和系統(tǒng)變量4類,各種變量都具有名稱和類型屬性。1.命名約定

(1)VisualFoxPro的一般命名約定

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

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

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

文件名的命名要嚴格遵循操作系統(tǒng)的約定。

(2)字段名命名約定:

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

TypeName

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

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

(3)變量命名約定:

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

TypeName

Type為變量數(shù)據(jù)類型,Name為變量的命名。如:

dMonths表示一個數(shù)組變量

cLastName表示一個字符型變量

2.內(nèi)存變量

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

(1)內(nèi)存變量的數(shù)據(jù)類型

內(nèi)存變量的數(shù)據(jù)類型包括:數(shù)值型、字符型、邏輯型、日期型和日期時間型。

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

命令格式:

Store<表達式>to<內(nèi)存變量表>

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

命令格式:

<內(nèi)存變量>=<表達式>

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

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

命令格式:

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

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

(4)內(nèi)存變量的清除

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

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

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

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

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

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

1.數(shù)組元素

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

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

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

2.數(shù)組的定義

命令格式:

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

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

命令功能:定義指定的各個數(shù)組。

3.數(shù)組的賦值與引用數(shù)組元素的賦值與引用,與普通內(nèi)存變量的規(guī)則相同。

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

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

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

(1)變量的顯示

命令格式:

Display|ListMemory

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

(2)變量的保存

命令格式:

SaveTo<變量文件名>

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

(3)變量的恢復

命令格式:

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

中的變量信息恢復到內(nèi)存中。

2.2.4字段變量

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

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

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

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

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

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

格式:PUBLIC<變量表>

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

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

2.3.1數(shù)值型函數(shù)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

9.最大值函數(shù)和最小值函數(shù)函數(shù)格式:

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

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

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

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

12.

π函數(shù)函數(shù)格式:PI()

函數(shù)功能:返回數(shù)值常量π的近似值。

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

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

2.3.2字符型函數(shù)

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

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

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

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

(8)產(chǎn)生重復字符函數(shù)REPLICATE()

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

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

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

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

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

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

4.截取子字符串函數(shù)函數(shù)格式:

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

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

5.字符串長度函數(shù)函數(shù)格式:

LEN(<cExp>)

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

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

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

SPACE(<nExp>)

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

9.字符串替換函數(shù)函數(shù)格式:

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

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

11.大小寫轉換函數(shù)函數(shù)格式:

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

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

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

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

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

2.3.3數(shù)據(jù)轉換函數(shù)

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

5.數(shù)值型轉換為字符型函數(shù)函數(shù)格式:

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

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

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

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

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

(5)日期函數(shù)DAY()

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

2.系統(tǒng)時間函數(shù)函數(shù)格式:TIME([nExp])

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

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

4.星期函數(shù)函數(shù)格式:

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

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

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

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

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

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

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

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

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

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

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

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

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

1.用戶自定義過程

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

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

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

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

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

表2-2算術運算符及其優(yōu)先級

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

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

2.4.2字符表達式

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

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

格式1:

<日期型數(shù)據(jù)>+<天數(shù)><天數(shù)>+<日期型數(shù)據(jù)>

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

格式2:

<日期型數(shù)據(jù)>-<天數(shù)>

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

格式3:<日期型數(shù)據(jù)1>-<日期型數(shù)據(jù)2>

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

2.4.3日期表達式格式4:<日期時間型數(shù)據(jù)>+<秒數(shù)><秒數(shù)>+<日期時間型數(shù)據(jù)>

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

格式5:<日期時間型數(shù)據(jù)>-<秒數(shù)>

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

格式6:<日期時間型數(shù)據(jù)1>-<日期時間型數(shù)據(jù)2>

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

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

2.4.5邏輯表達式

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

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

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

?

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

?

<范圍>表示對數(shù)據(jù)庫表文件進行操作的記錄范圍

?

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

?

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

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

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

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

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

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

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

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

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

?

建立內(nèi)存變量,并給內(nèi)存變量/數(shù)組賦初值。

?

為已建立的內(nèi)存變量/數(shù)組重新賦值。STORE會用新值替換舊值。

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

<內(nèi)存變量名>/<數(shù)組名>=<表達式>?

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

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

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

1.下列

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

A)

ABCDEFGB)

K123C)

12SADFD)

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論