《數(shù)據(jù)庫原理與應(yīng)用(VFP)第二版》課件-第3章 中文Visual Foxpro 6.0語言基礎(chǔ)_第1頁
《數(shù)據(jù)庫原理與應(yīng)用(VFP)第二版》課件-第3章 中文Visual Foxpro 6.0語言基礎(chǔ)_第2頁
《數(shù)據(jù)庫原理與應(yīng)用(VFP)第二版》課件-第3章 中文Visual Foxpro 6.0語言基礎(chǔ)_第3頁
《數(shù)據(jù)庫原理與應(yīng)用(VFP)第二版》課件-第3章 中文Visual Foxpro 6.0語言基礎(chǔ)_第4頁
《數(shù)據(jù)庫原理與應(yīng)用(VFP)第二版》課件-第3章 中文Visual Foxpro 6.0語言基礎(chǔ)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章中文VisualFoxpro6.0語言基礎(chǔ)3.1數(shù)據(jù)類型3.2常量與變量3.3標準函數(shù)3.4表達式學習目標理解數(shù)據(jù)類型、常量和變量的概念;掌握各種數(shù)據(jù)類型的特點和常量的表示形式;掌握數(shù)組的定義和數(shù)組元素的引用;掌握各類標準函數(shù)的使用方法;理解表達式的概念和表達式的分類;掌握表達式的計算方法與步驟。重點與難點重點在于表達式的正確書寫和運算;難點在于函數(shù)的靈活應(yīng)用。3.1數(shù)據(jù)類型數(shù)據(jù)類型確定數(shù)據(jù)的存儲方式和使用方式,它是使用VFP的語言基礎(chǔ),了解各種數(shù)據(jù)類型的有關(guān)知識十分必要。VFP提供的數(shù)據(jù)類型序號中文名稱英文名稱長度type函數(shù)返回值說明1字符型Character1~254C2貨幣型Currency8Y3數(shù)值型Numeric1~20N4浮點型Float1~20N*5日期型Date8D6日期時間型Datetime8D7雙精度型Double8N*8整型Integer4N*9邏輯型Logic1L10備注性Memo4M*11通用型General4G*12字符型(二進制)Character1~254C*13備注型(二進制)Memo4M*14未定義的表達式類型Utype(字符表達式)譬如:x=12.3?type("x")&&顯示“N”3.1.1字符型字符型數(shù)據(jù)由字母(A~Z或a~z)、漢字、數(shù)字(0~9)、空格等任意ASCII碼組成,長度為0~254,每個字符占一個字節(jié)。不能進行四則運算的數(shù)據(jù)須用字符型表示。字符型常量用單引號(‘’)、雙引號(“”)或中括號([])界定符來界定,注意:界定符不屬于字符型常量。譬如:

'中國',"中國"或[中國]。3.1.2貨幣型表示錢數(shù)的多少使用貨幣型,每個貨幣型數(shù)據(jù)占8個字節(jié),可以表示比較寬的數(shù)據(jù),在小數(shù)位數(shù)超過4位時,系統(tǒng)將自動進行“四舍五入”處理。在指定某個常量為貨幣類型時,要使用“$”符號。譬如:x=$13.58。3.1.3數(shù)值型數(shù)值型數(shù)據(jù)由數(shù)字(0~9)、一個符號(+或-)或一個小數(shù)點(.)組成,長度為1~20位(包括符號和小數(shù)點),每個數(shù)據(jù)占8個字節(jié)。譬如:-100.5234.56能夠進行四則運算。

3.1.4浮點型浮點型也叫單精度浮點型,提供此類型是VFP為了提供兼容性,它的功能與數(shù)值型等價,只不過該類型只能用于數(shù)據(jù)表的字段。3.1.5日期型日期型用來表示日期,長度固定為8個字符,包括年、月和日三個部分,其中年(yyyy)占4位,月(mm)占2位,日(dd)占2位。每個部分用規(guī)定的分隔符分開,而且各個部分的排列順序也可以不同,所以日期型數(shù)據(jù)有多種多樣的表現(xiàn)形式。日期常量嚴格輸入格式為{^yyyy-mm-dd},默認顯示是為mm/dd/yy。譬如:03/22/07日期設(shè)置setdateansi&&年月日格式,用“.”分隔setcenturyon&&用4位表示年份,如果為

off,則2位表示年份setmarkto"-"&&分隔符用“-”setdatetoymd&&年月日格式setdatetomdy&&月日年格式3.1.6日期時間型日期時間型用于描述日期和時間數(shù)據(jù),長度也是固定為8個字符,它除了包括日期的年、月、日外,還包括時、分、秒以及上午、下午。日期時間型常量輸入嚴格格式為{^yyyy-mm-dd[hh[:mm[:ss]][a|p]]},譬如:

{^2007-04-015:30:20p}表示2007年4月1日下午5點30分20秒,p表示下午。同日期型一樣,日期時間型也有多種輸出格式,最常用的是mm/dd/yyhh:mm:ss[am|pm]。譬如:04/01/0705:30:20PM3.1.7雙精度型雙精度型就是雙精度浮點型,同數(shù)值型比,它能提供更高的數(shù)值精度,采用固定存儲長度的浮點數(shù)形式,每個雙精度浮點型數(shù)據(jù)占8個字節(jié),與數(shù)值型數(shù)據(jù)不同,它的小數(shù)點位置是由輸入的數(shù)據(jù)值來決定的,并且只能用于表中的字段。3.1.8整型整型用于表示無小數(shù)部分的數(shù)據(jù),占4個字節(jié),以二進制形式存儲,不像數(shù)值型需要轉(zhuǎn)換成ASCII字符存儲,它只能用于數(shù)據(jù)表的字段。3.1.9邏輯型邏輯型用于對客觀事物判斷,取值可以是“真”或“假”,長度固定為1個字節(jié)。邏輯型的“真”可以用.T.、.t.或.Y.、.y.表示;“假”可以用.F.、.f.或.N.、.n.表示,

注意:字符兩邊的“.”不能省,也不能用空格隔開。3.1.10備注型備注型數(shù)據(jù)用于存放較長的字符型數(shù)據(jù)(字符數(shù)據(jù)塊),可以認為是字符型數(shù)據(jù)的特殊形式,只能用于數(shù)據(jù)表中的字段。在表中,備注型字段占4個字節(jié),顯然,這4個字節(jié)并不是用來存放實際的字符數(shù)據(jù),它實際只是存放一個指針(地址),用于指向字符在備注文件中的相對位置。VFP系統(tǒng)將備注型數(shù)據(jù)存放在一個與數(shù)據(jù)表同名的備注文件中。譬如:一個有備注字段的數(shù)據(jù)表的文件名為test.dbf,對應(yīng)的備注文件名為test.fpt。備注字段的處理備注型數(shù)據(jù)沒有長度限制,僅受限于現(xiàn)有的可用磁盤空間,且備注型字段的實際內(nèi)容變化很大。另外又沒有對應(yīng)的備注型的內(nèi)存變量。對備注型字段的處理,需要轉(zhuǎn)換成字符型變量,然后利用字符型函數(shù)或表達式進行處理。3.1.11通用型通用型數(shù)據(jù)用于存儲OLE對象的數(shù)據(jù),它只能用于數(shù)據(jù)表中的字段,長度固定為4個字節(jié)。同備注型一樣,也只是存放一個指針用于指向?qū)嶋H數(shù)據(jù)在備注文件中的相對位置,實際數(shù)據(jù)或?qū)LE對象引用的路徑存放在與數(shù)據(jù)表同名的備注文件中。OLE對象的具體內(nèi)容可以是一個電子表格、Word文檔或圖片等,所以通用型數(shù)據(jù)也沒有長度的限制,實際長度僅受限于現(xiàn)有的磁盤空間。3.1.12二進制字符型該類型數(shù)據(jù)可用于存儲任意不經(jīng)過代碼頁修改的字符數(shù)據(jù),它只能用在表中的字段。3.1.13二進制備注型該類型數(shù)據(jù)可用于存儲任意不經(jīng)過代碼頁修改的備注型數(shù)據(jù),它只能用在表中的字段。3.2常量與變量在程序運行過程中,有些量不能被改變,而有些量可以被改變,所以根據(jù)量是否能夠被改變可以分為常量和變量。用于存儲數(shù)據(jù)的變量、數(shù)組、字段、對象屬性等都稱為數(shù)據(jù)存儲容器。3.2.1常量程序運行過程中不能被改變的量,稱為常量。在VFP中,常量也是具有一定的類型,根據(jù)是否直接引用可以分為字面常量和符號常量。

(1)字面常量就是直接引用的常量;(2)符號常量就是用一個符號來引用的常量。

字面常量3.14是數(shù)值型常量;“ABC”是字符型常量;{^2007-03-08}是日期型常量;.T.和.F.都是邏輯型常量。符號常量在程序方式還可以使用偽編譯指令#define定義符號常量,例如:

#definePI3.14&&定義符號常量

S=PI*r*r&&引用符號常量符號常量的標識符含義明了,還可以實現(xiàn)“一改全改”。3.2.2變量程序運行過程中可以被改變的量,稱為變量。同常量相比,變量有對應(yīng)的存儲空間,可以存放初值、中間值或程序運行結(jié)果。同樣變量也是有一定的類型的,只不過它不是強制類型,而是通過賦值的類型來確定變量的類型,同一個變量在不同時刻根據(jù)存放值的類型改變,變量的類型也隨之發(fā)生改變。標識符(Identifer)命名規(guī)則:由字母(包括漢字)、數(shù)字和下劃線三種字符組成,且第一個字符不能為數(shù)字,長度不超過254個字符。

標識符使用:變量名,符號常量名,函數(shù)名,屬性名等。內(nèi)存變量和字段變量變量可以分為內(nèi)存變量和字段變量。內(nèi)存變量是內(nèi)存中一個存儲單元的位置名稱,通過變量名存取這個存儲單元的數(shù)據(jù)。VFP退出或斷電后,原來存放在內(nèi)存中的數(shù)據(jù)會被清除。字段變量隨著數(shù)據(jù)表存放在磁盤上,在需要的時候才被調(diào)入內(nèi)存。所以斷電后內(nèi)存變量的數(shù)據(jù)會丟失,而字段變量的數(shù)據(jù)仍然存在。內(nèi)存變量分類可以分為系統(tǒng)變量、內(nèi)存變量和數(shù)組。系統(tǒng)變量系統(tǒng)變量名以下劃線開頭,譬如:_PAGENO用于存放系統(tǒng)有關(guān)的設(shè)置值,所有系統(tǒng)變量及其設(shè)置值以數(shù)據(jù)表的方式存放在磁盤上,在系統(tǒng)啟動時調(diào)入內(nèi)存。系統(tǒng)變量可以通過“工具”菜單的“選項”進行重新設(shè)置。內(nèi)存變量內(nèi)存變量的操作包括給變量賦值、顯示、清除、存盤或恢復等。(1)變量的賦值可以使用store或“=”命令來實現(xiàn)變量的賦值,前者可以一次給多個變量賦值,而后者只能給一個變量賦值。舉例:

store10toa,b,c

a=10b=10c=10

(2)顯示內(nèi)存變量可以使用listmemory或displaymemory命令來顯示,如果不帶其他的動詞短語,那么這兩條命令都可以顯示所有的系統(tǒng)內(nèi)存變量、自定義內(nèi)存變量和數(shù)組元素的有關(guān)信息,前者采用“滾屏”方式顯示,而后者采用“分屏幕”方式顯示。舉例:listmemolikeabc*&&顯示以字母abc開頭的內(nèi)存變量displaymemolikex?y&&顯示以x字母開頭,y字母結(jié)尾,中間可以有0個或1個任意字符。(3)清除內(nèi)存變量所謂“清除”就是某些不需要再用的內(nèi)存變量或數(shù)組從內(nèi)存中釋放,以節(jié)省內(nèi)存空間,清除后的內(nèi)存不能再使用,除非重新定義。舉例:

releasea&&清除變量areleasealllikea?b&&清除以a開頭且b結(jié)尾的內(nèi)存變量clearmemory&&清除所有內(nèi)存變量注意:系統(tǒng)變量是不能被清除的。(4)內(nèi)存變量存盤所謂“存盤”就是將已經(jīng)定義的某些內(nèi)存變量、數(shù)組元素的有關(guān)信息,包括名字、特性(公共、私有或本地)、類型、值等保存到磁盤上的內(nèi)存文件(.mem)中,在需要的時候可以恢復到內(nèi)存。命令格式如下:saveall[like|except框架]to內(nèi)存變量文件名

在管理信息系統(tǒng)設(shè)計中,常常將用戶名和密碼保存在內(nèi)存變量文件中制成“鑰匙盤”,登錄系統(tǒng)時只需插入“鑰匙盤”進行認證,即將用戶名和密碼變量恢復到內(nèi)存。

(5)恢復內(nèi)存變量所謂“恢復”就是從內(nèi)存變量文件中恢復其中所有的內(nèi)存變量的名字、特性、類型和值,被恢復的內(nèi)存變量可以在下面的程序中使用。命令格式如下:restorefrom內(nèi)存變量文件名[additive]若采用additive系統(tǒng)不清除當前的所有內(nèi)存變量,而是將內(nèi)存變量文件中保存的所有內(nèi)存變量增加到當前所有內(nèi)存變量之后,如果這兩部分的內(nèi)存變量名有重復,則系統(tǒng)只保留內(nèi)存變量文件中的內(nèi)存變量。若不采用additive,則系統(tǒng)先清除當前的所有內(nèi)存變量,然后再恢復內(nèi)存變量文件中的所有變量。

數(shù)組數(shù)組是由同一個名字組織起來的,通過下標加以區(qū)分的簡單內(nèi)存變量的集合,它是有序的。數(shù)組的元素通過數(shù)組名和下標唯一確定,如:a(1),a(2)…。對數(shù)組引用,下標是從1開始的。數(shù)組元素相當于變量。在VFP中,同一個數(shù)組元素在不同時刻可以存放不同類型的數(shù)據(jù),并且在同一數(shù)組中的每個元素的值也可以是不同的數(shù)據(jù)類型。數(shù)組可以分為一維數(shù)組和二維數(shù)組。數(shù)組在使用前必須先定義。數(shù)組的定義(1)使用declare命令(2)使用dimension命令(3)使用public命令(4)使用local命令數(shù)組定義和引用舉例數(shù)組的重新定義和動態(tài)地縮放3.3標準函數(shù)在VFP中,有兩類函數(shù):標準函數(shù)和用戶自定義函數(shù)。系統(tǒng)提供了一批標準函數(shù),調(diào)用這些函數(shù)就可以方便地完成某些操作,靈活地應(yīng)用標準函數(shù)可以提高數(shù)據(jù)庫使用和編程的效率。但是有些復雜的操作并沒有對應(yīng)的標準函數(shù),這時就需要用戶自己定義函數(shù)。3.3.1函數(shù)的概念數(shù)學函數(shù):z=f(x,y)函數(shù)的一般形式如下:函數(shù)名([<參數(shù)表>])函數(shù)的組成包括函數(shù)名、函數(shù)的參數(shù)和函數(shù)的返回值。在函數(shù)調(diào)用時,要注意參數(shù)的類型和數(shù)據(jù)范圍和返回值的類型。3.3.2常用的函數(shù)1.數(shù)值計算函數(shù)2.字符處理函數(shù)3.日期函數(shù)4.類型轉(zhuǎn)換函數(shù)5.測試函數(shù)

注意:函數(shù)名可以縮寫為前面4個字母。1.數(shù)值計算函數(shù)2.字符處理函數(shù)3.日期函數(shù)4.類型轉(zhuǎn)換函數(shù)5.測試函數(shù)函數(shù)格式功能作用舉例between(x1,x2,x3)測試表達式x1的值是否在x2和x3之間,是則返回.T.,否則返回.F.between(12,10,20)bof()測試是否文件開頭(beginoffile),是則返回.T.,否則返回.F.bof()eof()測試是否遇到文件末尾(endoffile),是則返回.T.,否則返回.F.eof()found()測試是否找到符合條件的記錄,是則返回.T.,否則返回.F.found()file(c)測試字符表達式c指定的文件是否存在,是則返回.T.,否則返回.F.。如果不在當前目錄必須指明路徑,并且必須包含文件的擴展名。file("test.prg")empty(x)測試表達式x的值是否為空,是則返回.T.,否則返回.F.?!翱铡钡亩x:數(shù)值型表達式,值為0;日期型表達式為ctod("");邏輯型表達式,值為.F.。empty(23)3.4表達式3.4.1表達式的概念3.4.2表達式的運算3.4.1表達式的概念表達式是通過運算符將常量、變量和函數(shù)等運算量按一定規(guī)則組成具有一定意義的式子。表達式包括運算符和運算量。表達式運算的結(jié)果是一個具有固定數(shù)據(jù)類型的常量,根據(jù)最后表達式結(jié)果可以分成不同的表達式類型,譬如:數(shù)值型、字符型、日期型和邏輯型。表達式的結(jié)果可以在命令窗口,使用“?”或“??”顯示。表達式運算的優(yōu)先級表達式的計算一般是從左到右,按優(yōu)先級的高低從高到低進行運算,賦值運算的優(yōu)先級最低,譬如:c=a+b。如果表達式中只有一種類型的運算符,則按各自的優(yōu)先級來進行運算;如果表達式中有兩類或兩類以上的運算符,則按照算術(shù)運算、字符運算、關(guān)系運算和邏輯運算的先后順序來進行運算。3.4.2表達式的運算數(shù)值表達式字符表達式日期表達式關(guān)系表達式邏輯表達式名表達式1.數(shù)值表達式運算符功能舉例**^冪運算2**85^2*乘法3*4*5/除法18/3%模運算(求余數(shù))53%7+加法3+5+7-減法12-3-8注意:VFP中的運算符與數(shù)學中的運算符是有差別的,乘法不能省略。算術(shù)運算的優(yōu)先級是:先括號“()”,在同一括號內(nèi),按先乘方(**,^),再乘除(*,/),再模運算(%),后加減(+,-)。舉例2.字符表達式運算符功能舉例+將連個字符型數(shù)據(jù)連接在一起,形成一個新的字符串"abc"+"cde"-將第一個串尾部的空格去掉后與第二個串連接,并將第一個字符串尾部去掉的空格添加到連接后的字符串末尾。"abc"-"cde"$測試左邊的字符串是否在右邊字符串中出現(xiàn),是則返回.T.,否則返回.F."中國"$"中國人民"舉例3.日期表達式運算符功能舉例+相加。日期型數(shù)據(jù)加上天數(shù);日期時間型是加上秒數(shù)date()+10datetime()+20-相減。日期型數(shù)據(jù)計算兩個日期相差的天數(shù);日期時間型數(shù)據(jù)計算兩個給定日期時間相差的秒數(shù){^1998/10/15}-{^1998/10/10}舉例4.關(guān)系表達式運算符功能舉例<小于1+2<7>大于3+9>20=等于3*5=15<>,#,!=不等于7<>8<=小于或等于6<=9>=大于或等于15>=3*4==字符串等于"abc"=="a

溫馨提示

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

評論

0/150

提交評論