VFP數(shù)據(jù)庫系統(tǒng)Visual FoxPro的基礎(chǔ)知識_第1頁
VFP數(shù)據(jù)庫系統(tǒng)Visual FoxPro的基礎(chǔ)知識_第2頁
VFP數(shù)據(jù)庫系統(tǒng)Visual FoxPro的基礎(chǔ)知識_第3頁
VFP數(shù)據(jù)庫系統(tǒng)Visual FoxPro的基礎(chǔ)知識_第4頁
VFP數(shù)據(jù)庫系統(tǒng)Visual FoxPro的基礎(chǔ)知識_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章VisualFoxPro6.0的基礎(chǔ)知識

2.1匚VisualFoxPro6.0系統(tǒng)菜單的使用

2.2KisualFoxPro6.0輔助設(shè)計工具

2.3IZyisualFoxPro6.0的基本概念

2.4口isualFoxPro6.0的數(shù)據(jù)類型和數(shù)據(jù)存儲

2.5宣算符與表達(dá)式

2?6口?數(shù)

2.7邀組

1

2.1VisualFoxPro6.0系統(tǒng)菜單的使用

2.1.1VisualFoxPro6.0用戶界面

2

2.1.2主菜單欄

?玉菜單又稱系冢菜單,它包含:文件、編輯、顯

示、格式、工具、程序、窗口和幫助共8個菜單選

項。

2.1.3工具欄

VFP6.0有如下11種:常用、布局、表單控件、表

單設(shè)計器、查詢設(shè)計器、視圖設(shè)計器、數(shù)據(jù)庫設(shè)計器、

報表控件、報表設(shè)計器、調(diào)色板和打印預(yù)覽工具欄。

通過“顯示”菜單的“工具欄”命令管理各種工具欄。

2.1.4配置VisualFoxPro6.0

通過“工具”菜單的“選項”命令配置需要開發(fā)

環(huán)境。

3

浮工具欄兇

工具欄(T):

4

2.2VisualFoxPro6.0輔助設(shè)計工具

2.2.1向?qū)?/p>

向?qū)且环N快捷設(shè)計工具,能以對話框的形式引導(dǎo)

用戶分步完成某項任務(wù)。

2.2.2設(shè)計器

設(shè)計器用來創(chuàng)建或修改VFP應(yīng)用程序所需要的構(gòu)件,

其功能比向?qū)Ц鼜?qiáng)。

2.2.3生成器

生成器的主要功能是在VFP應(yīng)用程序的構(gòu)件中生

成并加入一個構(gòu)件,如生成一個組合框或列表框等

O

VFP提供了21種向?qū)А?種設(shè)計器、10種生成器。

6

2.3VisualFoxPro6。的基本概念

2.3.1EVisualFoxPro6.0的文件

使用VisualFoxPro6.0開發(fā)應(yīng)用程序時會創(chuàng)建

很多文件,這些文件的文件類型多而繁雜。

常用的文件類型有:數(shù)據(jù)庫、表、項目、索引、

查詢、視圖、程序、表單、菜單、報表、標(biāo)簽等。

2.3.2O/isualFoxPro6.0的項目

項目是指文件、數(shù)據(jù)、文檔和各種對象的集合。

項目文件的擴(kuò)展名是PJX。

項目是用“項目管理器”來管理的,打開項目文

件會自動打開項目管理器。

7

2.3.2O/isualFoxPro6.0的工作方式

1.交互方式

(1)菜單操作方式

(2)工具操作方式

(3)命令操作方式

2.程序操作方式

2.3.3EVisualFoxPro6.0的命令格式

1.命令格式

每條命令的一般格式如下:

命令動詞子句

子句也稱為“短語”

DISPLAY|LIST[FIELDSv字段名表刁[范圍]

[FORv條件刁[WHILEv條件習(xí)[OFF]

[TOPRINTER[PROMPT]|TOFILEv文件刁]

8

2.四種常用的命令子句

(1)范圍子句

有4種格式:

ALL所有記錄

NEXT<N>從當(dāng)前記錄開始的N條記錄

RECORD<N>第N條記錄

REST從當(dāng)前記錄開始到最后一條記錄的所有記錄

(2)FOR子句

FOR<條件>用來指定篩選記錄的條件

(3)WHILE子句

也用于指定篩選條件,僅在當(dāng)前記錄符合〈條件》

時開始依次篩選記錄,一旦遇到不滿足條件的記錄

就停止操作。即連續(xù)篩選。

9

(4)FIELDS子句

確定需要操作的字段。

3.命令書寫規(guī)則

(1)必須以命令動詞開頭,命令子句通常無先后順序,但必須

用空格隔開。

(2)命令動詞與各子句中的保留字可以簡寫成前4個字母,英文

字母不區(qū)分大小寫。

(3)一條命令的長度可達(dá)8192個字符。若一行寫不下,可在適

當(dāng)?shù)奈恢貌迦肜m(xù)行符";"并按【Enter】鍵,然后在下一行繼

續(xù)鍵入命令的后面部分。

(4)命令子句中的標(biāo)點符號都是英文半角下的。

(5)命令或函數(shù)格式中以分隔的兩項表示兩者可選其一,

例如DISPLAY|LISTO用尖括號“?”括起來的部分表示由用

戶定義的內(nèi)容。但這些符號并非命令或函數(shù)的組成部分。

DISPLAYFIELDS編號,姓名,性別,所在學(xué)院FOR職稱二〃教授〃

10

2.4VFP6.0的數(shù)據(jù)類型和數(shù)據(jù)存儲

2.4.1數(shù)據(jù)和數(shù)據(jù)類型

VFP

6.0的數(shù)據(jù)類型分為兩大類:一類用于變量和數(shù)組,

一類用于表中的字段。

1.字符型(Character)

由字母(漢字)、數(shù)字、空格等任意ASCII碼組成。

字符數(shù)據(jù)的長度為0~254,每個字符占1個字節(jié)。

2.數(shù)值型(Numeric)

由數(shù)字0~9、一個符號(+或?)和一個小數(shù)點O組成。

數(shù)值型數(shù)據(jù)的長度為1~20,每個數(shù)據(jù)占8個字節(jié)。

數(shù)值型數(shù)據(jù)取值范圍是?.9999999999E+19~.9999999999E+20

3.貨幣型(currency)

在使用貨幣值時,可以使用貨幣型來代替數(shù)值型,默認(rèn)

格式是卻數(shù)值量”。小數(shù)位數(shù)超過4位時,系統(tǒng)將進(jìn)行四

舍五入。每個貨幣型數(shù)據(jù)占8個字節(jié)。

4.日期型(Date)

存儲格式為“yyyymmdd",其中yyyy為年,占4位;

mm%月,占2位;dd為日,占2位。

表示格式有多種,最常用的格式為mm/dd/yyyy。

取值范圍:公元0001年1月1日~公元9999年12月31日

5.日期時間型(DateTime)

存儲格式為,yyyymmddhhmmss”,其中yyyy為年,

占4位;mm為月,占2位;dd為日,占2位;hh為時

間中的小時,占2位;mm為分鐘,占2位;ss為秒,

占2位。

日期時間型數(shù)據(jù)中可以只包含一個日期或只包含

一個時間值,缺省日期值時,系統(tǒng)自動加上1999年

12月31日;缺省時間值時,則自動加上午夜零點。

6.邏輯型(Logical)

存入的值只有真(.T.)和假(,F.)兩種狀態(tài),占1

個字節(jié)。

以下數(shù)據(jù)美型只能被用于數(shù)據(jù)表中的字段:

7.雙精度型(Double)

用于取代數(shù)值型,以便能提供更高精度的數(shù)值。

8.浮點型(Float)

浮點型在功能上與數(shù)值型等價,包含此類型是為了

提供兼容性。

9.通用型(General)

用于存儲OLE對象,該字段包含了對OLE對象的引

用。通用型字段占4個字節(jié),用來引用它的實際內(nèi)容,

實際內(nèi)容存放在與表文件同名的備注文件中。

13

10.整型(Integer)

用于存儲無小數(shù)部分的數(shù)值,占4個字節(jié)。

11.備注型(Memo)

用于字符型數(shù)據(jù)塊的存儲,占4個字節(jié),用這4個字

節(jié)來引用備注的實際內(nèi)容。實際備注內(nèi)容存儲在相應(yīng)的

備注文件中,故備注型字段的大小僅受限于現(xiàn)有的磁盤

空間。

12.字符型(二進(jìn)制)

用于存儲任意不經(jīng)代碼頁修改而維護(hù)的字符數(shù)據(jù)。

13.備注型(二進(jìn)制)

用于存儲任意不經(jīng)過代碼頁修改而維護(hù)的備注型數(shù)

據(jù)。

14

2.4.2常量

.退序運行過程中其值保持不變的量稱為常量。

常量有數(shù)值型、浮點型、字符型、邏輯型、日期型、

日期時間型和貨幣型七種。

1,數(shù)值型常量

由數(shù)字(0~9)、小數(shù)點和正負(fù)號組成。

例如:-123.56768+32567.67

2.浮點型常量

是差值型常量的浮點格式。

例如:-123E+I2-3645E-

89o3.字符型常量

由漢字和ASCII字符集中可打印字符組成的字符

串,使用時必須用定界符或口)括起來。

例如:“ABCDE”、精華大學(xué)二[100]等。

15

4.邏輯型常量

有“真”和“假”兩種值。

例如:.t.或?T?、?f.或?F?。

5.日期型常量

其規(guī)定格式為{mm/dd/yyyy)。

例如:{04/12/1982}>{05/04/2002}等。

6.貨幣型常量

前面加“$”,精確到小數(shù)點后4位。

如$123.456。貨幣型常量可以參加算數(shù)運算。

7.日期時間型常量

其規(guī)定格式為{mm/dd/yyyyhh:mm:ss}o

例如:{04/12/198210:30:00}

八另外有一種嚴(yán)格日期形式為:

Cyyyy-1nm-dd[,][:ss]][a|p]]

如:{^2001/03/21,14:56:34)化

有關(guān)日期格式設(shè)置的命令:

(1)SETCENTURYON/OFF

用來設(shè)置年份的位數(shù)。

(2)SETDATETO

ANSI|AMERICAN|BRITISH|FRENCH|GERMAN|ITALIAN|JAPAN|USA

YMD|MDY|DMY

設(shè)置日期顯示的格式。

(3)SETSTRICTDATETO0/1/2

用來設(shè)置是否對日期格式進(jìn)行檢查。

(4)SETMARKTO[日期分隔符]

SETCENTURYON&&設(shè)置4位的年份

SETSTRICTDATETO1&&打開嚴(yán)格的日期格式檢查

SETMARKTO”J&&設(shè)置分隔符為逗號

SETDATETOYMD&&設(shè)置日期格式為年月日

?「2001/02/03}&&顯示日期常量的值

屏幕上將顯示:

17

2001,02,03

2.4.3變量及基本操作

1.變量的概念、分類和命名

VisualFoxPro6.0中有4種形式的變量:內(nèi)存變

量、數(shù)組變量、字段變量和系統(tǒng)變量。

除系統(tǒng)變量外,每個變量都有一個名稱,稱為變

量名。

變量名的命名規(guī)則是:以字母或下劃線開頭,由字母、

數(shù)字及下劃線組成,長度為廣128個字符,不能使用

VisualFoxPro6.0的保字。在中文VisualFoxPro

6.0中,可以以漢字開頭并包含漢字,每個漢字占2個

字符。

No>xyz_l>a_2x>變量、姓名、_www、ol(“o”和

“1”都是字母,要和數(shù)字0和1區(qū)另講來)、_0_1(數(shù)

字0和1)合法的

2x、w-2>x?y、II>a,b>12_w>y100非法的

00

2.內(nèi)存變量

(1)相關(guān)概念

內(nèi)存變量是存放單個數(shù)據(jù)的內(nèi)存單元,是一種臨

時變量,獨立于數(shù)據(jù)庫文件的存在,可以隨時建立和

刪除。常用來存儲數(shù)據(jù)處理過程中的輸入、輸出、中

間結(jié)果及最終結(jié)果或用來存儲控制程序執(zhí)行的各種參

數(shù),一般隨著程序運行結(jié)束或退出VisualFoxPro

6.0而釋放。

6種類型:字符型、數(shù)值型、邏輯型、日期型、日期

時間型和屏幕型。

同一個內(nèi)存變量可以在不同時間給它賦不同類型

的值,故內(nèi)存變量的類型由所賦數(shù)據(jù)的類型決定,并

以最近一次所賦的值為準(zhǔn)。

19

屏幕型內(nèi)存變量相關(guān)命令:

SAVESCREENTO〈屏幕內(nèi)存變量名〉

來存儲當(dāng)前屏幕上的信息。

RESTORESCREENFROM〈屏幕內(nèi)存變量名〉

從屏幕內(nèi)存變量回復(fù)屏幕信息。

VisualFoxPro6.0最多允許定義1024個

內(nèi)存變量。

20

(2)內(nèi)存變量的賦值命令

格式1STORE表達(dá)式TO內(nèi)存變量名清單

格式2內(nèi)存變量名二表達(dá)式

功能:格式1可以給一組內(nèi)存變量賦相同的值,格式

2

只能給一個內(nèi)存變量賦值。

例如:STORE“VisualFoxPro6.0"Toss

ss=aVisualFoxPro6.0”

STORE100Tox,y,z

內(nèi)存變量的類型和值由所賦數(shù)據(jù)的類型和值決定,

并以最近一次所賦的值為準(zhǔn)。

內(nèi)存變量名與字段變量名同名時,字段變量被優(yōu)

先引用。若要引用內(nèi)存變量,可在內(nèi)存變量名前加前

綴M.,以示區(qū)別。

(3)內(nèi)存變量的主要操作命令

①清除內(nèi)存變量

CLEARMEMORY

RELEASE〈內(nèi)存變量列表》

RELEASEALL[LIKE|EXCEPT〈通配符>]

如釋放以字母“A”開頭的內(nèi)存變量對應(yīng)的命令是:

RELEASEALLLIKEA*

②顯示內(nèi)存變量

DISPLAY|LISTMEMORY[LIKE<通配符>][TO

PRINTER[PROMPT]|T0FILE〈文件名>][NOCONSOLE]

③存儲內(nèi)存變量

SAVETO〈內(nèi)存變量文件名>ITOMEMO〈備注型字段名

>[ALL[LIKE|EXCEPT〈通配符>]]

SAVETOGHIALLEXCEPTX*

22

④恢復(fù)內(nèi)存變量

RESTOREFROM〈內(nèi)存變量文件名>|FROMMEMO〈備注

型字段名>[ADDITIVE]

選用ADDITIVE短語時,變量讀入內(nèi)存時不清除原先

內(nèi)存中已經(jīng)存在的變量。

RESTOREFROMABCADDITIVE

常用到的輸出命令:

?[[?"表達(dá)式>,[<表達(dá)式>]]&&顯示變量的值

?是先換行再輸出。

??是在當(dāng)前光標(biāo)的位置輸出,兩個問號之間不

能有空格。

STORE10TOAl,A2,A3

23

?Al,A2,A3

3.數(shù)組變量

將在2.7節(jié)單獨進(jìn)行介紹

4.字段變量

字段變量是指數(shù)據(jù)表中已定義的任意一個數(shù)據(jù)項。

字段變量必須依附于表,隨著表的打開而自動打開,隨

著表的關(guān)閉而在內(nèi)存中被釋放。

當(dāng)某個數(shù)據(jù)表文件被打開后,系統(tǒng)將產(chǎn)生跟表的字段對

應(yīng)的相同個數(shù)的字段變量,這些字段變量的變量名及類型

與數(shù)據(jù)庫文件的字段名及類型是相同的。

當(dāng)數(shù)據(jù)表文件的記錄指針發(fā)生變化時,字段變量的值也

響應(yīng)地發(fā)生變化。

字段變量可以和內(nèi)存變量一起參加跟類型相符的運算。

內(nèi)存變量名與字段變量名同名時,字段變量被優(yōu)先引用。

若要引用內(nèi)存變量,可在內(nèi)存變量名前加前綴M.,以示區(qū)

別。

5系統(tǒng)變

系統(tǒng)變量可以設(shè)置很多系統(tǒng)的狀態(tài)和特征。

系統(tǒng)變量舉例:

(1)_DIARYDAT

用萊存儲當(dāng)前日期。

(2)_CLIPTEXT

接受文本并送入到剪貼板。該系統(tǒng)變量是可讀可寫的。

(3)_VFP

VFP6.0應(yīng)用程序窗口??梢孕薷腳VFP的相關(guān)屬性。

_VFP.CAPTIONifakhjfa〃

(4)_SCREEN屏幕窗口。

_SCREEN.CAPTION=〃12414〃

_SCREEN.FONTNAME=〃楷體_GB2312〃

_SCREEN.F0NTSIZE=40

_SCREEN.FONTBOLD=.T.

25

?〃華東交通大學(xué)〃

2.5運算符與表達(dá)式

VFP6.0有5類運算符和表達(dá)式。

2.5.1算術(shù)運算符和算術(shù)表達(dá)式

算術(shù)運算符有有取負(fù))、+(加)、-(減)、*(乘)、/

(除)、A或**(乘方)、%(取余)。

算術(shù)規(guī)則:先括號,在同一括號內(nèi),按先取負(fù),再乘

方,再乘和除,再取余,后加減的運算原則。若同

處一個級別則按從左到右的順序計算。

2.5.2字符串運算符和字符串表達(dá)式

3個字符串運算符優(yōu)先級相同。

+(連接):將字符型數(shù)據(jù)連接起來。

-(空格移位連接):兩字符型數(shù)據(jù)連接時,將前一數(shù)據(jù)

尾部的空格移到后面數(shù)據(jù)的尾部。

26

$(包含):測試一個字符串是否在另一個字符串中。

例如:

“abed"+"xyz”

&&連接后的結(jié)果為:"abedxyz?

“ABC”-“DEFG”

&&連接后的結(jié)果為:"ABCDEFG”

“計算機(jī)"$"計算機(jī)軟件”

&&運算結(jié)果為:.T.

在字符串中嵌入引號,只需將字符串用另一種引號

括起來即可。

例如:

?"abc"+'“'&&運算結(jié)果為:abc”

?"abc"+",”&&運算結(jié)果為:abc'

27

2.5.3日期時間運算符和日期時間表達(dá)式

日期型數(shù)據(jù)是一種特殊的數(shù)值型數(shù)據(jù),它們之間只能進(jìn)行加

“+”、減運算。有如下3種情況:

1.兩個日期型數(shù)據(jù)相減,結(jié)果是一個數(shù)值型數(shù)據(jù)(兩個日期相差的

天數(shù))。

例如:「1999/11/19}-「1999/11/26}&&結(jié)果為-7

2.日期型數(shù)據(jù)加上數(shù)值型數(shù)據(jù),結(jié)果仍為日期型。

例如:{1999/11/16}+33

&&結(jié)果為日期型數(shù)據(jù):「1999/12/19}

3.日期型數(shù)據(jù)減掉數(shù)值型數(shù)據(jù),結(jié)果仍為日期型。

例如:「1999/12/19}-33

&&結(jié)果為日期型數(shù)據(jù):「1999/11/16}

日期時間運算符中(+)運算是把已給的日期時間再加多少秒,

(-)運算是計算已給的兩個日期時間相差多少秒。

28

2.5.4關(guān)系運算符和關(guān)系表達(dá)式

VFP6.0提供了7種關(guān)系運算符,分別是:

<><=>>、>=>=>?或#或!二(不等于)、==(等

同于)

1.關(guān)系運算符的優(yōu)先級相同,按從左到右的順序依

次進(jìn)行,運算的結(jié)果為邏輯型常量。

2.字符型數(shù)據(jù)應(yīng)按其ASCH碼的值依次進(jìn)行比較。

3.“二=”表示“等同于",用于精確匹配。

4.關(guān)系運算符兩邊的表達(dá)式只能是數(shù)值型、字符串

型、日期時間型,不能是邏輯型的表達(dá)式或值。

5.設(shè)置系統(tǒng)環(huán)境的命令SETEXACT對“二”運算結(jié)果

有影響。

29

SETEXACTOFF

?,,abc”=,,abcd"&&.F.

?"abc”="abc”&&.T.

?,,abc,,=,,ab”&&.T.

?,,abc,,=,,aH&&T.

?,,abc,,=m,&&.T.

SETEXACTON

?"abc”="abcd"&&.F.

?、bc”="abc"&&.T.

?,,abc,,=,,abM&&.F.

?,,abc,,=,,aH&&,F.

30

?,,abc,,=,,H&&.F.

2.5.5邏輯運算符和邏輯表達(dá)式

VisualFoxPro6.0提供的邏輯運算符有3種:

.NOT.、.AND?、?OR?

運算規(guī)則:先括號,再NOT,再AND,后OR。

在早期的版本中,邏輯運算符的兩邊必須使用

點號,在VisualFoxPro6.0中,兩者可以通用。

但邏輯值.T.和.F.兩邊的點號不能省略。

31

2.5.6名表達(dá)式

VisualFoxPro允許給命令和函數(shù)定義一個名字,將這

一名字存入到內(nèi)存變量和數(shù)組元素中。

存于內(nèi)存變量和數(shù)組元素中的命令和函數(shù)名,用戶可

以通過間接引用和宏替換這兩種方法來使用它們。

間接引用:

STORE"e:\student.dbf"Toaa

USE(aa)

LIST

STRORE〃職稱〃TOx

REPLACE(x)WITH“副教授”

宏替換:

STORE〃?3-2〃Toyy

?&yyx="Fox"

?”Visual&x,Pro6.0”

32

2.5.7運算符的優(yōu)先順序

優(yōu)先級運算符類型運算符

1-(取負(fù))

2A(乘方運算)

算術(shù)運算符

3、/、%(乘法、除法和取模)

4A+、-(加法和減法)

5C子符總算符+、-(子將甲連接)

6關(guān)系運算符V、<=>>、>=、=><>>==

//口斗Zqz-tn1=1\

(優(yōu)先級相|可)

7NOT

8AANKiDr\

謖轉(zhuǎn)送道符

9OR

若x=4,y=-3,a=6.5,b=-7.2,求表達(dá)式的值:

x+y>a+bANDNOTy<b

解:

①先作算術(shù)運算1>-0.7ANDNOTy<b

②再作關(guān)系運算.T.ANDNOT.F.

③再作邏輯非運算.T.AND.T.

④最后得.T.

34

2.6函數(shù)

2.6.1函數(shù)的分類

分兩類:系統(tǒng)函數(shù)和用戶自定義函數(shù)。

系統(tǒng)函數(shù)大約有380多個,主要分為:數(shù)值函數(shù)、

字符處理函數(shù)等14種。

2.6.2函數(shù)的類型

函數(shù)的一般形式為:

函數(shù)名([參數(shù)1][,參數(shù)2]…)

函數(shù)的類型就是函數(shù)值的類型。

TYPE函數(shù)能返回表達(dá)式的類型,也能測出函數(shù)的類

型。例如:

?type("date。")&&顯示D,日期型

x=21

?Type("x")&&顯示N,表明變量x是數(shù)值型變

2.6.3常用函數(shù)

1.數(shù)學(xué)函數(shù)

ABS(表達(dá)式)INT(表達(dá)式)

EXP(表達(dá)式)LOG(表達(dá)式)

RAND(表達(dá)式)

SQRT(表達(dá)式)

SIGN(表達(dá)式)PK)

MOD(表達(dá)式1,表達(dá)式2)

ROUND(表達(dá)式1,表達(dá)式2)

MAX(表達(dá)式1,表達(dá)式2,…)

MIN(表達(dá)式1,表達(dá)式2,…)

SIN(表達(dá)式)

對于RAND(表達(dá)式):

(1)要得到[A,B)的隨機(jī)數(shù)(假設(shè)A>B),可使用公式:

(B-A)*RAND()+A

(2)要得到[A,B]的隨機(jī)整數(shù)(假設(shè)A>B),可使用公式

INT((B-A+1)*RAND()+A)INT(RAND()*10+1)

對于MOD(表達(dá)式1,表達(dá)式2)函數(shù),要注意:

(1)表達(dá)式2的值不能為0,否則將出現(xiàn)“不能被0除”

的錯誤提示。

(2)余數(shù)的小數(shù)位數(shù)與表達(dá)式1相同,符號與表達(dá)式2相

同。如:

?M0D(15,4),MOD(15,-4)&&結(jié)果為:3-1

?M0D(-15,4),MOD(-15,-4)&&結(jié)果為:1-3

?MOD(5.35,2),MOD(5.35,-2)&&結(jié)果為:1.35-0.65

37

(3)如果被除數(shù)與除數(shù)同號,那么函數(shù)值即為兩數(shù)相

除的余數(shù);如果被除數(shù)與除數(shù)異號,則函數(shù)值為兩數(shù)

相除的余數(shù)再加上除數(shù)的值。

?MOD(5,3)&&結(jié)果為:2

?MOD(5,-3)&&結(jié)果為:-1

?MOD(-5,-3)&&結(jié)果為:-

2?MOD(-5,3)

&&結(jié)果為:1

?M0D(5.25,3.33333)&&結(jié)果為:1.92

對于ROUND(表達(dá)式1,表達(dá)式2)函數(shù),表達(dá)式2的值

可以為負(fù)數(shù)。如:

7R0UND(456.6789,2)

&&結(jié)果為:456.68?ROUND(456.6789,0)

&&結(jié)果為:457

?ROUND(456.6789,-1)

&&結(jié)果為:460

?R0UND(456.6789,-2)

&&結(jié)果為:500

38

2.字符串函數(shù)

ASC(字符表達(dá)式)LEN(字符表達(dá)式)

LEFT(字符表達(dá)式,N)RIGHT(字符表達(dá)式,N)

SUBSTR(字符表達(dá)式,N[,M])

UPPER(字符表達(dá)式)LOWER(字符表達(dá)式)

LTRIM(字符表達(dá)式)RTRIM(字符表達(dá)式)

TRIM(字符表達(dá)式)ALLTRIM(字符表達(dá)式)

SPACE(N)

AT(字符表達(dá)式1,字符表達(dá)式2,N)

39

對于函數(shù)LEN(字符表達(dá)式):

若字符表達(dá)式包含漢字、特殊字符、全角符號,長

度都算2;英文字母、阿拉伯?dāng)?shù)字、半角符號等都算1。

如:

?LEN(〃?")

&&半角標(biāo)點符號,結(jié)果為:1?LEN(〃?〃)

&&全角標(biāo)點符號,結(jié)果為:2

?LEN(“中文”)&&漢字,結(jié)果為:4

?LEN(〃ab")

&&半角英文,結(jié)果為:2?LEN(“ab”)

&&全角英文,結(jié)果為:4

?LEN(*)

&&特殊字符,結(jié)果為:2?LEN(〃123〃)

&&半角數(shù)字,結(jié)果為:3

?LEN(〃123〃)

&&全角數(shù)字,結(jié)果為:6

40

3.轉(zhuǎn)換函數(shù)

CHR(數(shù)值表達(dá)式)

VAL(數(shù)字字符串)STR(數(shù)值表達(dá)式[,N[,M]))

CTOD(字符表達(dá)式)CTOT(字符表達(dá)式)

DTOC(日期表達(dá)式)DTOS(日期表達(dá)式)

TTOC(日期時間表達(dá)式)

41

STR函數(shù):

在計算字符串長度時,小數(shù)點要計算1位,若是負(fù)數(shù)轉(zhuǎn)換,

負(fù)號也要算1位。如轉(zhuǎn)換后的字符串若要顯示3位整數(shù)、2位小數(shù),

且為負(fù)數(shù),則要完整地顯示需要的信息,第二個參數(shù)應(yīng)該大于或

等于7。

?STR(1234567890123)

?STR(-123456.789)

?STR(-123456.789,12)

?STR(-123456.789,12,2)

1.234E+12(前面有1個空格,字符串長度為10)

-123457(前面有3個空格,字符串長度為10)

-123457(前面有5個空格,字符串長度為12)

42

-123456.79(前面有2個空格,字符串長度為12)

4.日期函數(shù)

DATE()TIME()

DATETIME()DOW(表達(dá)式)

YEAR(表達(dá)式)MONTH(表達(dá)式)

DAY(表達(dá)式)HOUR(表達(dá)式)

MINUTE(表達(dá)式)SEC(表達(dá)式)

43

5.測試函數(shù)

FILEQv字符表達(dá)式>])

EOF([工作區(qū)號|表的別名])

BOF([工作區(qū)號|表的別名])

FOUND([工作區(qū)號|表的別名])

RECNO([工作區(qū)號|表的別名])

RECCOUNT([工作區(qū)號|表的另U名])

DBFQ工作區(qū)號])

ROW()COL()

PROWQPCOL()

TYPE(“v表達(dá)式>”)

44

(1)有不少測試函數(shù)都跟表有關(guān),通常不能直接應(yīng)

用,要結(jié)合表的操作來應(yīng)用。

(2)TYPE函數(shù)的返回值以測試的表達(dá)式的類型對應(yīng),

N、C、D、T、L對應(yīng)的類型分別是數(shù)值型、字符型、

日期型、日期時間型、邏輯型。還要注意,雙引號是

參數(shù)本身的要求,不能將其算做測試對象的一部分。

?TYPE(“「2004/5/08}”)

D

?TYPE(〃「2004/5/089:9:9}")

T

?TYPE(〃2+3〃)

?TYPE(〃‘KK'")N

?TYPE(〃.T.〃)

C

in

6.其他函數(shù)

(1)條件函數(shù)HF

HF(條件表達(dá)式,值1,值2)

功能:若條件表達(dá)式的值為.T.,則返回值1,否則返回

值2。

?HF(3<4,100,99)結(jié)果是100

(2)消息對話框函數(shù)

MESSAGEBOX(提示[,按鈕類型[,標(biāo)題]])

功能:以對話框的形式顯示信息,并返回所單擊的按鈕

值,返回值為-7的整數(shù)。

46

X=MESSAGEBOX(〃程序出錯,請選擇!”,2+48+256,〃錯誤

提示!")

若單擊“重試按鈕”或按[Enter]鍵,再運行命令?x

,將顯示2。

47

2.7數(shù)組

2.7.1數(shù)組的概念

數(shù)組是一種特殊的內(nèi)存變量,它是用一個統(tǒng)

一的名稱表示的、由一系列數(shù)據(jù)值組成的有序

列。每一個數(shù)據(jù)稱為一個元素,可以用數(shù)組名

及下標(biāo)來唯一地標(biāo)識一個數(shù)組元素,因此數(shù)組

元素又稱下標(biāo)變量。

在VFP6.0中,只允許定義一維數(shù)組或二維數(shù)

組。

若定義了一個二維數(shù)組N(4,5),則該二維

數(shù)組共有4X5=20個元素,表示了一個4行5列的

表格。

48

使用數(shù)組時要注意以下幾點:

1.數(shù)組的命名規(guī)則與簡單變量的命名規(guī)則相同。

2.下標(biāo)必須用括號括起來,不能把B(3)寫成B3,B3是

一個簡單變量。

3.下標(biāo)可以是常量、變量或表達(dá)式,還可以是數(shù)組元

素。如E(F(3)),若F⑶=9,則E(F(3))就是E(9)。

4.下標(biāo)若不為整數(shù),則會被自動取整(舍去小數(shù)部分)

o如B(4.9)將被視為B(4)。

5.數(shù)組元素的下標(biāo)從1開始。

49

2.7.2數(shù)組的定義

數(shù)組必須遵循先定義后使用的原則。

定義數(shù)組的語法格式如下:

DIMENSION|DECLARE<數(shù)組名1>(<數(shù)字表達(dá)式1>[,<

數(shù)字表達(dá)式2>])[,<數(shù)組名2>(<數(shù)字表達(dá)式3>[,<

數(shù)字表達(dá)式4>])……]

說明:

LDIMENSION和DECLARE可以選擇其中一個來定義,二者等價。

2.在一條語句中,可以同時定義一維數(shù)組和二維數(shù)組。不管是

一維數(shù)組還是二維數(shù)組,都是內(nèi)存變量。

3.定義數(shù)組時,可以使用方括號代替圓括號,即DeclareA(3)

和Declarea[3]是等價的,都是合法的命令。

4.在VFP6.0中,同一數(shù)組可以存放不同類型的數(shù)據(jù),因此,數(shù)

組定義時不必指定數(shù)組的類型。

5.執(zhí)行該命令后,所建立的數(shù)組中的所有元素系統(tǒng)都將初始化

為邏輯值“.F.”,但是其值隨著以后賦給數(shù)組元素的數(shù)據(jù)的類

型的變化而變化。

50

程序示例:

Settalkoff&&關(guān)閉人機(jī)對話

Clear&&清除屏幕上顯示的內(nèi)容

Clearmemory&&清除所有的內(nèi)存變量

Dimensionm(3,4),n(4)&&定義了一個二維數(shù)組M和一個一維數(shù)組N

M(2,3)=123&&把整數(shù)123賦值給數(shù)組元素m(2,3)

?M(2,3)&&在屏幕上顯示123

m(2,3)="abc”&&把字符常量"abc”賦值給數(shù)組元素

m(2,3)

?M(2,3)&&在屏幕上顯示“abc”

?N(2)&&在屏幕上顯示數(shù)組元素n(2)的值,顯示為,F.

Displaymemory&&查看內(nèi)存變量的值

Cancel&&程序終止運行,并返回到命令窗口

51

運行結(jié)果:一個數(shù)組只用一個內(nèi)存變量。

123

abu

.F.

MFirivA程序1

(1,1)L.F.

(

溫馨提示

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

評論

0/150

提交評論