其它考試第2章-Visual-FoxPro數(shù)據(jù)基礎(chǔ)_第1頁(yè)
其它考試第2章-Visual-FoxPro數(shù)據(jù)基礎(chǔ)_第2頁(yè)
其它考試第2章-Visual-FoxPro數(shù)據(jù)基礎(chǔ)_第3頁(yè)
其它考試第2章-Visual-FoxPro數(shù)據(jù)基礎(chǔ)_第4頁(yè)
其它考試第2章-Visual-FoxPro數(shù)據(jù)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本章內(nèi)容簡(jiǎn)介

VisualFoxPro作為一種基于關(guān)系模型的程序設(shè)計(jì)語(yǔ)言,具有完整的語(yǔ)法規(guī)則。本章主要介紹VisualFoxPro基本的語(yǔ)言元素,包括變量(內(nèi)存變量和字段變量)、常量、函數(shù)及表達(dá)式和表達(dá)式的運(yùn)算規(guī)則等。

學(xué)習(xí)目標(biāo)

利用VisualFoxPro進(jìn)行數(shù)據(jù)管理,除使用數(shù)據(jù)庫(kù)外,還必須學(xué)會(huì)編寫程序,要編寫程序就要會(huì)寫語(yǔ)句,要會(huì)寫語(yǔ)句就要掌握組成語(yǔ)句的基本元素。

學(xué)習(xí)切入點(diǎn)及方法

本章是編寫程序和寫表達(dá)式的基礎(chǔ),涉及的內(nèi)容多而瑣碎。學(xué)習(xí)時(shí),應(yīng)充分利用交互工具——“命令”窗口,通過(guò)看書與操作結(jié)合的方式學(xué)習(xí),不必死記硬背。很多函數(shù)的功能、命令及表達(dá)式,可以通過(guò)在命令窗口操作來(lái)理解和加深記憶,從而靈活運(yùn)用。

計(jì)劃用學(xué)時(shí)

課堂講授6~8學(xué)時(shí),上機(jī)6~8學(xué)時(shí)。

1/11/20251第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)2.1常量、變量及其數(shù)據(jù)類型2.2

常用函數(shù)2.3

表達(dá)式與運(yùn)算1/11/20252第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

常量:是指程序運(yùn)行過(guò)程中其值保持不變的量(一個(gè)具體的、不變的值。)

1.?dāng)?shù)值型常量(Numeric)

數(shù)值型數(shù)據(jù):由數(shù)字、小數(shù)點(diǎn)和正負(fù)號(hào)等組成,包括整數(shù)、小數(shù)、負(fù)數(shù)、浮點(diǎn)數(shù)、科學(xué)計(jì)數(shù)法表示的數(shù)等。

數(shù)值型數(shù)據(jù)用來(lái)進(jìn)行數(shù)學(xué)運(yùn)算。

如:140、0.33、-213、147.179、2E-8等。2.1常量、變量及其數(shù)據(jù)類型2.1.1常量1/11/20253第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

2.字符型常量(Character)

字符型數(shù)據(jù)也稱為字符串。通常用來(lái)表示文本類型的信息,它由中英文字符、漢字、數(shù)字、空格和各種專用符號(hào)組成。

字符型常量:是指用雙引號(hào)“”、單引號(hào)‘’或方括號(hào)[]等定界符括起來(lái)的字符串。定界符必須配對(duì)使用。如:“kunming”、‘昆明市’、[1234]。

如果一種定界符已作為字符型常量的組成部分,應(yīng)當(dāng)選擇另一種定界符來(lái)標(biāo)識(shí)字符串。例如字符串:

[昆明又稱為“春城”]2.1常量、變量及其數(shù)據(jù)類型2.1.1常量1/11/20254第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

3.邏輯型數(shù)據(jù)(Logic)

邏輯型數(shù)據(jù):表示邏輯判斷結(jié)果的值。

邏輯型數(shù)據(jù)只有兩個(gè)值:True(真)False(假)

邏輯真可以表示為.T.、.t.、.Y.或.y.

邏輯假可以表示為.F.、.f.、.N.或.n.

(注意:前后兩個(gè)點(diǎn)號(hào)是必需的。)

在“命令”窗口輸入?命令及表達(dá)式:?15>34,477>230&&在主窗口中顯示運(yùn)算結(jié)果運(yùn)算結(jié)果為:.F..T.

2.1常量、變量及其數(shù)據(jù)類型2.1.1常量1/11/20255第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)4.日期型(Date)

日期型數(shù)據(jù):表示日期的特殊數(shù)據(jù)。日期型常量必須用花括號(hào)括起來(lái)。

(1)嚴(yán)格日期格式

格式為:{^yyyy-mm-dd}

如:{^2009-05-01}或{^2009/05/01},表示2009年5月1日。這種格式的日期表明該日期是嚴(yán)格的,按照YMD的格式來(lái)解釋日期和日期時(shí)間,不受系統(tǒng)設(shè)置的影響,可以在任何情況下使用。

日期型數(shù)據(jù)表示范圍是:{^0001-01-01}至{^9999-12-31}

(2)傳統(tǒng)的日期格式系統(tǒng)默認(rèn)的日期型數(shù)據(jù)為美國(guó)日期格式:

“mm/dd/yy”(月/日/年)

月和日各為2位,而年可以是2位,也可以是4位,系統(tǒng)默認(rèn)為2位。具體年代使用2位還是4位,由系統(tǒng)設(shè)置決定。2.1常量、變量及其數(shù)據(jù)類型2.1.1常量1/11/20256第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)(3)影響日期格式的設(shè)置命令和選項(xiàng)

①在日期格式中,系統(tǒng)默認(rèn)的分隔符為:斜杠(/)。SETMARKTO[日期分隔符]:可將分隔符設(shè)置成連字符(-)或點(diǎn)號(hào)(.)等。沒(méi)有參數(shù)的SETMARKTO命令還原系統(tǒng)默認(rèn)的分隔符。

②SETDATETO[日期格式]:可將日期格式設(shè)置成其他格式。

如:SETDATETO

mdy命令將日期格式設(shè)置為月/日/年(mm/dd/yy)。

③SETSTRICTDATETO[0|1|2]:設(shè)置是否對(duì)日期格式進(jìn)行檢查。

在不進(jìn)行嚴(yán)格日期檢查時(shí),日期型可以用傳統(tǒng)日期格式“年

/月/日”的形式來(lái)表示,定界符可以是花括號(hào),年月日之間的分隔符可以是斜杠(/)、連字符(-)和空格。

④SETCENTURYON/OFF:設(shè)置年份使用4位或2位表示,默認(rèn)為2位。2.1常量、變量及其數(shù)據(jù)類型2.1.1常量1/11/20257第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)日期格式的設(shè)置也可以選擇“工具”菜單中的“選項(xiàng)”命令來(lái)完成。在“區(qū)域”選項(xiàng)卡中設(shè)置日期格式1/11/20258第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)5.日期時(shí)間型(DateTime)

日期型常量包括日期和時(shí)間兩部分:{<日期>,<時(shí)間>}

日期部分與日期型常量相似,也有嚴(yán)格和傳統(tǒng)兩種格式。

時(shí)間部分的格式為:[hh[:mm[:ss]][a|p]]。其中hh、mm和ss分別代表時(shí)、分和秒,默認(rèn)值分別為12、0和0。AM

(或A)和PM(或P)分別代表上午和下午,默認(rèn)值為AM。如果指定的時(shí)間大于12,則自然為下午時(shí)間。6.貨幣型(Currency)

貨幣型常量:用于表示貨幣值,是帶貨幣單位的數(shù)據(jù)。

其書寫格式與數(shù)值型常量類似,但要在前面加上貨幣符號(hào)$。如:

$123.45。在存儲(chǔ)和計(jì)算時(shí),采用4位小數(shù),如果一個(gè)貨幣常量多于4位小數(shù),那么系統(tǒng)將在小數(shù)點(diǎn)后4位進(jìn)行四舍五入。2.1常量、變量及其數(shù)據(jù)類型2.1.1常量1/11/20259第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

變量:在程序運(yùn)行過(guò)程中,其值可以發(fā)生變化的量稱為變量。

VisualFoxPro中有兩類變量:

每個(gè)變量都有一個(gè)名字,可以通過(guò)變量名訪問(wèn)變量。給變量命名時(shí),變量名必須遵守以下原則:

1、必須以字母或漢字開(kāi)頭。

2、變量名中只能含有字母(漢字)、數(shù)字和下劃線。

3、變量名不能是保留字,如對(duì)象名、系統(tǒng)預(yù)先定義的函數(shù)名等。構(gòu)成數(shù)據(jù)庫(kù)表文件的字段變量?jī)?nèi)存變量2.1常量、變量及其數(shù)據(jù)類型2.1.2字段變量和內(nèi)存變量1/11/202510第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

2.1.2.1字段變量字段變量:表中定義好的任一數(shù)據(jù)列,通過(guò)字段名作為變量名來(lái)標(biāo)識(shí)字段變量。學(xué)號(hào)姓名性別出生日期專業(yè)入學(xué)成績(jī)?nèi)蒙?0090102001劉鵬男1991-10-7傳媒學(xué)610.F.20090102002楊瑩女1991-11-20傳媒學(xué)598.T.20090201001何小方男1990-3-13管理學(xué)567.F.20090203001周紅女1991-2-11管理學(xué)655.F.20090201003李艷女1991-1-21管理學(xué)587.T.20090102369張麗女1991-12-11傳媒學(xué)639.F.20090301087馬波男1991-12-29歷史590.F.如果表中有20條記錄,每一個(gè)字段名就有20個(gè)可取值。在數(shù)據(jù)庫(kù)表中有一個(gè)記錄指針,它指向的記錄定義為當(dāng)前記錄,字段變量的現(xiàn)值就是當(dāng)前記錄中對(duì)應(yīng)字段的值。記錄指針可以移動(dòng),因此字段的取值隨著指針的移動(dòng)而改變,所以字段(或者字段名)是變量。2.1常量、變量及其數(shù)據(jù)類型2.1.2字段變量和內(nèi)存變量1/11/202511第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)數(shù)據(jù)類型說(shuō)明字符型字母、數(shù)字型文本貨幣型貨幣單位數(shù)值型整數(shù)或小數(shù)浮動(dòng)型整數(shù)或小數(shù)日期型年、月、日日期時(shí)間型年、月、日、時(shí)、分、秒雙精度型雙精度數(shù)值整型正、負(fù)整數(shù)和零邏輯型真或假備注型不定長(zhǎng)的字母、數(shù)字文本通用型OLE(對(duì)象鏈接與嵌入)字符型(二進(jìn)制)字母數(shù)字型文本備注型(二進(jìn)制)不定長(zhǎng)的字母數(shù)字型文本字段變量的數(shù)據(jù)類型及其說(shuō)明1/11/202512第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

2.1.2.2內(nèi)存變量?jī)?nèi)存變量:內(nèi)存中的一塊存儲(chǔ)區(qū)域,變量值就是存放在這個(gè)存儲(chǔ)區(qū)域里的數(shù)據(jù),變量的類型取決于變量值的類型。對(duì)內(nèi)存變量賦值可以改變其內(nèi)容和類型。

例如,當(dāng)把一個(gè)數(shù)值常量賦值給一個(gè)變量時(shí),這個(gè)常量就被存入到變量中,它將取代變量的原值而成為該變量新的取值。

特點(diǎn):是獨(dú)立于數(shù)據(jù)庫(kù)文件而存在的變量,用來(lái)存儲(chǔ)數(shù)據(jù)處理過(guò)程中所需要的常數(shù)、中間結(jié)果和最終結(jié)果。還可以作為控制變量,用來(lái)控制應(yīng)用程序的運(yùn)行。內(nèi)存變量6種類型:字符型(C)、數(shù)值型(N)、邏輯型(L)、日期型(D)、日期時(shí)間型(T)和貨幣型(Y)。

內(nèi)存變量由賦值語(yǔ)句定義,它的數(shù)據(jù)類型由賦值數(shù)據(jù)的類型決定。2.1常量、變量及其數(shù)據(jù)類型2.1.2字段變量和內(nèi)存變量1/11/202513第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)字段變量和內(nèi)存變量的區(qū)別字段變量?jī)?nèi)存變量數(shù)據(jù)庫(kù)表文件的組成部分獨(dú)立于數(shù)據(jù)庫(kù)文件而存在隨表文件的定義而建立需要時(shí)隨時(shí)定義有C、N、D、L、M、G等類型有C、N、D、L、Y、T等類型多值變量單值變量關(guān)機(jī)后保存在數(shù)據(jù)庫(kù)表文件中關(guān)機(jī)后不保存,但可存入內(nèi)存變量文件

如果在表中存在一個(gè)與內(nèi)存變量同名的字段變量,則字段變量?jī)?yōu)先。

如果要訪問(wèn)內(nèi)存變量,則須在變量名前加上前綴M.或者M(jìn)->,否則系統(tǒng)將訪問(wèn)同名的字段變量。

1/11/202514第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)2.1.2.2內(nèi)存變量

1、內(nèi)存變量賦值命令

給內(nèi)存變量賦值命令有“=”、STORE等。

使用“=”給變量賦值時(shí),一次只能給一個(gè)變量賦值,而STORE

命令可以同時(shí)給多個(gè)變量賦相同的值,各內(nèi)存變量名之間用逗號(hào)分開(kāi)。

2、表達(dá)式值的顯示命令

?和??命令可以在VisualFoxPro的主窗口中顯示表達(dá)式的值。

?命令與??命令的作用相同,它們的區(qū)別是:

?命令從光標(biāo)當(dāng)前行的下一行開(kāi)始顯示,即換行輸出;??命令在當(dāng)前光標(biāo)位置開(kāi)始顯示,即同行輸出,??命令緊接上一個(gè)顯示位置輸出表達(dá)式的值。當(dāng)?命令后面沒(méi)有任何表達(dá)式時(shí),輸出一個(gè)空行。?命令與??命令的各個(gè)輸出項(xiàng)之間用逗號(hào)(,)分隔。2.1常量、變量及其數(shù)據(jù)類型2.1.2字段變量和內(nèi)存變量1/11/202515第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

3、內(nèi)存變量顯示命令格式:LISTMEMORY[LIKE<通配符>][TOPRINT|TOFILE<文件名>]

或:DISPLAYMEMORY[LIKE<通配符>][TOPRINT|TOFILE<文件名>]

4、內(nèi)存變量的清除格式:CLEARMEMORY

或:RELEASE<內(nèi)存變量名表>

或:RELEASEALL[LIKE<通配符>|EXCEPT<通配符>]

第一種格式清除所有內(nèi)存變量,其余格式清除指定的內(nèi)存變量。RELEASEALLLIKEX*表示只清除變量名以X開(kāi)頭的所有內(nèi)存變量。RELEASEALLEXCEPTX*表示清除除了以X開(kāi)頭的變量以外的所有內(nèi)存變量,(保留以X開(kāi)頭的所有內(nèi)存變量)。2.1常量、變量及其數(shù)據(jù)類型2.1.2字段變量和內(nèi)存變量1/11/202516第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

2.1.2.3數(shù)組數(shù)組:是一批數(shù)據(jù)的有序集合,數(shù)組中的每一個(gè)數(shù)據(jù)稱為一個(gè)數(shù)組元素。每一個(gè)數(shù)組元素相當(dāng)于一個(gè)內(nèi)存變量與數(shù)組相比,內(nèi)存變量又稱為簡(jiǎn)單變量。與簡(jiǎn)單內(nèi)存變量不同,數(shù)組必須先定義后使用。

1、數(shù)組的定義

格式:DECLARE<數(shù)組名>(<下標(biāo)1>[,<下標(biāo)2>])[,<數(shù)組名>(<下標(biāo)1>[,<下標(biāo)2>])…]

或:DIMENSION<數(shù)組名>(<下標(biāo)1>[,<下標(biāo)2>])[,<數(shù)組名>(<下標(biāo)1>[,<下標(biāo)2>])…]

兩種格式功能相同。定義時(shí)將規(guī)定數(shù)組是一維或二維數(shù)組,數(shù)組名和大小。大小由下標(biāo)值的上、下限決定,下限規(guī)定為1。每個(gè)數(shù)組最多可以包含3600個(gè)元素。數(shù)組創(chuàng)建后,在賦值前,系統(tǒng)自動(dòng)給每個(gè)數(shù)組元素賦值為邏輯假(.F.)。

整個(gè)數(shù)組的數(shù)據(jù)類型為A(Array),使用時(shí)可以給各個(gè)元素分別賦值,一個(gè)數(shù)組中各元素的數(shù)據(jù)類型可以不同,數(shù)組元素可以是任意類型的數(shù)據(jù),其數(shù)據(jù)類型由對(duì)該變量的賦值決定。

2.1常量、變量及其數(shù)據(jù)類型2.1.2字段變量和內(nèi)存變量1/11/202517第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)2、數(shù)組的使用

數(shù)組定義后,數(shù)組中每個(gè)元素就可以像內(nèi)存變量一樣使用。數(shù)組元素賦值與內(nèi)存變量賦值一樣,可用STORE命令賦初值。

格式:STORE<表達(dá)式>TO<數(shù)組名><數(shù)組名>=<表達(dá)式>

功能:給數(shù)組中每個(gè)數(shù)組元素賦以相同的值。

在使用數(shù)組時(shí)應(yīng)注意:(1)在同一運(yùn)行環(huán)境,數(shù)組名不能與簡(jiǎn)單變量名相同。(2)可以用一維數(shù)組的形式訪問(wèn)二維數(shù)組。例如,dimensiony(2,3)定義的數(shù)組中的元素y(1,1),y(1,2),y(1,3),y(2,1),y(2,2),y(2,3)用一維數(shù)組形式可以依次表示為:y(1)、y(2)、y(3)、y(4)、y(5)、y(6)。其中y(4)與y(2,1)是同一變量。2.1常量、變量及其數(shù)據(jù)類型2.1.2字段變量和內(nèi)存變量1/11/202518第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

2.1.2.4用字段變量給數(shù)組賦值格式:SCATTER[FIELDS<字段名表>]TO<數(shù)組名>

功能:將當(dāng)前表文件的當(dāng)前記錄各字段值賦給數(shù)組各元素。

如果無(wú)FIELDS<字段名表>選項(xiàng),則按記錄中字段的先后順序傳送所有字段(備注字段和通用字段除外),否則按<字段名表>指定字段順序傳送。字段的類型決定了數(shù)組變量的類型。如果數(shù)組元素個(gè)數(shù)多于傳送字段數(shù),則剩余的數(shù)組元素值不變,否則系統(tǒng)將自動(dòng)增加數(shù)組元素個(gè)數(shù)。

例如:打開(kāi)“基本信息”表文件,當(dāng)前記錄為第一條記錄,將它復(fù)制到數(shù)組RS中。2.1常量、變量及其數(shù)據(jù)類型2.1.2字段變量和內(nèi)存變量1/11/202519第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

2.1.2.5用數(shù)組數(shù)據(jù)替換當(dāng)前記錄的字段值格式:GATHERFROM<數(shù)組名>[FIELDS<字段名表>]

功能:用數(shù)組元素的值順序替換當(dāng)前表文件的當(dāng)前記錄各字段的值。

若無(wú)FIELDS<字段名表>選項(xiàng),則按數(shù)組元素的順序從左到右地填入當(dāng)前記錄的每一個(gè)字段中(備注字段和通用字段除外),否則按<字段名表>指定字段填入。

若數(shù)組元素個(gè)數(shù)少于字段數(shù),則當(dāng)前記錄中其余的字段值不受影響;反之剩余的數(shù)組元素不替換。例如,打開(kāi)表文件,定義數(shù)組,用數(shù)組中的值填入表中。2.1常量、變量及其數(shù)據(jù)類型2.1.2字段變量和內(nèi)存變量1/11/202520第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

函數(shù):是用來(lái)實(shí)現(xiàn)一種數(shù)據(jù)運(yùn)算或轉(zhuǎn)換的一段程序。每個(gè)函數(shù)都有特定的運(yùn)算功能或轉(zhuǎn)換功能。

函數(shù)按功能分為:數(shù)值運(yùn)算函數(shù)、字符處理函數(shù)、日期函數(shù)、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)、測(cè)試函數(shù)等。

與數(shù)學(xué)函數(shù)一樣,自變量稱為參數(shù),對(duì)于合法的參數(shù),函數(shù)必有一個(gè)運(yùn)算結(jié)果,稱為函數(shù)值或返回值。

函數(shù)的一般形式是:<函數(shù)名>(參數(shù)表)

在使用函數(shù)時(shí)應(yīng)注意以下幾個(gè)問(wèn)題:

(1)所有函數(shù)名必須跟隨有圓括號(hào),無(wú)論函數(shù)是否需要參數(shù)(宏代換函數(shù)&除外)。

(2)每個(gè)函數(shù)必然有一個(gè)返回值,返回值有確定的數(shù)據(jù)類型。函數(shù)可作為表達(dá)式的組成部分,在組成表達(dá)式時(shí),需特別注意類型的匹配。

(3)傳送給函數(shù)的參數(shù)也有一定的數(shù)據(jù)類型,必須按要求的數(shù)據(jù)類型傳送參數(shù)值。

2.2常用函數(shù)1/11/202521第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)數(shù)值函數(shù):通常是指函數(shù)的返回值為數(shù)值的一類函數(shù)。

1.取絕對(duì)值函數(shù)ABS()

格式:ABS(<數(shù)值表達(dá)式>)

功能:求出<數(shù)值型表達(dá)式>的絕對(duì)值。

例:?ABS(-56),ABS(70-80)5610

2.符號(hào)函數(shù)SIGN()

格式:SIGN(<數(shù)值表達(dá)式>)

功能:返回?cái)?shù)值表達(dá)式的符號(hào),當(dāng)數(shù)值表達(dá)式的運(yùn)算結(jié)果為正、負(fù)和零時(shí),函數(shù)值分別為1、-1和0。

例:STORE77TOX?SIGN(60-X),SIGN(90-X)-112.2常用函數(shù)2.2.1數(shù)值函數(shù)1/11/202522第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)3.取整函數(shù)INT()

格式:INT(<數(shù)值表達(dá)式>)

功能:返回<數(shù)值表達(dá)式>值的整數(shù)部分。

例:?INT(40.5),INT(-40.5)40-404.最大值函數(shù)MAX()

格式:MAX(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)

功能:求兩個(gè)<數(shù)值表達(dá)式>的最大值。兩個(gè)<日期表達(dá)式>中的較近日期。

例:?MAX(778.8,190.5),MAX(-35,-67)778.8-35.005.最小值函數(shù)MIN()

格式:MIN(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)

功能:求兩個(gè)<數(shù)值表達(dá)式>中最小值。兩個(gè)<日期表達(dá)式>中的較遠(yuǎn)日期。

2.2常用函數(shù)2.2.1數(shù)值函數(shù)1/11/202523第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)6.求平方根函數(shù)SQRT()

格式:SQRT(<數(shù)值表達(dá)式>)

功能:返回指定表達(dá)式的平方根。自變量表達(dá)式的值不能為負(fù)。

例:?SQRT(67),SQRT(9),SQRT(7-5)8.193.001.417.四舍五入函數(shù)ROUND()

格式:ROUND(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)

功能:返回指定表達(dá)式在指定位置四舍五入后的結(jié)果。

<數(shù)值表達(dá)式2>指明四舍五入的位置。若<數(shù)值表達(dá)式2>大于或等于0,表示要保留的小數(shù)位數(shù);若<數(shù)值表達(dá)式2>小于0,表示的是對(duì)整數(shù)部分進(jìn)行四舍五入。

例:

?ROUND(56.785,2),ROUND(1.455,0),ROUND(56,-1),ROUND(-3.141,2)56.79160-3.142.2常用函數(shù)2.2.1數(shù)值函數(shù)1/11/202524第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)8.求余數(shù)函數(shù)MOD()

格式:MOD(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)

功能:返回兩個(gè)數(shù)值相除后的余數(shù)值。

<數(shù)值表達(dá)式1>是被除數(shù),<數(shù)值表達(dá)式2>是除數(shù)。

如果被除數(shù)與除數(shù)同號(hào),那么函數(shù)值即為兩數(shù)相除的余數(shù);如果被除數(shù)與除數(shù)異號(hào),則函數(shù)值為兩數(shù)相除的余數(shù)再加上除數(shù)的值。

例:?MOD(10,3),MOD(-10,3),MOD(10,-3),MOD(-10,-3)12-2-1?MOD(15,4),MOD(-15,-4),MOD(-15,4),MOD(15,-4)3-31-12.2常用函數(shù)2.2.1數(shù)值函數(shù)1/11/202525第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)字符函數(shù):通常是指自變量即參數(shù)是字符型的函數(shù)。

1.求子串函數(shù)SUBSTR()

格式:SUBSTR(<字符表達(dá)式>,<起始位置>[,<字符個(gè)數(shù)>])

功能:在<字符表達(dá)式>的字符串中,從<起始位置>開(kāi)始取出<字符個(gè)數(shù)>所指定的字符。若省略第三個(gè)自變量<字符個(gè)數(shù)

>,則從指定位置一直取到最后一個(gè)字符。

例:?SUBSTR("yunnanuniversity",8,10)university?SUBSTR("我們是學(xué)生",7)

學(xué)生

2.從左端取子串函數(shù)LEFT()

格式:LEFT(<字符表達(dá)式>,<字符個(gè)數(shù)>)

功能:從指定表達(dá)式的左端取出由<字符個(gè)數(shù)>給出的指定長(zhǎng)度的子串。

例:?LEFT("至公天下",4)

至公2.2常用函數(shù)2.2.2字符函數(shù)1/11/202526第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)3.從右端取子串函數(shù)RIGHT()

格式:RIGHT(<字符表達(dá)式>,<字符個(gè)數(shù)>))

功能:從指定表達(dá)式的右端取出由<字符個(gè)數(shù)>給出的指定長(zhǎng)度的子串。

例:?RIGHT("會(huì)澤百家",4)

百家4.小寫轉(zhuǎn)大寫函數(shù)UPPER()和大寫轉(zhuǎn)小寫函數(shù)LOWER()

格式:UPPER(<字符表達(dá)式>)LOWER(<字符表達(dá)式>)

功能:UPPER()函數(shù)將字符表達(dá)式中所有小寫字母轉(zhuǎn)換成大寫字母。

LOWER()函數(shù)將字符表達(dá)式中所有大寫字母轉(zhuǎn)換成小寫字母。

例:?UPPER("computer")COMPUTER?LOWER("OPERATIONSYSTEM")operationsystem2.2常用函數(shù)2.2.2字符函數(shù)1/11/202527第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)5.求字符串長(zhǎng)度函數(shù)LEN()

格式:LEN(<字符表達(dá)式>)

功能:返回指定字符表達(dá)式值的長(zhǎng)度,即所包含的字符個(gè)數(shù)。函數(shù)值為數(shù)值型。

例:

?LEN("Unix

操作系統(tǒng)")136.刪除字符串前后空格的函數(shù)

格式:TRIM(<字符表達(dá)式>)LTRIM(<字符表達(dá)式>)ALLTRIM(<字符表達(dá)式>)

功能:TRIM()返回指定字符表達(dá)式去掉尾部空格后得到的字符串。

LTRIM()返回指定字符表達(dá)式去掉前面空格后得到的字符串。

ALLTRIM()返回指定字符表達(dá)式去掉前面和尾部空格后得到的字符串。

例:?TRIM("VisualFoxPro")VisualFoxPro2.2常用函數(shù)2.2.2字符函數(shù)1/11/202528第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)7.求子串出現(xiàn)位置函數(shù)AT()

格式:AT(<字符表達(dá)式1>,<字符表達(dá)式2>[,<數(shù)值表達(dá)式>])

功能:如果<字符表達(dá)式1>是<字符表達(dá)式2>的子串,則返回<字符表達(dá)式1>的首字符在<字符表達(dá)式2>中的位置,若不是子串,則返回0。函數(shù)的返回值為數(shù)值型。

另有一個(gè)ATC()函數(shù),與AT()功能類似,但在子串比較時(shí)不區(qū)分大小寫。

<數(shù)值表達(dá)式>表明在<字符表達(dá)式2>中搜索<字符表達(dá)式1>第幾次出現(xiàn),默認(rèn)值為1。例:?AT("Fox","Visual

FoxPro"),AT("Fox","Visual

FoxPro",1),

AT("Fox","VisualFoxPro",2)880

2.2常用函數(shù)2.2.2字符函數(shù)1/11/202529第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)8.字符串匹配函數(shù)LIKE

格式:LIKE(<字符表達(dá)式1>,<字符表達(dá)式2>)

功能:比較兩個(gè)字符串對(duì)應(yīng)位置上的字符,若所有對(duì)應(yīng)字符都相匹配,函數(shù)返回邏輯真(.T.),否則返回邏輯假

(.F.)。

<字符表達(dá)式1>中可以包含通配符*和?。*可以與任何數(shù)目的字符相匹配,?可以與任何單個(gè)字符匹配。

例:x="we

are"

y="happy"?LIKE("we*",x),LIKE("w?",x),LIKE(y,x),LIKE("h*",y).T..F..F..T.2.2常用函數(shù)2.2.2字符函數(shù)1/11/202530第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

日期和時(shí)間函數(shù):是指自變量通常是日期型或日期時(shí)間型數(shù)據(jù)。

1.時(shí)間函數(shù)TIME()

格式:TIME()

功能:以“時(shí):分:秒”(hh:mm:ss)格式返回當(dāng)前系統(tǒng)時(shí)間,函數(shù)值為字符型。

例:如果當(dāng)時(shí)的系統(tǒng)時(shí)間是上午11時(shí)25分17秒,則有:?TIME()11:23:17

如果提供任意數(shù)值作為自變量,則返回的時(shí)間精度為百分之一秒。

?TIME(4)11:23:17.33

2.2常用函數(shù)2.2.3日期和時(shí)間函數(shù)1/11/202531第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)2.日期函數(shù)DATE()

格式:DATE()

功能:返回當(dāng)前系統(tǒng)日期,返回值為日期型。如果不通過(guò)SETDATE

命令特別設(shè)置,系統(tǒng)日期的格式為:月/日/年(MM/DD/YY)。

例:如果今天的系統(tǒng)日期是2004年2月11日,則有:?DATE()02/11/04

3.日期時(shí)間函數(shù)DATETIME()

格式:DATETIME()

功能:返回當(dāng)前系統(tǒng)日期時(shí)間,返回值為日期時(shí)間型。

例:如果今天的系統(tǒng)日期是2004年2月11日,上午11時(shí)25分17秒,則有:?DATETIME()02/11/0411:25:17AM2.2常用函數(shù)2.2.3日期和時(shí)間函數(shù)1/11/202532第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)取年份、月份和日期函數(shù)YEAR()、MONTH()和DAY()

格式:YEAR(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)MONTH(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)DAY(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)

功能:YEAR()從指定的日期表達(dá)式或日期時(shí)間表達(dá)式中返回年份。

MONTH()從指定的日期表達(dá)式或日期時(shí)間表達(dá)式中返回月份。

DAY()從指定的日期表達(dá)式或日期時(shí)間表達(dá)式中返回月份的日期。

例:

STORE{^2009-12-25}TOD?YEAR(D),MONTH(D),DAY(D)20091225

如果當(dāng)前系統(tǒng)日期是2009年1月1日,則:

?YEAR(DATE()),MONTH(DATE()),DAY(DATE())200911返回值均為數(shù)值型。2.2常用函數(shù)2.2.3日期和時(shí)間函數(shù)1/11/202533第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)1.字符型轉(zhuǎn)換成日期型函數(shù)CTOD()

格式:CTOD(<字符型表達(dá)式>)

功能:將<字符型表達(dá)式>中的日期格式的字符串轉(zhuǎn)換為日期型數(shù)據(jù)。

例:?CTOD("01/11/09")&&將字符串"01/11/09"轉(zhuǎn)換成日期并顯示。

01/11/092.日期型轉(zhuǎn)換成字符型函數(shù)DTOC()

格式:DTOC(<日期型表達(dá)式>[,<1>])

功能:將<日期型表達(dá)式>中的日期型值轉(zhuǎn)為字符型。

若無(wú)選項(xiàng)<1>時(shí),則字符串的格式為:月/日/年;若指定選項(xiàng)為<1>時(shí),則字符串的格式為:yyyymmdd。其中的"1"可以是任意數(shù)值。

例:假若今天是2010年2月11日,

?"今天的日期是:"+DTOC(DATE())

今天的日期是:02/11/10?"今天的日期是:"+DTOC(DATE(),1)

今天的日期是:20100211

2.2常用函數(shù)2.2.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)1/11/202534第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)3.數(shù)值型轉(zhuǎn)換成字符型函數(shù)STR()

格式:STR(<數(shù)值型表達(dá)式>[,<長(zhǎng)度>][,<小數(shù)位數(shù)>])

功能:將<數(shù)值型表達(dá)式>的值轉(zhuǎn)為字符型數(shù)據(jù)。

返回字符串長(zhǎng)度理想值L=<數(shù)值型表達(dá)式>的整數(shù)部分+<小數(shù)位數(shù)>+1(小數(shù)點(diǎn))。

<長(zhǎng)度>值決定轉(zhuǎn)換后的字符串長(zhǎng)度,包括小數(shù)點(diǎn)、負(fù)號(hào)。

<小數(shù)位數(shù)>值決定轉(zhuǎn)換后小數(shù)點(diǎn)右邊小數(shù)位數(shù)。

若<長(zhǎng)度>值大于L,則字符加前導(dǎo)空格以滿足規(guī)定的<長(zhǎng)度>要求;若

<長(zhǎng)度>值小于L但大于等于<數(shù)值表達(dá)式>值的整數(shù)位數(shù),則優(yōu)先滿足整數(shù)部分而自動(dòng)調(diào)整小數(shù)位數(shù);若<長(zhǎng)度>值小于<數(shù)值表達(dá)式>值的整數(shù)位數(shù),則返回一串“*”。

例:?STR(123.45,6,2),STR(3.141592,4,4),STR(76543.212,3,2)123.453.14***2.2常用函數(shù)2.2.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)1/11/202535第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)4.字符型轉(zhuǎn)換成數(shù)值型函數(shù)VAL()

格式:VAL(<字符表達(dá)式>)

功能:將由數(shù)字符號(hào)(包括數(shù)字、正負(fù)號(hào)、小數(shù)點(diǎn))組成的<字符表達(dá)式>字符串轉(zhuǎn)為數(shù)值型數(shù)據(jù)。

<字符型表達(dá)式>中必須是有效的數(shù)值表達(dá)式(可以是數(shù)值的科學(xué)計(jì)數(shù)法表示,例如:1.44E2)。若字符串內(nèi)出現(xiàn)非數(shù)字字符,如果首字符不是數(shù)字符號(hào),則返回?cái)?shù)值零,否則轉(zhuǎn)換前面部分。例:?VAL("123.45"),VAL("123.87hello123"),VAL("happy99.78")123.45123.870.005.宏代換函數(shù)&

格式:&<字符變量>

功能:&函數(shù)用于替換出字符型內(nèi)存變量的內(nèi)容,即&的值是變量中的字符串。2.2常用函數(shù)2.2.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)1/11/202536第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)5.宏代換函數(shù)&

如果該函數(shù)與其后的字符無(wú)明確分界,則需用“.”號(hào)作為函數(shù)結(jié)束標(biāo)識(shí)??梢郧短?。

例1:STORE"學(xué)生"TOXS

USE&XS

&&相當(dāng)于打開(kāi)學(xué)生表命令:USE學(xué)生

XNAME=“姓名”

&&

將“姓名”字符串賦值給變量XNAME

?XNAME,&XNAME

姓名楊波

例2:STORE"DISPLAY"TOL

USE學(xué)生

&L

&&相當(dāng)于執(zhí)行了DISPLAY命令

記錄號(hào)

學(xué)號(hào)

姓名

性別

出生日期

專業(yè)

入學(xué)成績(jī)

貸款否

照片

簡(jiǎn)歷

120030102001楊波女06/06/1978新聞666.6.T.GenMemo

例3:STORE"*"TOsymSTORE"X&sym.Y"TOZ&&宏替換命令后的變量與其他字符用.分隔。

?Z將顯示X*Y2.2常用函數(shù)2.2.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)1/11/202537第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

在處理數(shù)據(jù)時(shí),有時(shí)需要了解操作對(duì)象的狀態(tài),如:數(shù)據(jù)的類型、表文件的記錄指針的位置、記錄指針是否到了文件頭或文件尾等。特別在程序運(yùn)行時(shí),常需要根據(jù)測(cè)試結(jié)果決定程序走向或處理方式。

1.表文件尾測(cè)試函數(shù)EOF()

格式:EOF([<數(shù)值型表達(dá)式>])

功能:測(cè)試指定工作區(qū)表文件中的記錄指針是否指向文件尾,若記錄指針已經(jīng)指向最后一條記錄的后面位置,EOF()函數(shù)邏輯值為真.T.,否則為假.F.。

若省略<數(shù)值表達(dá)式>時(shí),測(cè)試當(dāng)前工作區(qū)的表文件。若工作區(qū)未打開(kāi)表文件,則值為假.F.。若表文件中沒(méi)有記錄,返回真.T.。

例:USE學(xué)生

GOTOBOTTOM?EOF().F.SKIP?EOF().T.2.2常用函數(shù)2.2.5測(cè)試函數(shù)1/11/202538第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)2.表文件起始測(cè)試函數(shù)BOF()

格式:BOF([<數(shù)值型表達(dá)式>])

功能:測(cè)試指定工作區(qū)表文件記錄指針是否指向文件首。若記錄指針指向表文件首(第一條記錄的前面),BOF()函數(shù)邏輯值為邏輯真(.T.),否則為邏輯假(.F.)。

若省略<數(shù)值表達(dá)式>時(shí),測(cè)試當(dāng)前工作區(qū)的表文件。若測(cè)試的工作區(qū)未打開(kāi)表文件,則值為邏輯假(.F.)。若表文件中沒(méi)有記錄,返回邏輯真(.T.)。

例:USE學(xué)生

GOTOP?BOF().F.SKIP-1?BOF()

.T.2.2常用函數(shù)2.2.5測(cè)試函數(shù)1/11/202539第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)學(xué)號(hào)姓名性別專業(yè)20030102001楊波女新聞20030102002魯明女新聞20030101001張偉男中文20050103001王紅女歷史20050101001張小玲女中文20040102001郭林男新聞20020101001李浩明男中文第一條記錄Bof()為假,recno()值為1最后一條記錄Eof()為假Recno()為最后一條記錄號(hào)Bof()為真Recno()值為1最后一條記錄的后面Eof()為真Recno()值為最后一條記錄號(hào)+11/11/202540第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)3.記錄號(hào)測(cè)試函數(shù)RECNO()

格式:RECNO([<數(shù)值型表達(dá)式>])

功能:返回指定工作區(qū)中表文件當(dāng)前的記錄號(hào)。

<數(shù)值型表達(dá)式>的值指定當(dāng)前工作區(qū)號(hào),若省略<數(shù)值表達(dá)式

>,測(cè)試當(dāng)前工作區(qū)中的表文件的記錄號(hào)。若測(cè)試的工作區(qū)未打開(kāi)表文件,則RECNO()值為零。4.記錄數(shù)測(cè)試函數(shù)RECCOUNT()

格式:RECCOUNT([<數(shù)值型表達(dá)式>])

功能:返回指定工作區(qū)中當(dāng)前表文件中所有記錄的個(gè)數(shù)。

<數(shù)值表達(dá)式>值決定當(dāng)前工作區(qū)號(hào)。若省略<數(shù)值表達(dá)式>,則測(cè)試當(dāng)前工作區(qū)的表文件。若測(cè)試的工作區(qū)未打開(kāi)表文件,則

RECCOUNT()值為零。2.2常用函數(shù)2.2.5測(cè)試函數(shù)1/11/202541第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)5.表文件測(cè)試函數(shù)

格式:DBF([<數(shù)值表達(dá)式>])

功能:用于給出指定工作區(qū)的表文件名。

<數(shù)值表達(dá)式>指定工作區(qū)號(hào),若無(wú)則對(duì)當(dāng)前工作區(qū)操作。當(dāng)指定工作區(qū)沒(méi)有打開(kāi)的表文件,則返回空串。

例:USE學(xué)生

?DBF()顯示D:\世界杯\表\學(xué)生.dbf

6.空值(NULL)測(cè)試函數(shù)ISNULL()

格式:ISNULL(<表達(dá)式>)

功能:判斷一個(gè)表達(dá)式的運(yùn)算結(jié)果是否為NULL值,若是,返回邏輯真(.T.),否則返回邏輯假(.F.)。

NULL值是沒(méi)有明確值的一種特殊表示。NULL值不等同于零或空格。一個(gè)NULL值不能認(rèn)為比某個(gè)值(包括另一個(gè)NULL值)大或小,相等或不同。2.2常用函數(shù)2.2.5測(cè)試函數(shù)1/11/202542第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)7.“空”值測(cè)試函數(shù)EMPTY()

格式:EMPTY(<表達(dá)式>)

功能:根據(jù)表達(dá)式的運(yùn)算結(jié)果是否為“空”值,返回邏輯真(.T.)或邏輯假(.F.)。

這里的“空”值與NULL值是不同的概念。EMPTY(.NULL.)返回值為邏輯假(.F.)。

EMPTY()函數(shù)的自變量表達(dá)式的類型可以是數(shù)值型、字符型、邏輯型和日期型等類型。不同類型數(shù)據(jù)的“空”值有不同的規(guī)定。2.2常用函數(shù)2.2.5測(cè)試函數(shù)不同類型的數(shù)據(jù)“空”值規(guī)定數(shù)據(jù)類型“空”值規(guī)定數(shù)據(jù)類型“空”值規(guī)定字符型空串、空格、制表符日期型空(如CTOD(‘’)數(shù)值型0日期時(shí)間型空(如CTOT(‘’)貨幣型0邏輯型.F.1/11/202543第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)8.數(shù)據(jù)類型測(cè)試函數(shù)TYPE()和VARTYPE()

格式:TYPE(<字符表達(dá)式>)VARTYPE(<表達(dá)式>[,<邏輯表達(dá)式>])

功能:測(cè)試表達(dá)式的數(shù)據(jù)類型,返回一個(gè)大寫字母,表明數(shù)據(jù)類型。

函數(shù)值為字符型。返回字母的含義如下。數(shù)據(jù)類型返回字母數(shù)據(jù)類型返回字母字符型C日期型D數(shù)值型N日期時(shí)間型T邏輯型L未定義U貨幣型YNULL值X通用型G備注型C或M常用函數(shù)2.2常用函數(shù)2.2.5測(cè)試函數(shù)1/11/202544第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

TYPE()函數(shù):返回表達(dá)式的數(shù)據(jù)類型,<字符表達(dá)式>要求是用字符定界符括起來(lái)的一個(gè)表達(dá)式,這個(gè)表達(dá)式可以是常量、變量、字段或其他表達(dá)式,如果表達(dá)式不用字符定界符括起來(lái),將返回U(未定義)。

例:?TYPE(".T."),TYPE("2*3.14*12"),TYPE("DATE()")LNDD1="HELLO"?TYPE(D1),TYPE("D1")UC

VARTYPE()函數(shù):返回<表達(dá)式>的數(shù)據(jù)類型,但函數(shù)中的表達(dá)式不用字符定界符括起來(lái);<邏輯表達(dá)式>決定當(dāng)<表達(dá)式>的運(yùn)算結(jié)果是NULL值時(shí)函數(shù)的返回值:如果<邏輯表達(dá)式>為.T.,返回<表達(dá)式>的原數(shù)據(jù)類型;如果<邏輯表達(dá)式>為.F.或省略,則返回X,表明<表達(dá)式>的運(yùn)算結(jié)果是NULL值。

例:STORE5TOnX

nX=.NULL.?TYPE("nX"),VARTYPE(nX),VARTYPE(nX,.T.)&&數(shù)據(jù)類型測(cè)試仍然是N型

NXN常用函數(shù)2.2常用函數(shù)2.2.5測(cè)試函數(shù)1/11/202545第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)9.條件測(cè)試函數(shù)IIF()

格式:IIF(<邏輯表達(dá)式>,<表達(dá)式1>,<表達(dá)式2>)

功能:測(cè)試<邏輯表達(dá)式>的值,如果為真(.T.),函數(shù)返回<表達(dá)式1>的值,如果為假.F.,函數(shù)返回<表達(dá)式2>的值。<表達(dá)式1>和<表達(dá)式2>的類型不要求相同。

例:X=100?IIF(X>0,"x的值大于零","x的值小于等于0")x的值大于零2.2常用函數(shù)2.2.5測(cè)試函數(shù)1/11/202546第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

數(shù)值表達(dá)式:是由算術(shù)運(yùn)算符將數(shù)值型數(shù)據(jù)連接起來(lái)形成的式子,其運(yùn)算結(jié)果仍然是數(shù)值型數(shù)據(jù)。算術(shù)運(yùn)算符對(duì)數(shù)值型數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,產(chǎn)生數(shù)值、貨幣結(jié)果等。有6種運(yùn)算符。

例:?(45+5-6^2)/2,(12.44-0.31)*(5-3^3)7.00-266.86算術(shù)運(yùn)算符及說(shuō)明運(yùn)算符說(shuō)明運(yùn)算符說(shuō)明()優(yōu)先運(yùn)算符、形成子表達(dá)式*、/、%乘法、除法、求余運(yùn)算**或^乘方運(yùn)算+、-加法、減法運(yùn)算運(yùn)算規(guī)則及優(yōu)先級(jí)是:先乘除,后加減,乘方優(yōu)先于乘除,函數(shù)優(yōu)先于乘方,圓括號(hào)的優(yōu)先級(jí)別最高。同級(jí)運(yùn)算時(shí),從左至右依次運(yùn)算。2.3表達(dá)式與運(yùn)算2.3.1數(shù)值表達(dá)式與數(shù)值運(yùn)算1/11/202547第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)字符表達(dá)式:由字符運(yùn)算符將字符型數(shù)據(jù)連接起來(lái)而形成的式子。字符運(yùn)算符:用于對(duì)兩個(gè)字符型數(shù)據(jù)進(jìn)行連接運(yùn)算。

+:用于把兩個(gè)字符串連接形成一個(gè)新的字符串。

-

:連接兩個(gè)字符串,并將第一個(gè)字符串尾部的空格移到新字符串的末尾。

例:STORE"HELLO"TOASTORE"EVERYONE"TOB?A+B,A-BHELLOEVERYONEHELLOEVERYONE

$:表示兩個(gè)字符串之間的包含與被包含的關(guān)系,參與運(yùn)算的數(shù)據(jù)只能是字符型,但運(yùn)算結(jié)果為邏輯型。

格式:<字符串1>$<字符串2>

如果<字符串1>被包含在<字符串2>中時(shí)其結(jié)果為真,否則為假。例:?“NEW”$“HAPPYNEWYEAR”,"study"$"STUDYCOMPUTER".T..F.

2.3表達(dá)式與運(yùn)算2.3.2字符表達(dá)式與字符運(yùn)算1/11/202548第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

日期或日期時(shí)間表達(dá)式的運(yùn)算符有兩個(gè):+和-

兩個(gè)日期不能相加(+),只能相減,得到兩個(gè)指定日期相差的天數(shù)。

運(yùn)算符+和-既可以作為日期時(shí)間運(yùn)算符,又可以作為算術(shù)運(yùn)算符和字符串連接運(yùn)算符。具體作為哪種運(yùn)算符,由它們所連接的運(yùn)算對(duì)象的數(shù)據(jù)類型決定。

日期時(shí)間表達(dá)式的格式格式日期時(shí)間運(yùn)算結(jié)果及類型<日期>+<天數(shù)>日期型。指定日期若干天后的日期<天數(shù)>+<日期>日期型。指定日期若干天后的日期<日期>-<天數(shù)>日期型。指定日期若干天前的日期<日期>-<日期>數(shù)值型。兩個(gè)日期相差的天數(shù)<日期時(shí)間>+<秒數(shù)>日期型。指定日期若干秒后的日期<日期時(shí)間>-<秒數(shù)>日期型。指定日期若干秒前的日期<秒數(shù)>+<日期時(shí)間>日期型。指定日期若干秒后的日期<日期時(shí)間>-<日期時(shí)間>數(shù)值型。兩個(gè)日期時(shí)間相差的秒數(shù)2.3表達(dá)式與運(yùn)算2.3.3

日期時(shí)間表達(dá)式與日期時(shí)間運(yùn)算1/11/202549第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)條件表達(dá)式:通常由比較運(yùn)算符將兩個(gè)運(yùn)算對(duì)象連接起來(lái)形成

格式:<表達(dá)式1><比較運(yùn)算符><表達(dá)式2>。

比較運(yùn)算符對(duì)兩個(gè)表達(dá)式進(jìn)行比較運(yùn)算,產(chǎn)生邏輯結(jié)果(真或假)。

(1)比較運(yùn)算符可用在字符、數(shù)字和日期型等表達(dá)式中,比較運(yùn)算符要求前后兩個(gè)運(yùn)算對(duì)象的數(shù)據(jù)類型必須相同。

(2)不同類型的數(shù)據(jù)進(jìn)行比較運(yùn)算時(shí),比較的方式是不一樣的。如數(shù)字型數(shù)據(jù)是按其數(shù)值大小進(jìn)行比較的。

(3)關(guān)系成立時(shí)值為真(.T.),否則值為假(.F.)。比較運(yùn)算符運(yùn)算符說(shuō)明運(yùn)算符說(shuō)明<小于<=小于等于>大于>=大于等于=等于<>、#或!=不等于2.3表達(dá)式與運(yùn)算2.3.4

條件表達(dá)式及比較運(yùn)算1/11/202550第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)

1.數(shù)值型數(shù)據(jù)和貨幣型數(shù)據(jù)的比較運(yùn)算

按數(shù)值的大小比較,包括負(fù)數(shù)。

2.日期和日期時(shí)間型數(shù)據(jù)的比較運(yùn)算

日期型數(shù)據(jù)是按年、月、日的先后進(jìn)行比較。

兩個(gè)日期型數(shù)據(jù)比較,首先比較年份,年份不相同時(shí),年份大的日期較大;年份相同時(shí),比較月份,月份不相同時(shí),月份大的日期較大;月份也相同時(shí),比較日期,日期大的較大,否則相同。

例:?{^1999-08-06}>{^1998-12-10}.T.?{^1999-08-06}>{^1999-12-01},{^1999-08-06}>{^1999-08-01}.F..T.2.3表達(dá)式與運(yùn)算2.3.4

條件表達(dá)式及比較運(yùn)算1/11/202551第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)3.字符型數(shù)據(jù)的比較運(yùn)算

當(dāng)比較兩個(gè)字符串時(shí),系統(tǒng)將對(duì)兩個(gè)字符串的字符從左向右逐個(gè)進(jìn)行比較,一旦發(fā)現(xiàn)兩個(gè)對(duì)應(yīng)字符不同,就根據(jù)這兩個(gè)字符的排序次序決定兩個(gè)字符串的大小。設(shè)置排序次序:

對(duì)字符排序次序的設(shè)置可以通過(guò)菜單:

(1)選擇“工具”菜單下的“選項(xiàng)”命令,打開(kāi)“選項(xiàng)”對(duì)話框。(2)在“選項(xiàng)”對(duì)話框選“數(shù)據(jù)”選項(xiàng)卡上,“排序序列”下拉列表框中選擇“Machine(機(jī)器)”、“PinYin

(拼音)”或“Stroke(筆畫)”。

“Machine(機(jī)器)”:指定字符排序次序按照機(jī)內(nèi)碼順序排序?!癙inYin(拼音)”:按照拼音次序排序。對(duì)西文字符而言,空格在最前面,小寫字母在前,大寫字母在后?!癝troke(筆畫)”:無(wú)論中文或西文,按照書寫筆畫的多少排序。

2.3表達(dá)式與運(yùn)算2.3.4.條件表達(dá)式及比較運(yùn)算1/11/202552第二章VisualFoxPro數(shù)據(jù)基礎(chǔ)設(shè)置排序次序:對(duì)排序次序的設(shè)置也可以使用命令:

SETCOLLATETO"<排序次序名>“

<排序次序名>可以是“Machine”、“PinYin”或“Stroke”,必須放在引號(hào)當(dāng)中。例:SETCOLLATETO"PinYin"

溫馨提示

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

評(píng)論

0/150

提交評(píng)論