第3章VFP的基本語法課件_第1頁
第3章VFP的基本語法課件_第2頁
第3章VFP的基本語法課件_第3頁
第3章VFP的基本語法課件_第4頁
第3章VFP的基本語法課件_第5頁
已閱讀5頁,還剩133頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章VisualFoxPro的基本語法第3章VisualFoxPro的基本語法1教學(xué)目標(biāo)掌握VFP中數(shù)據(jù)類型及變量的分類;掌握變量的命名及表達(dá)式運(yùn)算;掌握內(nèi)存變量的操作;熟悉VFP函數(shù)的使用。雙語課堂重點(diǎn)與難點(diǎn):數(shù)據(jù)及變量的類型;使用邏輯表達(dá)式描述復(fù)合條件;類型轉(zhuǎn)換函數(shù)及狀態(tài)測(cè)試函數(shù)。教學(xué)目標(biāo)掌握VFP中數(shù)據(jù)類型及變量的分類;雙語課堂重點(diǎn)與難點(diǎn)2

3.1常量與變量

3.1常量與變量3一.常量表示一個(gè)具體的、不變的值。不同類型的常量有不同的書寫格式。1.字符型常量

用定界符(單引號(hào)、雙引號(hào)和方括號(hào))括起來的字符串??梢允?6個(gè)英文大小寫字母、10個(gè)阿拉伯?dāng)?shù)字、各種漢字、專用符號(hào)和空格等,最大長(zhǎng)度可達(dá)254個(gè)字符。示例:“ade”,[568],“‘book’的中文意思是‘書’?!弊⒁猓喝绻麑⒗?dāng)?shù)字定義為字符串時(shí),它不具備數(shù)學(xué)上的數(shù)值含義,不能參加數(shù)學(xué)運(yùn)算,如電話號(hào)碼,郵編等。注意:字符定界符必須成對(duì)的出現(xiàn)。如果字符串中包含一種定界符,則必須用另一種定界符括起來。如:“[計(jì)算機(jī)]”,雙引號(hào)為字符定界符,其中的方括號(hào)為字符串。一.常量表示一個(gè)具體的、不變的值。不同類型的常量有不同的書4例如:在主窗口中顯示幾個(gè)字符常量?“計(jì)算機(jī)”,‘123’,[數(shù)據(jù)],[‘ABX’“abc”]??“學(xué)習(xí)”,‘字符串’,“”,[表示方法]

注意,不包括任何字符的字符串(“”)叫空串.空串與包含空格的字符串(“”)不同.例如:在主窗口中顯示幾個(gè)字符常量?“計(jì)算機(jī)”,‘123’,[52.數(shù)值型常量用來表示一個(gè)數(shù)量的大小,可以進(jìn)行算術(shù)運(yùn)算。包含0~9的阿拉伯?dāng)?shù)字、小數(shù)點(diǎn)與正負(fù)號(hào),最大長(zhǎng)度為20位。示例:538,-10.5,5.87E12,1.6E-123.邏輯型常量

只有邏輯真和邏輯假兩個(gè)值,邏輯真的表示形式有:.T.、.t.、.Y.和.y.邏輯假的表示形式有:.F.、.f.、.N.和.n.邏輯型數(shù)據(jù)長(zhǎng)度固定為1位,占用1個(gè)字節(jié)。2.數(shù)值型常量用來表示一個(gè)數(shù)量的大小,可以進(jìn)行算術(shù)運(yùn)算64.日期型常量

表示一個(gè)確切的日期,用大括號(hào)作為定界符。1)傳統(tǒng)的日期格式:{mm/dd/yy},受設(shè)置命令的影響。2)嚴(yán)格的日期格式:{^YYYY-MM-DD},不受設(shè)置命令的影響,能表達(dá)一個(gè)確切的日期。示例:{10/08/06},{^2006-08-06}嚴(yán)格的日期格式可以在任何情況下使用,而傳統(tǒng)的日期格式只能在SETSTRICTDATETO0

狀態(tài)下使用。4.日期型常量表示一個(gè)確切的日期,用大括號(hào)作為定界符。73)影響日期格式的設(shè)置命令●SETMARKTO[日期分隔符]●SETDATETO<日期格式>ymdmdy等●SETCENTURYON|OFF&&設(shè)置年份位數(shù)●SETSTRICTDATETO[0|1]

&&是否進(jìn)行嚴(yán)格的日期格式檢查0:檢查嚴(yán)格日期格式1:不檢查傳統(tǒng)日期格式2:檢查,并且對(duì)CTOD()和CTOT()也有效3)影響日期格式的設(shè)置命令&&是否進(jìn)行嚴(yán)格的日期格式檢查0:85.日期時(shí)間型常量包括日期和時(shí)間兩部分內(nèi)容,用來描述日期和時(shí)間。示例:{05/16/9912:00:00}6.貨幣型常量

用來表示貨幣值,在數(shù)字前加一個(gè)符號(hào)($)。存儲(chǔ)和計(jì)算時(shí)采用4位小數(shù),多余小數(shù)位四舍五入。示例:$123.45675.日期時(shí)間型常量包括日期和時(shí)間兩部分內(nèi)容,用來描述日9二.變量在使用過程中其值可以改變的量。VFP的變量分為字段變量和內(nèi)存變量?jī)纱箢?。?nèi)存變量又包括簡(jiǎn)單內(nèi)存變量、系統(tǒng)內(nèi)存變量和數(shù)組變量。1.字段變量

字段變量對(duì)應(yīng)于數(shù)據(jù)表中的字段,是在建立數(shù)據(jù)表文件時(shí)定義的,數(shù)據(jù)表中的每一個(gè)字段都是一個(gè)字段變量,以字段名標(biāo)識(shí)。字段變量必須依附于數(shù)據(jù)表,存在于數(shù)據(jù)表文件中,隨著數(shù)據(jù)表的打開而生效,隨著數(shù)據(jù)表的關(guān)閉而撤消,

2.簡(jiǎn)單內(nèi)存變量

內(nèi)存中的一個(gè)存儲(chǔ)區(qū)域,是一種臨時(shí)工作單元,常被用來存儲(chǔ)所需要的常數(shù)、中間結(jié)果或最終結(jié)果。變量名由漢字、字母、數(shù)字和下劃線組成,必須由字母或漢字開頭。二.變量在使用過程中其值可以改變的量。VF10(1)內(nèi)存變量的命名規(guī)則:

①由字母、漢字、數(shù)字或下劃線組成。②以字母、漢字或下劃線開頭。③長(zhǎng)度為1~128個(gè)字符,每個(gè)漢字占兩個(gè)字符。④不能使用VFP的保留字。當(dāng)內(nèi)存變量名與字段變量名相同時(shí),字段名優(yōu)先于內(nèi)存變量名,使用時(shí)可以在內(nèi)存變量名前加上M.(或M->)以示區(qū)別,但賦值時(shí)不能使用前綴。

例:?M.姓名&&表示內(nèi)存變量(1)內(nèi)存變量的命名規(guī)則:11

內(nèi)存變量的賦值命令STORE<表達(dá)式>TO<內(nèi)存變量名表>

格式一命令動(dòng)詞去向子句包含值的表達(dá)式接收值的變量名表STORE0TOAA,BB,CC&&數(shù)值0賦給變量AA,BB,CCSTORE“李磊”TONAME&&字符串“李磊”賦給NAME例格式二<內(nèi)存變量名>=<表達(dá)式>接收值的變量名賦值操作符包含值的表達(dá)式例A=.T.將邏輯真值賦給變量A內(nèi)存變量的賦值命令STORE<表達(dá)式>TO<內(nèi)12功能注釋:(1)等號(hào)一次只能給一個(gè)內(nèi)存變量賦值。(2)Store命令可以同時(shí)給若干個(gè)變量賦予相同的值,各內(nèi)存變量名之間必須用逗號(hào)分開。(3)在vfp中,變量使用之前并不需要特別的聲明和定義。(4)內(nèi)存變量在賦值時(shí)定義了它的值及類型,其類型與所賦值的類型相同。(5)命令后的符號(hào)&&,表示該符號(hào)后跟隨的是本命令行的注釋,與命令執(zhí)行無關(guān)。功能注釋:133.內(nèi)存變量的顯示;命令格式一

LISTMEMO[TOPRINT]DISPLAYMEMO[TOPRINT]例listmemo

命令格式一

?/??[<表達(dá)式表>]功能計(jì)算表達(dá)式的值,并將其顯示在屏幕上。?表示從屏幕下一行的第一列顯示結(jié)果??表示從當(dāng)前行的當(dāng)前列顯示結(jié)果例如:S=“visiual”P=“foxpro”?s??p3.內(nèi)存變量的顯示;14例如在命令窗口鍵入的命令和主屏顯示的內(nèi)容如下:s=“vfp”&&用字符串vfp賦給變量S,結(jié)果S的值為vfp,并成為字符型變量y=500&&用數(shù)值型常量500賦值內(nèi)存變量stor2×4tox1,x2&&對(duì)兩個(gè)內(nèi)存變量賦相同的值stor.t.toq&&用邏輯常量賦值內(nèi)存變量q?s,y,x1,x2,q

例如在命令窗口鍵入的命令和主屏顯示的內(nèi)容如下:s=“vfp152.數(shù)組

數(shù)組是按一定順序排列的一組內(nèi)存變量,數(shù)組中的各個(gè)變量稱為數(shù)組元素。每個(gè)數(shù)組元素可通過數(shù)組名及相應(yīng)的下標(biāo)來訪問。數(shù)組必須先定義后使用。說明:由若干單下標(biāo)變量組成的數(shù)組稱為一維數(shù)組,由若干雙下標(biāo)變量組成的數(shù)組稱為二維數(shù)組。在VisualFoxPro中,只允許使用一維數(shù)組或二維數(shù)組。一維數(shù)組:各個(gè)元素按線性排列;二維數(shù)組:類似于一個(gè)數(shù)據(jù)表,第一維是行,第二維是列。

2.數(shù)組數(shù)組是按一定順序排列的一組內(nèi)存變量,數(shù)組中的16

定義數(shù)組

在使用數(shù)組時(shí)一定要先定義,有兩條命令可以定義數(shù)組。格式一格式二DIMENSION<數(shù)組名1>(<行>[,<列>])[,<數(shù)組名2>(<行>[,<列>])……]

DECLARE<數(shù)組名1>(<行>[,<列>])[,<數(shù)組名2>(<行>[,<列>])……]功能:定義一個(gè)或多個(gè)一維或二維的內(nèi)存變量數(shù)組。參數(shù)描述:DIMENSION和DECLARE為定義數(shù)組的命令動(dòng)詞。<數(shù)組名1>:指定數(shù)組的名稱,其規(guī)定與內(nèi)存變量名相同。(<行>[,<列>]):定義數(shù)組的維數(shù)和大小。說明:1、數(shù)組的下標(biāo)的起始值為1

。2、同一數(shù)組中的數(shù)組元素可以有不同的數(shù)據(jù)類型。3、二維數(shù)組中各元素按行的順序依次排列。定義數(shù)組在使用數(shù)組時(shí)一定要先定義,有兩條命令可以174、每個(gè)數(shù)組占用一個(gè)內(nèi)存變量。5、除了可以分別對(duì)數(shù)組元素賦值以外,也可對(duì)數(shù)組中的所有元素賦同一初值。6、DIMENSION和DECLARE功能完全相同,常用DIMENSION。例如:DIMENSION<數(shù)組名1>(<行>[,<列>])[,<數(shù)組名2>(<行>[,<列>])……]DIMENSIONA(2,3),B(4,8)

也可以一次只定義一個(gè)數(shù)組:DIMENSIONA(2,3)也可以只定義一維數(shù)組:DIMENSIONA(6)4、每個(gè)數(shù)組占用一個(gè)內(nèi)存變量。18(2)示例:dimensionx(5),y(2,3)一維數(shù)組x含5個(gè)元素:x(1),x(2),x(3),x(4)x(5).二維數(shù)組Y含6個(gè)元素:y(1,1),y(1,2),y(1,3),y(2,1),y(2,2),y(2,3)可以用一維數(shù)組表示二維數(shù)組分別為:y(1),y(2),y(3),y(4),y(5),y(6)(2)示例:dimensionx(5),y(2,3)一維數(shù)19數(shù)組元素的賦值操作STORE<表達(dá)式>TO<數(shù)組名/數(shù)組元素>格式一命令動(dòng)詞去向子句包含值的表達(dá)式接收值的數(shù)組名或元素STORE0TOA將數(shù)值0賦給數(shù)組A的所有元素STORE"李磊"TOA(2,1)將字符串“李磊”賦給數(shù)組A的第2行第1列的元素。例格式二<數(shù)組名/數(shù)組元素>=<表達(dá)式>接收值的數(shù)組名或元素賦值操作符包含值的表達(dá)式例A=.T.

將邏輯真值賦給數(shù)組A的所有元素?cái)?shù)組元素的賦值操作STORE<表達(dá)式>TO<20【例2.3】定義數(shù)組,并給數(shù)組賦值。DIMENSIONY(3),X(2,2) Y=123 X(1,1)=345 X(1,2)="abc" X(2,1)={^2003-03-25} X(4)=.T. ?Y(1),Y(2),Y(3),X(1),X(2),X(3),X(4) 【例2.3】定義數(shù)組,并給數(shù)組賦值。21

3.2運(yùn)算符與表達(dá)式

3.2運(yùn)算符與表達(dá)式22運(yùn)算符:是對(duì)數(shù)據(jù)對(duì)象(操作數(shù))進(jìn)行操作運(yùn)算的符號(hào)。運(yùn)算符以其結(jié)果的類型分組有如下五類:■算術(shù)運(yùn)算符■關(guān)系運(yùn)算符■邏輯運(yùn)算符■字符串運(yùn)算符■日期運(yùn)算符

1、算術(shù)運(yùn)算符:操作數(shù)和運(yùn)算的結(jié)果都是數(shù)值(1)+加號(hào)(2)-減號(hào)(3)*乘號(hào)(4)/除號(hào)(5)^或**乘方(6)%余數(shù)

%取模,取兩數(shù)相除的余數(shù)?17%5結(jié)果為2^和**乘方?2^3結(jié)果為8運(yùn)算的順序:是先乘方-乘除-加減,若有括號(hào)先內(nèi)后外。運(yùn)算符:是對(duì)數(shù)據(jù)對(duì)象(操作數(shù))進(jìn)行操作運(yùn)算的符號(hào)。234.關(guān)系運(yùn)算符:

小于(<)、大于(>)、等于(=)、不等于(<>、#或!=)、小于等于(<=)、大于等于(>=)、字符串包含($)、字符串精確比較(==)。說明:(1)運(yùn)算符==和$僅適用于字符型數(shù)據(jù)。其他運(yùn)算符適用于任何類型的數(shù)據(jù),但前后兩個(gè)運(yùn)算對(duì)象的數(shù)據(jù)類型必須一致。①數(shù)值型和貨幣型數(shù)據(jù)比較:按數(shù)值的大小比較,包括負(fù)號(hào)。②日期或日期時(shí)間型數(shù)據(jù)比較:越早的日期或時(shí)間越小,越晚的日期或時(shí)間越大。4.關(guān)系運(yùn)算符:說明:24

注意:關(guān)系運(yùn)算符兩邊操作數(shù)類型必須一致,比較的結(jié)果是邏輯植。

◆數(shù)值數(shù)據(jù)按數(shù)值大小比較?5>6(f)◆日期型數(shù)據(jù)按年月日的先后進(jìn)行比較?{12/31/99}>{12/31/01}(f)◆字符型數(shù)據(jù)是按相應(yīng)位置上兩個(gè)字符的ASCII碼值進(jìn)行比較“ABC”>”AAAA”(T),“ABC”=“AB”(T)“ABC”==“AB”(F),

$:包含,左串是右串的子串為真?BC$ABCD(T)注意:關(guān)系運(yùn)算符兩邊操作數(shù)類型必須一致,比較的結(jié)果253、邏輯運(yùn)算,運(yùn)算結(jié)果是邏輯值

NOT(?。喝》催\(yùn)算,即:NOT.T.=.F.NOT.F.=.T.

.AND.邏輯與.T.AND”ABC”>”AB”(T).OR.邏輯或.T.OR3>4(T)

4、字符運(yùn)算符+:用于連接兩個(gè)字符串-:用于連接兩個(gè)字符串,并將前面一個(gè)字符串尾部的空格移到結(jié)果字符串的尾部。例如:a=‘hello’b=‘everyone!’?a+b,a-b3、邏輯運(yùn)算,運(yùn)算結(jié)果是邏輯值26例:使用邏輯表達(dá)式描述復(fù)合條件條件一:“自動(dòng)化專業(yè)的女團(tuán)員”

專業(yè)=“自動(dòng)化”AND性別=‘女’AND團(tuán)員條件二:“未婚的女職工”

NOT婚否AND性別=‘女’條件三:“職稱為工程師或部門為技術(shù)科的男職工”(職稱=“工程師”O(jiān)R部門=“技術(shù)科”)AND性別=‘男’例:使用邏輯表達(dá)式描述復(fù)合條件27例如:

“ABCl23”+“666xyz”連接后結(jié)果為:"ABCl23666xyz"

“計(jì)算機(jī)”+“世界”

連接后結(jié)果為:“計(jì)算機(jī)世界”“ABC”-“DEFG”連接后結(jié)果為:"ABCDEFG"

“ABC”+“DEFG”連接后結(jié)果為:"ABCDEFG"例如:

“ABCl23”+“666xyz”連接后結(jié)果為:28“+”運(yùn)算符與“-”運(yùn)算符的區(qū)別:ABeBF—ABeBFABeBF+ABeBF“+”運(yùn)算符與“-”運(yùn)算符的區(qū)別:ABeBF—ABeBFAB295日期時(shí)間表達(dá)式的格式<日期>+<天數(shù)>日期型,指定日期若干天后的日期<日期>-<天數(shù)>日期型,指定日期若干天前的日期<日期>-<日期>數(shù)值型,兩個(gè)指定日期相差的天數(shù){^2001-03-19}+10{^2001-03-19}-365{^2001-03-1912:10:10}-{^2001-03-1911:10:10}{^2001-03-1910:10:10am}+10設(shè)置日期格式的幾個(gè)命令:Setstrictdateto0

嚴(yán)格日期的格式Setstrictdateto1

傳統(tǒng)日期的格式Setcenturyon/off

年份前含有世紀(jì)/不含世紀(jì)5日期時(shí)間表達(dá)式的格式<日期>+<天數(shù)>日期型,指定日期30算術(shù)運(yùn)算符最高級(jí)**或^(乘方)

*、/、和%(乘、除和余數(shù))

+和-(加和減)

+和-(直接連接和去空連接)

+和-(加和減)

日期運(yùn)算符

關(guān)系運(yùn)算符<、>、=、<=、>=、<>、#、!=、$、==各運(yùn)算符優(yōu)先級(jí)相同次高級(jí)邏輯運(yùn)算符NOT或!(邏輯非)

AND(邏輯與)OR(邏輯或)

最低級(jí)字符串運(yùn)算符算術(shù)運(yùn)算符最高級(jí)**或^(乘方)*、/、和%(乘、除和余31

例如:數(shù)值表達(dá)式?(1/60-3/56)*18.54?(1+2^(1+2))/(2+2)?15%4Stor122tox,yZ=73?x%z,mod(x,z)混合表達(dá)式中,算術(shù)運(yùn)算符優(yōu)先于關(guān)系運(yùn)算符,關(guān)系運(yùn)算符優(yōu)先于邏輯運(yùn)算符。

例如:“ABC”$”AD”O(jiān)R(1+2)^3>66例如:數(shù)值表達(dá)式?(1/60-3/56)*18.54混合32

3.3VisualFoxPro的常用函數(shù)

3.3VisualFoxPro的常用函數(shù)33函數(shù)名起標(biāo)識(shí)作用;參數(shù)是自變量,寫在括號(hào)內(nèi),當(dāng)有多個(gè)參數(shù)時(shí),各個(gè)參數(shù)之間用逗號(hào)分隔;括號(hào)中沒有參數(shù)的函數(shù)稱為無參函數(shù)。每個(gè)函數(shù)運(yùn)算后都會(huì)返回一個(gè)值,稱為函數(shù)值,無參函數(shù)也不例外,函數(shù)值會(huì)因參數(shù)值而異。

函數(shù)的三個(gè)要素:函數(shù)名參數(shù)函數(shù)值函數(shù)名([參數(shù)1[,參數(shù)2]…])函數(shù)的一般格式:函數(shù)名起標(biāo)識(shí)作用;參數(shù)是自變量,寫在括號(hào)內(nèi),當(dāng)341.宏替換函數(shù)格式:&<字符型變量>[.]示例:aa=“bb”bb=

“北京”?aa,bb,&aa?“&bb.是中國的首都”&&用“.”作為內(nèi)存變量的結(jié)束符n=“567.83”?356.08+&n注意:如果‘&’后不跟有效的內(nèi)存變量名,則‘&’只是一個(gè)字符

一.字符處理函數(shù)1.宏替換函數(shù)格式:&<字符型變量>[.]一.字符處理352.計(jì)算字符串長(zhǎng)度函數(shù)LEN()格式:LEN(<字符表達(dá)式>)示例:?LEN(“x+y=?”)&&結(jié)果為5?LEN(“VisualFoxPro程序設(shè)計(jì)")&&結(jié)果為21

3.生成空格函數(shù)SPACE()格式:SPACE(<數(shù)值表達(dá)式>)示例:?“湖北”+SPACE(3)+“武漢”&&湖北武漢2.計(jì)算字符串長(zhǎng)度函數(shù)LEN()格式:LEN(<字符表達(dá)式>36取左子串:LEFT(<字符表達(dá)式>,<數(shù)值表達(dá)式>

)取右子串:RIGHT(<字符表達(dá)式>,<數(shù)值表達(dá)式>)取任意子串:

SUBSTR(<字符表達(dá)式>,<起始位置>[,<長(zhǎng)度>])“12345.6789”“789”“1234”“5.6”?RIGHT(C,3)變量C?LEFT(C,4)?SUBSTR(C,5,3)4.截取子串函數(shù)取左子串:LEFT(<字符表達(dá)式>,<數(shù)值表達(dá)式>)“37格式:AT(<子字符串>,<主字符串>[,<數(shù)值n>])功能:

★AT(<子字符串>,<主字符串>)

返回<子字符串>在<主字符串>中第一次出現(xiàn)的起始位置。★AT(<子字符串>,<主字符串>,<數(shù)值n>)返回<子字符串>在<主字符串>中第n次出現(xiàn)的起始位置?!癟hisisaexample.”?AT(‘is’,C)?AT(‘is’,C,2)36變量C5.求子串位置函數(shù)格式:AT(<子字符串>,<主字符串>[,<數(shù)值n>])“T387.重復(fù)字符串函數(shù)REPLICATE()格式:REPLICATE(<字符表達(dá)式>,<數(shù)值表達(dá)式>)示例:?REPLICATE(‘***’,3)&&*********6.計(jì)算子串出現(xiàn)次數(shù)函數(shù)OCCURS()格式:OCCURS(<字符表達(dá)式1>,<字符表達(dá)式2>)示例:

?OCCURS("is","Thisisaexample")&&結(jié)果為3?OCCURS("as","Thisisaexample")

&&結(jié)果為07.重復(fù)字符串函數(shù)REPLICATE()格式:REPLICA398.字符串替換函數(shù)STUFF()格式:STUFF(<字符表達(dá)式1>,<起始位置>,<字符個(gè)數(shù)>,<字符表達(dá)式2>)示例:

?STUFF("computer",3,4,”abc”)

&&結(jié)果為”coabcer”?STUFF("computer",3,1,”abc”)

&&結(jié)果為”coabcputer”8.字符串替換函數(shù)STUFF()格式:409.字符替換函數(shù)CHRTRAN()格式:CHRTRAN(<字符表達(dá)式1>,<字符表達(dá)式2>,<字符表達(dá)式3>)

示例:

?CHRTRAN("ABACAD",”ACD”,”X12”)

&&結(jié)果為”XBX1X2”?CHRTRAN("計(jì)算機(jī)ABC",”計(jì)算機(jī)”,”電腦”)

&&結(jié)果為”電腦ABC”10.字符串匹配函數(shù)LIKE()格式:LIKE(<字符表達(dá)式1>,<字符表達(dá)式2>)示例:

?LIKE(”AB*”,”ABCDEFG”)

&&結(jié)果為.T.

9.字符替換函數(shù)CHRTRAN()格式:10.字符4111.刪除前后空格函數(shù)格式:TRIM(<字符表達(dá)式>)LTRIM(<字符表達(dá)式>)ALLTRIM(<字符表達(dá)式>)示例:SS=SPACE(1)+“TEST”+SPACE(3)?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)

&&TESTTESTTEST?LEN(SS),LEN(TRIM(SS))

&&85?LEN(LTRIM(SS)),LEN(ALLTRIM(SS))

&&74

11.刪除前后空格函數(shù)格式:TRIM(<字符表達(dá)式>)4212.大小寫字母轉(zhuǎn)換函數(shù)格式:

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

?LOWER(“AaBbCc”)

&&結(jié)果為aabbcc

?UPPER("VisualFoxPro")

&&結(jié)果為VISUALFOXPRO12.大小寫字母轉(zhuǎn)換函數(shù)格式:431.絕對(duì)值和符號(hào)函數(shù)格式:

ABS(<數(shù)值表達(dá)式>)SIGN(<數(shù)值表達(dá)式>)示例:

?ABS(3.456)

&&結(jié)果為3.456

?ABS(-12*5)

&&結(jié)果為60二.數(shù)值處理函數(shù)1.絕對(duì)值和符號(hào)函數(shù)格式:ABS(<數(shù)值表達(dá)式>)二.442.求整數(shù)函數(shù)3.平方根函數(shù)4.自然指數(shù)函數(shù)5.對(duì)數(shù)函數(shù)6.圓周率函數(shù)7.四舍五入函數(shù)8.求模(余數(shù))函數(shù)9.正弦函數(shù)10.余弦函數(shù)11.求最大值和最小值函數(shù)示例:2.求整數(shù)函數(shù)451.系統(tǒng)日期和時(shí)間函數(shù)格式:DATE()

TIME()DATETIME()示例:?DATE(),TIME(),DATETIME()

&&07/05/0614:38:0607/05/0602:38:06PM三.日期和時(shí)間函數(shù)1.系統(tǒng)日期和時(shí)間函數(shù)格式:DATE()三.日期和462.求年份、月份和天數(shù)函數(shù)格式:YEAR(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)MONTH(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)DAY(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)示例:?YEAR(DATE())&&2006?MONTH(DATE())&&7?DAY(DATE())&&5假設(shè)當(dāng)前日期為2006年7月5日2.求年份、月份和天數(shù)函數(shù)格式:YEAR(<日期表達(dá)式>|47CMONTH(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>)

功能:以英文形式輸出日期型表達(dá)式或日期時(shí)間型表達(dá)式中的月份。

3.字符月份函數(shù)

DOW(<日期表達(dá)式>)

&&返回1~7的數(shù)值CDOW(<日期表達(dá)式>)&&返回英文形式的星期

注意:一個(gè)星期的第1天為Sunday4.星期函數(shù)CMONTH(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)481.求ASCII函數(shù):

格式:

ASC(<字符表達(dá)式>)

返回<expC>中的第一個(gè)字符對(duì)應(yīng)的ASCII碼值。2.求字符函數(shù):

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

返回ASCII值為<數(shù)值表達(dá)式>的字符。字符(C)字符的ACSII碼(N)ASCCHR四.數(shù)據(jù)類型轉(zhuǎn)換函數(shù)1.求ASCII函數(shù):字符(C)字符的ACSII碼(N)AS49

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

說明:

(1)<長(zhǎng)度>為轉(zhuǎn)換后的字符串位數(shù),該長(zhǎng)度包括小數(shù)點(diǎn)、負(fù)號(hào)。如果缺省<長(zhǎng)度>和<小數(shù)位數(shù)>,其輸出結(jié)果將取固定長(zhǎng)度為10位,且只取其整數(shù)部分;

(2)<小數(shù)位數(shù)>:若<小數(shù)位數(shù)>的設(shè)定值大于實(shí)際數(shù)值的小數(shù)位,則轉(zhuǎn)換后的字符串后補(bǔ)0,若<小數(shù)位數(shù)>的設(shè)定值小于實(shí)際數(shù)值的小數(shù)位,則對(duì)小數(shù)四舍五入;若缺省<小數(shù)位數(shù)>,則轉(zhuǎn)換后為整數(shù),原小數(shù)部分四舍五入;3.數(shù)值型向字符型轉(zhuǎn)換函數(shù)格式:STR(<數(shù)值表達(dá)式>[,<長(zhǎng)度>][,<小數(shù)位50(3)如果<長(zhǎng)度>值大于<數(shù)值表達(dá)式>給出值的數(shù)字位數(shù)時(shí),在返回的字符串左邊添加空格;(4)如果<長(zhǎng)度>值小于<數(shù)值表達(dá)式>值的整數(shù)部分位數(shù),將返回一串星號(hào),表示數(shù)值溢出。示例:

n=1234.56789?STR(n,8,2)&&結(jié)果為1234.57?STR(n,8)&&結(jié)果為1235?STR(n,8,4)&&結(jié)果為1234.568?STR(n,12,6)&&結(jié)果為1234.567890?STR(n)&&結(jié)果為1235?STR(n,3)&&結(jié)果為***

(3)如果<長(zhǎng)度>值大于<數(shù)值表達(dá)式>給出值的數(shù)字位數(shù)時(shí),在514.字符串轉(zhuǎn)換成數(shù)值函數(shù)VAL()格式:VAL(<字符表達(dá)式>)說明:(1)<字符表達(dá)式>的值必須是數(shù)字形式的字符串,它只能含有數(shù)字、正負(fù)號(hào)和小數(shù)點(diǎn);(2)轉(zhuǎn)換時(shí),如果遇到非數(shù)字字符則停止。如果字符表達(dá)式的第一個(gè)字符即非數(shù)字字符,則轉(zhuǎn)換停止,其值為0.00;示例:?VAL(“-789.123”)

&&結(jié)果為-789.12?VAL("10A.56")

&&結(jié)果為10.00?VAL("C346.05")

&&結(jié)果為0.004.字符串轉(zhuǎn)換成數(shù)值函數(shù)VAL()格式:VAL(<字符表達(dá)式52格式:CTOD(<字符表達(dá)式>)

CTOT(<字符表達(dá)式>)說明:(1)<字符表達(dá)式>必須是一個(gè)有效的日期格式;(2)<字符表達(dá)式>中的日期部分格式要與SETDATETO命令設(shè)置的格式一致。5.字符串轉(zhuǎn)換成日期或日期時(shí)間函數(shù)示例:SETDATETOYMDSETCENTURYOND1=CTOD(“2006/03/08”)T1=CTOT(“2005/03/08”+“”+TIME())?D1,T1&&2006/03/082006/03/0810:12:25AM格式:CTOD(<字符表達(dá)式>)5.字符串轉(zhuǎn)換成日期或日期時(shí)536.日期或日期時(shí)間轉(zhuǎn)換成字符串函數(shù)格式:DTOC(<日期表達(dá)式>|<日期時(shí)間表達(dá)式>)[,1])TTOC(<日期時(shí)間表達(dá)式>)[,1])說明:(1)字符串日期部分的格式與SETDATETO命令的設(shè)置有關(guān);時(shí)間部分的格式與SETHOURSTO12|24命令的設(shè)置有關(guān)。(2)如果有[,1]選項(xiàng),對(duì)于DTOC,按照YYYYMMDD的格式輸出;對(duì)于TTOC,則按照YYYYMMDDHHMMSS的格式輸出,采用24小時(shí)制。6.日期或日期時(shí)間轉(zhuǎn)換成字符串函數(shù)格式:DTOC(<日期表54格式:TYPE(<字符表達(dá)式>)VARTYPE(<表達(dá)式>)說明:函數(shù)返回值為字符型,各字符含義如下:數(shù)據(jù)類型測(cè)試函數(shù)返回的字母數(shù)據(jù)類型返回的字母數(shù)據(jù)類型C字符型或備注型G通用型N數(shù)值型、整型、浮點(diǎn)型或雙精度型D日期型Y貨幣型T日期時(shí)間型L邏輯型XNull值O對(duì)象型U未定義示例:A=567?TYPE(“A”)&&N?VARTYPE(A)&&N格式:TYPE(<字符表達(dá)式>)數(shù)據(jù)類型測(cè)試函數(shù)返回的字母數(shù)55值域測(cè)試函數(shù)格式:

BETWEEN(<表達(dá)式T>,<表達(dá)式L>,<表達(dá)式H>)功能:判斷一個(gè)表達(dá)式的值是否介于另外兩個(gè)表達(dá)式的值之間。當(dāng)<表達(dá)式T>值大于等于<表達(dá)式L>且小于等于<表達(dá)式H>時(shí),函數(shù)值為邏輯真.T.,否則函數(shù)值為邏輯假.F.。如果<表達(dá)式L>或<表達(dá)式H>有一個(gè)是NULL值,那么函數(shù)值也是NULL值。例:

x=76?BETWEEN(x,70,80)

&&結(jié)果為.T.值域測(cè)試函數(shù)56表達(dá)式測(cè)試函數(shù)格式:

INLIST(<表達(dá)式1>,<表達(dá)式2>[,<表達(dá)式3>,…])功能:測(cè)試表達(dá)式1的值是否與后面表達(dá)式的值相匹配。若表達(dá)式1的值是其余表達(dá)式值之一,函數(shù)值為邏輯真“.T.”,否則函數(shù)值為邏輯假“.F.”。表達(dá)式測(cè)試函數(shù)573.4VFP的命令結(jié)構(gòu)與書寫規(guī)則

3.4VFP的命令結(jié)構(gòu)與書寫規(guī)則58命令動(dòng)詞+修飾子句命令結(jié)構(gòu)示例:USEXS&&打開名為XS的表文件COUNTALLFOR成績(jī)<60&&統(tǒng)計(jì)XS中分?jǐn)?shù)在60分以下的人數(shù)LISTALL姓名,成績(jī)FOR成績(jī)<60TOPRINTER

&&在打印機(jī)上輸出成績(jī)?yōu)?0分以下的學(xué)生的姓名和分?jǐn)?shù)USE&&關(guān)閉表文件XS,將其保存在磁盤上命令動(dòng)詞+修飾子句命令結(jié)構(gòu)示例:59VisualFoxPro命令的一般格式

<命令動(dòng)詞>;

[<表達(dá)式表>];

[<范圍>];

[FOR<條件1>];

[WHILE<條件2>];

[TOFILE<文件名>∣TOPRINTER∣TO;

ARRAY<數(shù)組名>∣TO<內(nèi)存變量>];

[ALL

[LIKE∣EXCEPT<通配符>]];

[IN<別名>]VisualFoxPro命令的一般格式<命令動(dòng)60各部分的意義命令動(dòng)詞:VFP的命令名,指示計(jì)算機(jī)要完成的操作。表達(dá)式表:規(guī)定命令可處理的字段。

范圍:指定命令所作用的記錄范圍。范圍有下列五種選擇:

ALL

當(dāng)前表中的全部記錄。NEXT<n>

從當(dāng)前記錄開始的連續(xù)N條記錄。RECORD<n>

當(dāng)前表中的第N號(hào)記錄。REST

從當(dāng)前記錄開始到最后一條記錄為止的所有記錄。缺?。?/p>

在不同的命令中含義不同,等價(jià)于ALL或僅作用于當(dāng)前記錄。各部分的意義命令動(dòng)詞:VFP的命令名,指示計(jì)算機(jī)要完成的操作61123456NEXT3RESTALL當(dāng)前記錄指針RECORD3

范圍示例:123456NEXT3RESTALL當(dāng)前記錄指針RECO62各部分的意義FOR<條件>:規(guī)定只對(duì)滿足條件的記錄進(jìn)行操作。WHILE<條件>:從當(dāng)前記錄開始,按記錄順序從上向下處理,一旦遇到不滿足條件的記錄,就停止搜索并結(jié)束該命令的執(zhí)行。(WHILE子句比FOR子句優(yōu)先)TO子句:控制操作結(jié)果的輸出去向。各部分的意義FOR<條件>:規(guī)定只對(duì)滿足條件的記錄進(jìn)行操作63學(xué)號(hào)課程號(hào)成績(jī)03010101760301010279030102029003010301870301020167

學(xué)號(hào) 課程號(hào) 成績(jī)03010101 7603010301870301020167學(xué)號(hào) 課程號(hào) 成績(jī)0301010176Listfor

課程號(hào)=‘01’Listwhile

課程號(hào)=‘01’FOR

與WHILE的區(qū)別學(xué)號(hào)課程號(hào)成績(jī)0301010176030101027903064命令書寫規(guī)則1)必須以命令動(dòng)詞開頭,其后子句的順序可以任意。2)命令動(dòng)詞、修飾和限制子句之間要用空格分開。3)命令動(dòng)詞可以縮寫為前四個(gè)字符,并且命令動(dòng)詞中的英文字母不區(qū)分大小寫。4)變量名、字段名和文件名應(yīng)避免使用保留字,以免產(chǎn)生錯(cuò)誤。5)一行只能寫一條命令,若分多行書寫,必須使用續(xù)行符“;”。6)每條命令以回車健作為結(jié)束標(biāo)志。命令書寫規(guī)則1)必須以命令動(dòng)詞開頭,其后子句的順序可以任意。65符號(hào)的約定

[]位于該符號(hào)中的內(nèi)容是可選項(xiàng)。書寫時(shí)符號(hào)本身不輸入<>位于該符號(hào)中的內(nèi)容是必選項(xiàng)。書寫時(shí)符號(hào)本身不輸入[<>]表示如果[]中的內(nèi)容被選中,則<>中的內(nèi)容為必選項(xiàng)|表示或者,即根據(jù)需要從該符號(hào)緊鄰的前后兩項(xiàng)中,只能選擇其中的一項(xiàng)...表示該符號(hào)前面的內(nèi)容可重復(fù)多次

符號(hào)的約定66VisualFoxPro的文件類型

●數(shù)據(jù)庫文件

(1)數(shù)據(jù)庫文件擴(kuò)展名為DBC,DCT和DCX。

(2)表文件擴(kuò)展名為DBF和FPT。

(3)索引文件復(fù)合索引文件:CDX,單一索引文件:IDX?!裎臋n文件

(1)表單文件擴(kuò)展名為SCX和SCT

(2)報(bào)表文件擴(kuò)展名為FRX和FRT

(3)菜單文件擴(kuò)展名為MNX和MNT

(4)項(xiàng)目文件擴(kuò)展名為PJX和PJT●程序文件

(1)源程序文件(PRG、MPR、QPR)

(2)編譯后的程序文件(FXP、MPX、QPX

(3)應(yīng)用程序文件。(APP、EXE)VisualFoxPro的文件類型67本章小結(jié)雙語課堂

本章主要講述了VisualFoxPro中的數(shù)據(jù)類型、常量、變量、函數(shù)和表達(dá)式,它們是構(gòu)成命令和程序的基本元素。其中常量分為字符型常量、數(shù)值型常量、浮點(diǎn)型常量、邏輯型常量、日期型常量和日期時(shí)間型常量。變量分為內(nèi)存變量和字段變量?jī)煞N。使用算術(shù)運(yùn)算符、字符運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符構(gòu)成數(shù)值表達(dá)式、日期表達(dá)式、字符表達(dá)式、關(guān)系表達(dá)式和邏輯表達(dá)式等。函數(shù)包括數(shù)值型函數(shù)、字符型函數(shù)、日期與時(shí)間函數(shù)、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)和狀態(tài)測(cè)試函數(shù)。書寫VisualFoxPro命令時(shí)一定要遵循其語法規(guī)則。本章小結(jié)雙語課堂本章主要講述了Visua68Thankyouverymuch!本講到此結(jié)束謝謝您的光臨!Thankyouverymuch!本講到此結(jié)束69第3章VisualFoxPro的基本語法第3章VisualFoxPro的基本語法70教學(xué)目標(biāo)掌握VFP中數(shù)據(jù)類型及變量的分類;掌握變量的命名及表達(dá)式運(yùn)算;掌握內(nèi)存變量的操作;熟悉VFP函數(shù)的使用。雙語課堂重點(diǎn)與難點(diǎn):數(shù)據(jù)及變量的類型;使用邏輯表達(dá)式描述復(fù)合條件;類型轉(zhuǎn)換函數(shù)及狀態(tài)測(cè)試函數(shù)。教學(xué)目標(biāo)掌握VFP中數(shù)據(jù)類型及變量的分類;雙語課堂重點(diǎn)與難點(diǎn)71

3.1常量與變量

3.1常量與變量72一.常量表示一個(gè)具體的、不變的值。不同類型的常量有不同的書寫格式。1.字符型常量

用定界符(單引號(hào)、雙引號(hào)和方括號(hào))括起來的字符串??梢允?6個(gè)英文大小寫字母、10個(gè)阿拉伯?dāng)?shù)字、各種漢字、專用符號(hào)和空格等,最大長(zhǎng)度可達(dá)254個(gè)字符。示例:“ade”,[568],“‘book’的中文意思是‘書’。”注意:如果將阿拉伯?dāng)?shù)字定義為字符串時(shí),它不具備數(shù)學(xué)上的數(shù)值含義,不能參加數(shù)學(xué)運(yùn)算,如電話號(hào)碼,郵編等。注意:字符定界符必須成對(duì)的出現(xiàn)。如果字符串中包含一種定界符,則必須用另一種定界符括起來。如:“[計(jì)算機(jī)]”,雙引號(hào)為字符定界符,其中的方括號(hào)為字符串。一.常量表示一個(gè)具體的、不變的值。不同類型的常量有不同的書73例如:在主窗口中顯示幾個(gè)字符常量?“計(jì)算機(jī)”,‘123’,[數(shù)據(jù)],[‘ABX’“abc”]??“學(xué)習(xí)”,‘字符串’,“”,[表示方法]

注意,不包括任何字符的字符串(“”)叫空串.空串與包含空格的字符串(“”)不同.例如:在主窗口中顯示幾個(gè)字符常量?“計(jì)算機(jī)”,‘123’,[742.數(shù)值型常量用來表示一個(gè)數(shù)量的大小,可以進(jìn)行算術(shù)運(yùn)算。包含0~9的阿拉伯?dāng)?shù)字、小數(shù)點(diǎn)與正負(fù)號(hào),最大長(zhǎng)度為20位。示例:538,-10.5,5.87E12,1.6E-123.邏輯型常量

只有邏輯真和邏輯假兩個(gè)值,邏輯真的表示形式有:.T.、.t.、.Y.和.y.邏輯假的表示形式有:.F.、.f.、.N.和.n.邏輯型數(shù)據(jù)長(zhǎng)度固定為1位,占用1個(gè)字節(jié)。2.數(shù)值型常量用來表示一個(gè)數(shù)量的大小,可以進(jìn)行算術(shù)運(yùn)算754.日期型常量

表示一個(gè)確切的日期,用大括號(hào)作為定界符。1)傳統(tǒng)的日期格式:{mm/dd/yy},受設(shè)置命令的影響。2)嚴(yán)格的日期格式:{^YYYY-MM-DD},不受設(shè)置命令的影響,能表達(dá)一個(gè)確切的日期。示例:{10/08/06},{^2006-08-06}嚴(yán)格的日期格式可以在任何情況下使用,而傳統(tǒng)的日期格式只能在SETSTRICTDATETO0

狀態(tài)下使用。4.日期型常量表示一個(gè)確切的日期,用大括號(hào)作為定界符。763)影響日期格式的設(shè)置命令●SETMARKTO[日期分隔符]●SETDATETO<日期格式>ymdmdy等●SETCENTURYON|OFF&&設(shè)置年份位數(shù)●SETSTRICTDATETO[0|1]

&&是否進(jìn)行嚴(yán)格的日期格式檢查0:檢查嚴(yán)格日期格式1:不檢查傳統(tǒng)日期格式2:檢查,并且對(duì)CTOD()和CTOT()也有效3)影響日期格式的設(shè)置命令&&是否進(jìn)行嚴(yán)格的日期格式檢查0:775.日期時(shí)間型常量包括日期和時(shí)間兩部分內(nèi)容,用來描述日期和時(shí)間。示例:{05/16/9912:00:00}6.貨幣型常量

用來表示貨幣值,在數(shù)字前加一個(gè)符號(hào)($)。存儲(chǔ)和計(jì)算時(shí)采用4位小數(shù),多余小數(shù)位四舍五入。示例:$123.45675.日期時(shí)間型常量包括日期和時(shí)間兩部分內(nèi)容,用來描述日78二.變量在使用過程中其值可以改變的量。VFP的變量分為字段變量和內(nèi)存變量?jī)纱箢?。?nèi)存變量又包括簡(jiǎn)單內(nèi)存變量、系統(tǒng)內(nèi)存變量和數(shù)組變量。1.字段變量

字段變量對(duì)應(yīng)于數(shù)據(jù)表中的字段,是在建立數(shù)據(jù)表文件時(shí)定義的,數(shù)據(jù)表中的每一個(gè)字段都是一個(gè)字段變量,以字段名標(biāo)識(shí)。字段變量必須依附于數(shù)據(jù)表,存在于數(shù)據(jù)表文件中,隨著數(shù)據(jù)表的打開而生效,隨著數(shù)據(jù)表的關(guān)閉而撤消,

2.簡(jiǎn)單內(nèi)存變量

內(nèi)存中的一個(gè)存儲(chǔ)區(qū)域,是一種臨時(shí)工作單元,常被用來存儲(chǔ)所需要的常數(shù)、中間結(jié)果或最終結(jié)果。變量名由漢字、字母、數(shù)字和下劃線組成,必須由字母或漢字開頭。二.變量在使用過程中其值可以改變的量。VF79(1)內(nèi)存變量的命名規(guī)則:

①由字母、漢字、數(shù)字或下劃線組成。②以字母、漢字或下劃線開頭。③長(zhǎng)度為1~128個(gè)字符,每個(gè)漢字占兩個(gè)字符。④不能使用VFP的保留字。當(dāng)內(nèi)存變量名與字段變量名相同時(shí),字段名優(yōu)先于內(nèi)存變量名,使用時(shí)可以在內(nèi)存變量名前加上M.(或M->)以示區(qū)別,但賦值時(shí)不能使用前綴。

例:?M.姓名&&表示內(nèi)存變量(1)內(nèi)存變量的命名規(guī)則:80

內(nèi)存變量的賦值命令STORE<表達(dá)式>TO<內(nèi)存變量名表>

格式一命令動(dòng)詞去向子句包含值的表達(dá)式接收值的變量名表STORE0TOAA,BB,CC&&數(shù)值0賦給變量AA,BB,CCSTORE“李磊”TONAME&&字符串“李磊”賦給NAME例格式二<內(nèi)存變量名>=<表達(dá)式>接收值的變量名賦值操作符包含值的表達(dá)式例A=.T.將邏輯真值賦給變量A內(nèi)存變量的賦值命令STORE<表達(dá)式>TO<內(nèi)81功能注釋:(1)等號(hào)一次只能給一個(gè)內(nèi)存變量賦值。(2)Store命令可以同時(shí)給若干個(gè)變量賦予相同的值,各內(nèi)存變量名之間必須用逗號(hào)分開。(3)在vfp中,變量使用之前并不需要特別的聲明和定義。(4)內(nèi)存變量在賦值時(shí)定義了它的值及類型,其類型與所賦值的類型相同。(5)命令后的符號(hào)&&,表示該符號(hào)后跟隨的是本命令行的注釋,與命令執(zhí)行無關(guān)。功能注釋:823.內(nèi)存變量的顯示;命令格式一

LISTMEMO[TOPRINT]DISPLAYMEMO[TOPRINT]例listmemo

命令格式一

?/??[<表達(dá)式表>]功能計(jì)算表達(dá)式的值,并將其顯示在屏幕上。?表示從屏幕下一行的第一列顯示結(jié)果??表示從當(dāng)前行的當(dāng)前列顯示結(jié)果例如:S=“visiual”P=“foxpro”?s??p3.內(nèi)存變量的顯示;83例如在命令窗口鍵入的命令和主屏顯示的內(nèi)容如下:s=“vfp”&&用字符串vfp賦給變量S,結(jié)果S的值為vfp,并成為字符型變量y=500&&用數(shù)值型常量500賦值內(nèi)存變量stor2×4tox1,x2&&對(duì)兩個(gè)內(nèi)存變量賦相同的值stor.t.toq&&用邏輯常量賦值內(nèi)存變量q?s,y,x1,x2,q

例如在命令窗口鍵入的命令和主屏顯示的內(nèi)容如下:s=“vfp842.數(shù)組

數(shù)組是按一定順序排列的一組內(nèi)存變量,數(shù)組中的各個(gè)變量稱為數(shù)組元素。每個(gè)數(shù)組元素可通過數(shù)組名及相應(yīng)的下標(biāo)來訪問。數(shù)組必須先定義后使用。說明:由若干單下標(biāo)變量組成的數(shù)組稱為一維數(shù)組,由若干雙下標(biāo)變量組成的數(shù)組稱為二維數(shù)組。在VisualFoxPro中,只允許使用一維數(shù)組或二維數(shù)組。一維數(shù)組:各個(gè)元素按線性排列;二維數(shù)組:類似于一個(gè)數(shù)據(jù)表,第一維是行,第二維是列。

2.數(shù)組數(shù)組是按一定順序排列的一組內(nèi)存變量,數(shù)組中的85

定義數(shù)組

在使用數(shù)組時(shí)一定要先定義,有兩條命令可以定義數(shù)組。格式一格式二DIMENSION<數(shù)組名1>(<行>[,<列>])[,<數(shù)組名2>(<行>[,<列>])……]

DECLARE<數(shù)組名1>(<行>[,<列>])[,<數(shù)組名2>(<行>[,<列>])……]功能:定義一個(gè)或多個(gè)一維或二維的內(nèi)存變量數(shù)組。參數(shù)描述:DIMENSION和DECLARE為定義數(shù)組的命令動(dòng)詞。<數(shù)組名1>:指定數(shù)組的名稱,其規(guī)定與內(nèi)存變量名相同。(<行>[,<列>]):定義數(shù)組的維數(shù)和大小。說明:1、數(shù)組的下標(biāo)的起始值為1

。2、同一數(shù)組中的數(shù)組元素可以有不同的數(shù)據(jù)類型。3、二維數(shù)組中各元素按行的順序依次排列。定義數(shù)組在使用數(shù)組時(shí)一定要先定義,有兩條命令可以864、每個(gè)數(shù)組占用一個(gè)內(nèi)存變量。5、除了可以分別對(duì)數(shù)組元素賦值以外,也可對(duì)數(shù)組中的所有元素賦同一初值。6、DIMENSION和DECLARE功能完全相同,常用DIMENSION。例如:DIMENSION<數(shù)組名1>(<行>[,<列>])[,<數(shù)組名2>(<行>[,<列>])……]DIMENSIONA(2,3),B(4,8)

也可以一次只定義一個(gè)數(shù)組:DIMENSIONA(2,3)也可以只定義一維數(shù)組:DIMENSIONA(6)4、每個(gè)數(shù)組占用一個(gè)內(nèi)存變量。87(2)示例:dimensionx(5),y(2,3)一維數(shù)組x含5個(gè)元素:x(1),x(2),x(3),x(4)x(5).二維數(shù)組Y含6個(gè)元素:y(1,1),y(1,2),y(1,3),y(2,1),y(2,2),y(2,3)可以用一維數(shù)組表示二維數(shù)組分別為:y(1),y(2),y(3),y(4),y(5),y(6)(2)示例:dimensionx(5),y(2,3)一維數(shù)88數(shù)組元素的賦值操作STORE<表達(dá)式>TO<數(shù)組名/數(shù)組元素>格式一命令動(dòng)詞去向子句包含值的表達(dá)式接收值的數(shù)組名或元素STORE0TOA將數(shù)值0賦給數(shù)組A的所有元素STORE"李磊"TOA(2,1)將字符串“李磊”賦給數(shù)組A的第2行第1列的元素。例格式二<數(shù)組名/數(shù)組元素>=<表達(dá)式>接收值的數(shù)組名或元素賦值操作符包含值的表達(dá)式例A=.T.

將邏輯真值賦給數(shù)組A的所有元素?cái)?shù)組元素的賦值操作STORE<表達(dá)式>TO<89【例2.3】定義數(shù)組,并給數(shù)組賦值。DIMENSIONY(3),X(2,2) Y=123 X(1,1)=345 X(1,2)="abc" X(2,1)={^2003-03-25} X(4)=.T. ?Y(1),Y(2),Y(3),X(1),X(2),X(3),X(4) 【例2.3】定義數(shù)組,并給數(shù)組賦值。90

3.2運(yùn)算符與表達(dá)式

3.2運(yùn)算符與表達(dá)式91運(yùn)算符:是對(duì)數(shù)據(jù)對(duì)象(操作數(shù))進(jìn)行操作運(yùn)算的符號(hào)。運(yùn)算符以其結(jié)果的類型分組有如下五類:■算術(shù)運(yùn)算符■關(guān)系運(yùn)算符■邏輯運(yùn)算符■字符串運(yùn)算符■日期運(yùn)算符

1、算術(shù)運(yùn)算符:操作數(shù)和運(yùn)算的結(jié)果都是數(shù)值(1)+加號(hào)(2)-減號(hào)(3)*乘號(hào)(4)/除號(hào)(5)^或**乘方(6)%余數(shù)

%取模,取兩數(shù)相除的余數(shù)?17%5結(jié)果為2^和**乘方?2^3結(jié)果為8運(yùn)算的順序:是先乘方-乘除-加減,若有括號(hào)先內(nèi)后外。運(yùn)算符:是對(duì)數(shù)據(jù)對(duì)象(操作數(shù))進(jìn)行操作運(yùn)算的符號(hào)。924.關(guān)系運(yùn)算符:

小于(<)、大于(>)、等于(=)、不等于(<>、#或!=)、小于等于(<=)、大于等于(>=)、字符串包含($)、字符串精確比較(==)。說明:(1)運(yùn)算符==和$僅適用于字符型數(shù)據(jù)。其他運(yùn)算符適用于任何類型的數(shù)據(jù),但前后兩個(gè)運(yùn)算對(duì)象的數(shù)據(jù)類型必須一致。①數(shù)值型和貨幣型數(shù)據(jù)比較:按數(shù)值的大小比較,包括負(fù)號(hào)。②日期或日期時(shí)間型數(shù)據(jù)比較:越早的日期或時(shí)間越小,越晚的日期或時(shí)間越大。4.關(guān)系運(yùn)算符:說明:93

注意:關(guān)系運(yùn)算符兩邊操作數(shù)類型必須一致,比較的結(jié)果是邏輯植。

◆數(shù)值數(shù)據(jù)按數(shù)值大小比較?5>6(f)◆日期型數(shù)據(jù)按年月日的先后進(jìn)行比較?{12/31/99}>{12/31/01}(f)◆字符型數(shù)據(jù)是按相應(yīng)位置上兩個(gè)字符的ASCII碼值進(jìn)行比較“ABC”>”AAAA”(T),“ABC”=“AB”(T)“ABC”==“AB”(F),

$:包含,左串是右串的子串為真?BC$ABCD(T)注意:關(guān)系運(yùn)算符兩邊操作數(shù)類型必須一致,比較的結(jié)果943、邏輯運(yùn)算,運(yùn)算結(jié)果是邏輯值

NOT(?。喝》催\(yùn)算,即:NOT.T.=.F.NOT.F.=.T.

.AND.邏輯與.T.AND”ABC”>”AB”(T).OR.邏輯或.T.OR3>4(T)

4、字符運(yùn)算符+:用于連接兩個(gè)字符串-:用于連接兩個(gè)字符串,并將前面一個(gè)字符串尾部的空格移到結(jié)果字符串的尾部。例如:a=‘hello’b=‘everyone!’?a+b,a-b3、邏輯運(yùn)算,運(yùn)算結(jié)果是邏輯值95例:使用邏輯表達(dá)式描述復(fù)合條件條件一:“自動(dòng)化專業(yè)的女團(tuán)員”

專業(yè)=“自動(dòng)化”AND性別=‘女’AND團(tuán)員條件二:“未婚的女職工”

NOT婚否AND性別=‘女’條件三:“職稱為工程師或部門為技術(shù)科的男職工”(職稱=“工程師”O(jiān)R部門=“技術(shù)科”)AND性別=‘男’例:使用邏輯表達(dá)式描述復(fù)合條件96例如:

“ABCl23”+“666xyz”連接后結(jié)果為:"ABCl23666xyz"

“計(jì)算機(jī)”+“世界”

連接后結(jié)果為:“計(jì)算機(jī)世界”“ABC”-“DEFG”連接后結(jié)果為:"ABCDEFG"

“ABC”+“DEFG”連接后結(jié)果為:"ABCDEFG"例如:

“ABCl23”+“666xyz”連接后結(jié)果為:97“+”運(yùn)算符與“-”運(yùn)算符的區(qū)別:ABeBF—ABeBFABeBF+ABeBF“+”運(yùn)算符與“-”運(yùn)算符的區(qū)別:ABeBF—ABeBFAB985日期時(shí)間表達(dá)式的格式<日期>+<天數(shù)>日期型,指定日期若干天后的日期<日期>-<天數(shù)>日期型,指定日期若干天前的日期<日期>-<日期>數(shù)值型,兩個(gè)指定日期相差的天數(shù){^2001-03-19}+10{^2001-03-19}-365{^2001-03-1912:10:10}-{^2001-03-1911:10:10}{^2001-03-1910:10:10am}+10設(shè)置日期格式的幾個(gè)命令:Setstrictdateto0

嚴(yán)格日期的格式Setstrictdateto1

傳統(tǒng)日期的格式Setcenturyon/off

年份前含有世紀(jì)/不含世紀(jì)5日期時(shí)間表達(dá)式的格式<日期>+<天數(shù)>日期型,指定日期99算術(shù)運(yùn)算符最高級(jí)**或^(乘方)

*、/、和%(乘、除和余數(shù))

+和-(加和減)

+和-(直接連接和去空連接)

+和-(加和減)

日期運(yùn)算符

關(guān)系運(yùn)算符<、>、=、<=、>=、<>、#、!=、$、==各運(yùn)算符優(yōu)先級(jí)相同次高級(jí)邏輯運(yùn)算符NOT或!(邏輯非)

AND(邏輯與)OR(邏輯或)

最低級(jí)字符串運(yùn)算符算術(shù)運(yùn)算符最高級(jí)**或^(乘方)*、/、和%(乘、除和余100

例如:數(shù)值表達(dá)式?(1/60-3/56)*18.54?(1+2^(1+2))/(2+2)?15%4Stor122tox,yZ=73?x%z,mod(x,z)混合表達(dá)式中,算術(shù)運(yùn)算符優(yōu)先于關(guān)系運(yùn)算符,關(guān)系運(yùn)算符優(yōu)先于邏輯運(yùn)算符。

例如:“ABC”$”AD”O(jiān)R(1+2)^3>66例如:數(shù)值表達(dá)式?(1/60-3/56)*18.54混合101

3.3VisualFoxPro的常用函數(shù)

3.3VisualFoxPro的常用函數(shù)102函數(shù)名起標(biāo)識(shí)作用;參數(shù)是自變量,寫在括號(hào)內(nèi),當(dāng)有多個(gè)參數(shù)時(shí),各個(gè)參數(shù)之間用逗號(hào)分隔;括號(hào)中沒有參數(shù)的函數(shù)稱為無參函數(shù)。每個(gè)函數(shù)運(yùn)算后都會(huì)返回一個(gè)值,稱為函數(shù)值,無參函數(shù)也不例外,函數(shù)值會(huì)因參數(shù)值而異。

函數(shù)的三個(gè)要素:函數(shù)名參數(shù)函數(shù)值函數(shù)名([參數(shù)1[,參數(shù)2]…])函數(shù)的一般格式:函數(shù)名起標(biāo)識(shí)作用;參數(shù)是自變量,寫在括號(hào)內(nèi),當(dāng)1031.宏替換函數(shù)格式:&<字符型變量>[.]示例:aa=“bb”bb=

“北京”?aa,bb,&aa?“&bb.是中國的首都”&&用“.”作為內(nèi)存變量的結(jié)束符n=“567.83”?356.08+&n注意:如果‘&’后不跟有效的內(nèi)存變量名,則‘&’只是一個(gè)字符

一.字符處理函數(shù)1.宏替換函數(shù)格式:&<字符型變量>[.]一.字符處理1042.計(jì)算字符串長(zhǎng)度函數(shù)LEN()格式:LEN(<字符表達(dá)式>)示例:?LEN(“x+y=?”)&&結(jié)果為5?LEN(“VisualFoxPro程序設(shè)計(jì)")&&結(jié)果為21

3.生成空格函數(shù)SPACE()格式:SPACE(<數(shù)值表達(dá)式>)示例:?“湖北”+SPACE(3)+“武漢”&&湖北武漢2.計(jì)算字符串長(zhǎng)度函數(shù)LEN()格式:LEN(<字符表達(dá)式>105取左子串:LEFT(<字符表達(dá)式>,<數(shù)值表達(dá)式>

)取右子串:RIGHT(<字符表達(dá)式>,<數(shù)值表達(dá)式>)取任意子串:

SUBSTR(<字符表達(dá)式>,<起始位置>[,<長(zhǎng)度>])“12345.6789”“789”“1234”“5.6”?RIGHT(C,3)變量C?LEFT(C,4)?SUBSTR(C,5,3)4.截取子串函數(shù)取左子串:LEFT(<字符表達(dá)式>,<數(shù)值表達(dá)式>)“106格式:AT(<子字符串>,<主字符串>[,<數(shù)值n>])功能:

★AT(<子字符串>,<主字符串>)

返回<子字符串>在<主字符串>中第一次出現(xiàn)的起始位置?!顰T(<子字符串>,<主字符串>,<數(shù)值n>)返回<子字符串>在<主字符串>中第n次出現(xiàn)的起始位置?!癟hisisaexample.”?AT(‘is’,C)?AT(‘is’,C,2)36變量C5.求子串位置函數(shù)格式:AT(<子字符串>,<主字符串>[,<數(shù)值n>])“T1077.重復(fù)字符串函數(shù)REPLICATE()格式:REPLICATE(<字符表達(dá)式>,<數(shù)值表達(dá)式>)示例:?REPLICATE(‘***’,3)&&*********6.計(jì)算子串出現(xiàn)次數(shù)函數(shù)OCCURS()格式:OCCURS(<字符表達(dá)式1>,<字符表達(dá)式2>)示例:

?OCCURS("is","Thisisaexample")&&結(jié)果為3?OCCURS("as","Thisisaexample")

&&結(jié)果為07.重復(fù)字符串函數(shù)REPLICATE()格式:REPLICA1088.字符串替換函數(shù)STUFF()格式:STUFF(<字符表達(dá)式1>,<起始位置>,<字符個(gè)數(shù)>,<字符表達(dá)式2>)示例:

?STUFF("computer",3,4,”abc”)

&&結(jié)果為”coabcer”?STUFF("computer",3,1,”abc”)

&&結(jié)果為”coabcputer”8.字符串替換函數(shù)STUFF()格式:1099.字符替換函數(shù)CHRTRAN()格式:CHRTRAN(<字符表達(dá)式1>,<字符表達(dá)式2>,<字符表達(dá)式3>)

示例:

?CHRTRAN("ABACAD",”ACD”,”X12”)

&&結(jié)果為”XBX1X2”?CHRTRAN("計(jì)算機(jī)ABC",”計(jì)算機(jī)”,”電腦”)

&&結(jié)果為”電腦ABC”10.字符串匹配函數(shù)LIKE()格式:LIKE(<字符表達(dá)式1>,<字符表達(dá)式2>)示例:

?LIKE(”AB*”,”ABCDEFG”)

&&結(jié)果為.T.

9.字符替換函數(shù)CHRTRAN()格式:10.字符11011.刪除前后空格函數(shù)格式:TRIM(<字符表達(dá)式>)LTRIM(<字符表達(dá)式>)ALLTRIM(<字符表達(dá)式>)示例:SS=SPACE(1)+“TEST”+SPACE(3)?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)

&&TESTTESTTEST?LEN(SS),LEN(TRIM(SS))

&&85?LEN(LTRIM(SS)),LEN(AL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論