第2章VisualFoxPro語言基礎_第1頁
第2章VisualFoxPro語言基礎_第2頁
第2章VisualFoxPro語言基礎_第3頁
第2章VisualFoxPro語言基礎_第4頁
第2章VisualFoxPro語言基礎_第5頁
已閱讀5頁,還剩79頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

第二章VisualFoxPro

語言基礎薛春香xcx516@163.com12本章要點本章主要講解VisualFoxpro中數據類型、常量和變量的的基本概念,表達式和函數的基本知識。通過本章學習,應該掌握以下內容:數據類型變量和常量表達式函數

2.1數據類型3數據類型是指數據對象的取值集合,以及對之可施行的運算集合。數據類型規定了具有該類型的變量或表達式的取值范圍,也規定了與之相聯系的運算的集合。創建表時需要用戶指明表中每個字段的數據類型,變量或數組的數據類型則由保存在其中的值來決定。數據類型表示符號數據類型表示符號數據類型表示符號字符型C數值型N貨幣型Y備注型M浮點型F邏輯型L日期型D雙精度型B通用型G日期時間型T整型I2.1.1字符型(C)由任意字符(字母、數字、空格、符號等)組成每個字符占一個字節,最多可有254個字符使用時要用英文的單引號、雙引號或方括號括起來(不可用中文標點)

如:“A0001”、‘數學系’

、[214]注意:如果將阿拉伯數字定義為字符型數據時,它不具備數學上的數值含義,不能參加數學運算,如電話號碼,郵編等。42.1.2數值型(N)用于表示數值數據由數字0-9、小數點、正負號和字母E組成取值范圍是:

-0.9999999999E+19~0.9999999999E+20其長度(數據位數)最大20位,在內存中,數值型數據占用8個字節。小數點和小數位數是字段總長度的一部分通常用于表示實數。如23,-103.45,1.3E-5(即1.3×10-5)等;52.1.3整型(I)用于存儲無小數的數值寬度為4字節,其取值范圍是:-2147483647~214748364762.1.4貨幣型(Y)當涉及貨幣時使用,取代數值型寬度為8字節,默認保留4位小數,其取值范圍是:

-922337203685477.5808~922337203685477.5807使用貨幣型數據要在前面加上符號“$”,如:$10072.1.5其他數值型雙精度型(B)用于存儲精度較高、位數固定的數值寬度為8字節,其取值范圍是:

+/-4.94065645841247E-324~

+/-8.9884656743115E307浮點型(F)與數值型等價,主要是為了得到較高的計算精度。包含此類型是為了提供兼容性82.1.6日期型日期型(D)用于存儲有關年月日的數據寬度為8字節,取值范圍是01/01/0001~12/31/9999表示日期型的數據通常要用花括號,

如:{09/10/2001}、{}(空日期)系統默認格式為{mm/dd/yyyy},可通過SETDATE、SETCENTURY命令設置日期格式,或通過系統的“選項”對話框中的“區域”卡中設置92.1.6日期型日期時間型(T)在保存日期、時間或二者兼有時使用日期時間的默認格式是{mm/dd/yyyyhh:mm:ss},其中mm、dd、yyyy的意義與日期型相同,而hh表示小時,mm表示分鐘,ss表示秒數。寬度為8字節與日期型一樣,要用“{}”將數據括起來,{10/01/200210:30:30}表示2002年10月1日10時30分30秒這一日期時間數據。若要指定空日期時間值,要在花括號中加一個冒號,如:{:}102.1.7邏輯型(L)是用來進行各種邏輯判斷的數據只含有兩個值:真(.T.,.Y.)、假(.F.,.N.)寬度固定,為1字節112.1.8備注型(M)存放較多字符的數據類型??梢园阉闯墒亲址蛿祿奶厥庑问?。備注型數據沒有數據長度限制,僅受限于磁盤空間。它只用于表中字段類型的定義,字段長度固定為4字節,實際數據存放在與表文件同名的備注文件(.FPT)中,長度根據數據的內容而定。122.1.9其他數據類型通用型(G)用于存儲OLE對象,可以是電子表格、文檔、圖形圖片等。它只用于表中字段類型的定義。通用型數據字段長度固定為4位,寬度為4字節,實際數據長度僅受限于磁盤空間。表中存儲的是指向OLE對象的引用二進制字符型(C)二進制備注型(M)13浮點型、雙精度型、整型、備注型、通用型、二進制字符型、二進制備注型只能用于字段。2.2數據的存儲

在VisualFoxPro系統環境下,數據輸入、輸出是通過數據的存儲設備完成的。通常我們都是將數據存入到常量、變量、數組中,而在VisualFoxPro系統環境下,數據還可以存入到記錄和對象中。我們把這些供數據存儲的常量、變量、數組、記錄和對象稱為數據存儲容器。142.2.1常量(1/5)常量的值在操作過程中始終保持不變。字符型常量:用定界符(單引號、雙引號,方括號)括起來的字符串。示例:“ade”

,‘568’

,“

book的中文意思是‘書’。”注意(1)不能使用中文的定界符;

(2)定界符必須成對匹配;(3)如果某個定界符也是字符的內容,則用另一種定界符表示該字符串;(4)不含任何字符的字符串稱為“空串”(‘’),不同于包含空格的字符串(‘

’);(5)字符串中的字符大小寫不等價。152.2.1常量(2/5)數值型常量(示例:538,-10.5)貨幣型常量(示例:$10.23

)默認四位小數,超過部分四舍五入。邏輯型常量(示例:.t..T..f..F..Y..y..N..n.)162.2.1

常量(3/5)日期型常量:用花括號作為定界符,有效的日期型和日期時間型數據分隔符為:連字符“-”、正斜杠“/”、點“.”傳統型日期常量的表示為系統所指定的方式,可以是{yy/mm/dd},也可以是{mm/dd/yyyy}等格式,受系統命令語句setdateto(設置日期的顯示格式)和setcenturyon/off(設置年份的位數)的影響。{05/11/03}可以根據系統設置的不同解釋為2003年5月11日,2003年11月5日,2005年11月3日等。精確型日期常量的表示格式為{^yyyy-mm-dd},可以在任何系統環境下使用,如{^2005/11/03}就只表示2005年11月3日,是系統的默認設置。

VFP6.0及以上版本默認日期格式為精確型日期格式,可用setstrictdateto0|1|2設置172.2.1常量(4/5)設置日期顯示格式SETDATE[TO]AMERICAN|ANSI|BRITISH|FRENCH|GERMAN|ITLIAN|JAPAN|USA|MDY|DMY|YMD|SHORT|LONG

命令功能:設置日期型和日期時間型數據的顯示輸出格式。系統默認為AMERICAN美國格式。如果日期格式設置為SHORT或LONG格式,VisualFoxPro系統將按Windows系統設置的短日期格式或長日期格式顯示輸出日期數據,而且SETCENTURY命令的設置被忽略。

182.2.1常量(5/5)19設置值日期格式設置值日期格式AMERICANmm/dd/yyUSAmm-dd-yyANSIyy.mm.ddMDYmm/dd/yyBRITISH/FRENCHdd/mm/yyDMYDd/mm/yyGERMANdd.mm.yyYMDyy/mm/ddITALIANdd-mm-yySHORTWindows短日期格式JAPANyy/mm/ddLONGWindows長日期格式2.2.2變量變量是在使用過程中其值可以改變的量。內存中一個存儲單元的位置(地址);變量名是存儲位置的符號表示,該存儲位置中存放的數據就是變量的值,變量的類型取決于變量值的類型,可以將不同類型的數據賦給一個變量(C、N、Y、L、D、T)。

變量分為字段變量、內存變量、數組變量和系統內存變量確定一個變量,需要確定其三個要素:變量名、數據類型和變量值。20不特別說明的話,通常變量就是指內存變量。

變量命名規則使用字母、下劃線、數字符號和漢字符號命名。但一般建議不采用漢字命名;命名只能以字母或下劃線開頭;除自由表中字段名、索引的TAG標識名最多只能10個字符外,其他的命名可使用1~128個字符;避免使用VisualFoxPro的保留字;文件名的命名應遵循操作系統的約定。21cVar;nvar2;_aver123;sum_of_score;12x;2_x;num-of-stu;_avg&score;set;

內存變量

內存變量是內存中的臨時單元,可以用來在程序的執行過程中保留中間結果與最后結果,或用來保留對數據庫進行某種分析處理后得到的結果。

特別要注意,除非用內存變量文件來保存內存變量值,否則,當退出VisualFoxPro系統后,內存變量也會與系統一起消失。(1)內存變量的數據類型內存變量的數據類型包括:數值型、字符型、邏輯型、日期型和日期時間型,由其值來決定。

22(2)內存變量的建立STORE值

TO變量名列表

變量名=值

WAIT‘字符串‘

TO

字符變量名

如:

STORE

'vfp5'

TOC1,X

C2={^1999/12/14}C3=.f.

WAIT‘hello’TOxy1**將HELLO顯示在屏幕上,在屏幕上輸入的字符賦值給變量xy1

B=6STOREB+3TOCSTORE“中國”TOA,B,C在建立變量的同時就指定了變量的名稱、數據類型和變量值(3)內存變量的顯示輸出?|??<表達式表>

功能:計算表達式表中各表達式的值,并在屏幕上指定位置顯示輸出各式的值。?:先回車換行,再計算并輸出表達式的值;??:在屏幕上當前位置,計算并直接輸出表達式的值;<表達式表>:多個逗號兩兩分隔的表達式,各表達式的值輸出時,以空格分隔;?'MYNAMEIS',C1,'TODAYIS:',C2

(4)內存變量的清除Clear

memory

&&清除所有的內存變量,但不清除系統內存變量Release[內存變量︱all]

&&清除指定的內存變量或所有內存變量

Clearall

&&在關閉所有文件的同時清除所有的內存變量。示例:RELEASEALLRELEASEX,Y,Z

(5)內存變量的保存與恢復SavetoFilename

[alllike|allexcept]

&&將內存變量保存到文件中。RestorefromFilename

&&從文件中恢復內存變量。

(6)內存變量的作用范圍

LOCAL(聲明局部變量)用LOCAL創建的變量只能在創建他們的程序中使用;不能被更高層或更低層的程序訪問。PRIVATE(聲明私有變量)將調用程序中定義的變量在當前程序中隱藏起來,用戶可在當前程序中使用同名變量而不影響變量的原始值;PUBLIC(聲明全局變量)在當前工作期中任何程序都能使用和修改全局變量命令窗口中聲明的變量是全局變量。

字段變量在一個數據表中,同一個字段名下有若干個數據項,而數據項的值取決于該數據項所在記錄行的變化,所以稱它為字段變量。字段變量的數據類型與該字段定義的類型一致。字段必須先定義(定義字段變量屬性:名字、類型和長度),然后進行賦值,最后才可以使用字段變量。字段變量的值隨著表中記錄指針的移動,其值永遠在變化之中。28內存變量與字段變量的區別在VFP中,若變量與字段同名,字段具有更高的優先權。要訪問變量,可在變量前加上:m.或m->。示例:

當前打開的表中有XM字段,XS表(XH,XM,NL)

XM=12

USEXS

GO1

?XM

.......第一條記錄的學生的姓名

?M.XM

.......12

?M->XM

.......122.2.3數組數組變量是結構化的變量,是一組具有相同名稱、以下標相互區分的有序內存變量(稱為數據元素)數組元素的名稱(變量名)用數組加下標構成,最大維數為二維,下標必須用圓括號對括;一維數組的元素只有一個下標,二維數組的元素有兩個以逗號分隔的下標;如AA(1),BB(2,3)分別表示一維數組AA的第1個元素,二維數組BB中第2行第3列的元素;下標必須是非負數值,可以是常量、變量、函數或表達式;每個數組元素的數據類型可以不同,數組元素的數據類型是通過所賦值的數據類型來確定的。

30

數組的定義

——數組必須先定義后使用

DIMENSION|DECLARE<數組名1>(<數值表達式1>[,<數值表達式2>])[,<數組名2>(<數值表達式3>[,<數值表達式4>])…]<數值表達式>為數組下標,對一維數組來說,指的是數組元素的個數;二維數組則指的是數組的最大行號和最大列號。數組的下標允許使用圓括號或方括號括起來。數組一旦被定義之后,該數組的每個元素的初值為邏輯假值,可以使用有關的命令給數組元素賦值。31給數組元素賦值DIMENSIONAA[6,3]AA[1,2]=2&&數組的第二個元素被賦值2AA=3&&數組的全部元素被賦值3BB=AA&&把數組的第一個元素的值賦給變量BB?AA&&顯示數組第一個元素的值

DECLAREx[5]x[1]x[2]x[3]x[4]x[5]數組下標排列規則數組下標的排列規則:數組從下標1開始排列,二維數組的元素排列是先按行排,后按列排。示例:己定義了數組A(6)與數組B(2,3),它們對應的下標排列如下:A(6):A(1),A(2),A(3),A(4),A(5),A(6)B(2,3):B(1,1),B(1,2),B(1,3),

B(2,1),B(2,2),B(2,3)數組元素的重定義數組的重定義:使用DECLARE或DIMENSION命令對已定義好的數組的尺寸和維數進行改變,即將一維數組變為二維數組或將二維數組變為一維數組,并且可以改變數組元素的個數,同時將原數組的數據自動復制到重定義的同名數組(新數組)中。有關數組的幾個注意點數組定義完畢后,其中的每個元素的值均為邏輯假。以一維數組的形式對二維數組進行訪問時,數組的下標n表示是對該數組中第n個元素進行訪問。給數組名賦值,即給該數組中所有的元素賦于同一個值。訪問數組名時,即對數組中第一個元素進行訪問。2.3操作符及其表達式362.3.1數值運算符及數值表達式2.3.2字符串運算符及字符表達式2.3.3日期運算符及日期表達式2.3.4關系運算符及關系表達式2.3.5邏輯運算符及邏輯表達式2.3.6類與對象運算符2.3.7名稱表達式(1)運算符:對相同類型數據進行運算操作的符號。(2)表達式:用運算符將常量、變量、函數等數據連接起來的式子。2.3.1數值運算符及數值表達式?4*6%5^3+1&&在VFP主屏幕上顯示25結果。?24%5&&在VFP主屏幕上顯示4結果。

?24%-5&&在VFP主屏幕上顯示-1結果。

?Mod(23,-5),Mod(-23,-5),mod(-23,5)37運算符功能表達式舉例運算結果優先級別()圓括號(2-5)*(3+2)-15最高||||最低-取相反數-(3-8)5**、^乘冪2**5、3^232、9*、/乘、除2*10、25/520、5%,mod()模(取余數)20%50+、-加、減36+19、29-4755、-182.3.2字符串運算符及字符表達式38運算符功能表達式舉例運算結果+串1+串2:兩串順序相連接’12‘+’56’’1256’-串1-串2:串1尾空格移到串2尾后再順序相連接’12‘-‘56’‘1256‘$串1$串2:串1是否為串2子串‘1234’$‘a12345’‘1234’$‘34512’.T..F.字符表達式:由字符串運算符將字符型常量、變量、函數等連接起來的式子。優先級別:兩個連接運算的優先級別相同,但高于$的比較運算。2.3.3日期運算符及日期表達式39運算符功能表達式舉例+日期和天數相加,結果為日期

時間和秒數相加,結果為時間{01/01/1996}+20-日期和日期相減,結果為天數

時間和時間相減,結果為秒數

日期和天數相減,結果為日期

時間和秒數相減,結果為時間?{^2003-01-23}-35

?{^2003-01-23}-{^2003-4-1}日期表達式:由日期運算符將日期型常量、變量、函數等數據連接起來的式子,其返回結果為日期型或者數值型數據。

{^1980/03/18}+30

.......{1980/04/17}

{^1980/03/18}+30+DATE()

.......?

402.3.4關系運算符及關系表達式運算符功能表達式舉例結果<小于15<4*6.T.>大于‘A’>‘1’.T.=等于2+4=3*5.F.<>、#、!=不等于5<>-10.T.<=小于或等于'abc'<='AB'.F.>=大于或等于{^2010-10-02}>={^2010-09-20}.T.==字符串恒同‘abc’==’abcabc’.F.(1)關系表達式:由關系運算符、數值表達式、字符表達式或日期表達式組合而成的式子,返回結果為邏輯值。(2)關系運算符的兩邊,可以是字符表達式、數值表達式或者日期表達式,但兩邊的數據類型必須一致才能進行比較。字符數據的比較單個字符字符串以字符ASCII碼的大小,作為字符的“大小”,也就是先后順序,先空格,后小寫字母,后大寫字母;漢字系統默認按漢字的拼音排列漢字的順序,也就是以漢字的拼音順序比較“大小”字符串關系表達式基本原則從左到右逐個字符進行比較但因系統相關設置狀態不同,比較的結果與預期的不完全相同。VFP中字符的排序序列:⑴機器序列

按字符ASCII碼值排序:空格<數字<大寫字母<小寫字母<一級漢字<二級漢字⑵拼音序列漢字按拼音排序,西文字符的序列是:空格<數字<字母(小寫字母<大寫字母)<漢字⑶筆畫序列漢字按筆畫排序,西文字符的序列是:空格<數字<字母(小寫字母<大寫字母)<漢字系統默認的字符序列為拼音,可在選項對話框或SETCOLLATE命令重新設置。SetCollateto“Machine”|”Pinyin”|“Stroke”字符串關系表達式——大小比較用運算符<或>進行兩串比較時,比較到第1個不相同字符為止,否則,長度較長的串較“大”;如:“are”<“ab”

&&返回的結果為.F.,首先進行第一位字符的比較,如果相同則比較第二位字符的大小,依次類推。?“a”<“abc”&&.T.

?"a"<"A"&&.T.?“李”<“王”&&.T.這個結果絕對嗎?字符串關系表達式——相等比較默認字符串的等于(=)比較是指定非精確比較,即:只要右邊的字符串與左邊字符串的前面部分內容相匹配,則為真。可以set

exacton/off

設置是否精確比較;精確比較則首先通過在字符串后面加空格的方法使兩者長度相等,再進行比較。?”王林兵”=“王林”

&&

模糊比較下為.T.

?”王林兵”=“王林”

&&

精確比較下先變為”王林兵”=“王林

”,然后逐字符進行比較,為.F.。用運算符==進行兩串的恒同比較時,不論SETEXACT的設置如何,只有當兩串長度相同,字符相同,排列一致時才成立;?”王林兵”

==“王林”

&&

模糊比較下為.F.

?”王林兵”

==“王林”

&&

精確比較下為.F.字符串精確比較示例Setexacton?‘BCDE’=‘BC’&&.F.?‘BC’=‘BCDE’&&.F.?‘BC’=‘BC’&&.T.?‘BC’=‘BC’&&.T.?‘BCDE’=‘BCDE’&&.T.Setexactoff?‘BCDE’=‘BC’&&.T.?‘BC’=‘BCDE’&&.F.?‘BC’=‘BC’&&.T.?‘BC’=‘BC’&&.F.?‘BCDE’=‘BCDE’&&.T.在使用‘=’進行字符串比較時,其結果受setexact命令設置的系統環境的影響。在setexacton時,在字符串不等長時,首先通過在字符串后面加空格的方式時兩個字符串相等,然后再比較;在setexactoff時,如果‘=’右邊的字符串長度比左邊的短,則左邊的字符串取同右邊長度相同的子字符串參加比較。472.3.5邏輯運算符及邏輯表達式運算符功能優先級別()圓括號最高||最低.NOT.或!

邏輯非.AND.

邏輯與.OR.

邏輯或邏輯表達式:由邏輯運算符、邏輯型常量、邏輯型內存變量、邏輯型數組、返回邏輯型數據的函數和關系表達式組成,結果為邏輯型常量。邏輯與運算(AND)AL1L2串聯電路中,當燈泡L1與L2同時亮時,安培表中才有電流。ABAANDB.T..T..T..T..F..F..F..T..F..F..F..F.邏輯或運算(OR)AL1L2并聯電路中,燈泡L1和L2中有一個亮,安培表中即有電流。ABAORB.T..T..T..T..F..T..F..T..T..F..F..F.ABA.AND.BA.OR.B.NOTA.T..T..T..T..F..T..F..F..T..F..F..T..F..T..T..F..F..F..F..T.示例:8>3.AND.8<10“A”>“C”.OR.“A”<“C”.NOT.5<6邏輯與、或、非運算關系表空值NULL運算邏輯運算A=.T.A=.F.A=.NULLA.AND.NULL.NULL.F..NULL.A.OR.NULL.T..NULL..NULL..NOT.A.F..T..NULL.邏輯型數據的判斷對于以邏輯型字段進行邏輯判斷的情況,一般不用關系表達式而直接用邏輯表達式。如“性別”是一個邏輯型字段,并約定“真”表示男性,“假”表示女性。判斷某記錄對應人員是否為男性,用FOR性別,而不用FOR性別=.T.,判斷是否為女性,用FOR.NOT.性別,不用FOR性別=.F.2.3.6操作符的運算優先級53字符運算符日期和時間運算符算術運算符關系運算符邏輯運算符高低算術運算符字符串運算符最高級一元運算符“+”和“-”(正負號)**或^(乘方)*、/、和%(乘、除和余數)+和-(加和減)+和-(精確連接和非精確連接)+和-(加和減)日期運算符

關系運算符<、>、=、<=、>=、<>、#、!=、$、==各運算符優先級相同次高級邏輯運算符.NOT.或!(邏輯非).AND.(邏輯與).OR.(邏輯或)最低級練習2*3^2+2*8/4+3^2Date()={^2012-03-25}.OR..T..AND..F.250+80<27+6-3"250+80"<"27+6-3“18-5>2+3.and.5*2=1012>2.and."人">"人民“((10%3=1)and(15%2=0)).OR."電腦"<>"計算機“((10%3=1)and(15%2=0)).OR.NOT"電腦"<>"計算機"31.00.F..F..T..T..F..T..F.2.4函數56函數是一個預先編制好的計算模塊,可在VFP的任何地方被調用。系統函數數據類型類函數字符函數、數值函數、日期時間函數、測試函數、數據轉換函數數據庫類函數環境類函數輸入輸出類函數程序設計類函數用戶自定義函數2.4.1字符函數57字符及字符串處理函數的處理對象均為字符型數據,但其返回值類型卻各異。(1)求子串位置函數AT(左字符串,右字符串)——查找左字符串在右字符串中第一次出現的位置,區分大小寫,其返回值類型為數值型,從最左邊開始記數,不在,則返回0。

?AT(‘fa','myfather')

......3ATC(左字符串,右字符串)——不區分大小寫,查找左字符串在右字符串中第一次出現的位置。

X=ATC(‘fa','myFather')

?X

......32.4.1字符函數58(2)求字符串長度函數LEN(字符表達式)——返回字符表達式中字符的數目,為數值型數據。

?Len('ssdd')&&9?Len(“ABCDF”)?Len(“ABCDF”)X=“首都經貿大學”?Len(X)2.4.1字符函數59(3)刪除空格函數ALLTRIM(字符表達式)函數——刪除指定字符表達式的前后空格符。

TRIM(字符表達式)函數——刪除指定字符表達式尾部的空格符。LTRIM(字符表達式)函數——刪除指定字符表達式前面的空格符。2.4.1字符函數60(4)字符串匹配函數LIKE(字符表達式1,字符表達式2)函數——比較字符表達式1是否與字符表達式2相匹配,是則返回邏輯真,否則返回邏輯假。說明:字符表達式1中可以包含通配符*和?,*可以與任何數目的字符相匹配,?則只能與單個字符相匹配。如:x=“計算機軟件”

y=“計算機”

?LIKE(y,x),LIKE(X,Y),LIKE(“計算*”,y),LIKE(“計算*”,x),LIKE(“計算?”,y),LIKE(“計算?”,x),LIKE(“計算??”,y)

&&.F..F..T..T..F..F..T.2.4.1字符函數61(5)取子串函數SUBSTR(字符表達式,取子串的起始位置[,取子串的長度])函數——從選取的字符串表達式中選取指定長度的子串。LEFT(字符表達式,取子串的長度)——從字符表達式最左邊字符開始,返回指定數目的字符。RIGHT(字符表達式,取子串的長度)——從字符表達式最右邊字符開始,返回指定數目的字符。例如:STOR"1995/03/12"tocsrq?subs(csrq,1,4)+”年”+subs(csrq,6,2)+”月”+subs(csrq,9,2)+”日”&&結果為“1995年03月12日”?left(‘1995/03/13’,4)&&顯示“1995”?Right(‘1995/03/13’,2)&&顯示“13”?Substr(“城市經濟”,5,4)&&顯示“經濟”?Substr(“城市經濟”,2,4)&&顯示:????2.4.1字符函數63(6)空格函數SPACE(n)函數——返回由指定數目空格構成的字符串。?SAPCE(5)?‘1’+SPACE(3)+‘ABC’&&‘1ABC’

2.4.2數值函數64(1)絕對值函數ABS(數值)——求絕對值(2)最大/小數MAX(數值1,數值2,....數值N)——求最大值MIN(數值1,數值2,....數值N)——求最小值(3)取整函數INT(n)函數——整數部分。?int(-12.5)&&顯示數值-12(4)求余函數

MOD(數值1,數值2)——返回數值1除以數值2的余數,余數的小數位數與數值1相同,符號與數值2相同。?MOD(9,2)

&&1?MOD(9,-2)

&&-1?MOD(-9,2)

&&1?MOD(-9,-2)

&&-12.4.2數值函數65(5)四舍五入函數ROUND(<數值表達式1>,<數值表達式2>)——返回數值表達式1四舍五入的值,數值表達式2表示保留的小數位數。示例:?ROUND(345.6799,3)&&345.680?ROUND(345.6799,0)&&346?ROUND(345.6799,-2)&&300(6)求平方根函數SQRT(<數值表達式>)——返回數值表達式的平方根。(7)隨機函數RAND()——返回0~1之間的隨機數。2.4.3日期函數66DATE()——返回系統日期DATETIME()——返回當前系統日期和時間Time()——返回當前系統時間DAY()——返回日期或時間中的日數YEAR——返回日期或時間中的年數MOTH()——返回日期或時間中的月份數DOW()——返回日期是一周中的第幾天如何利用日期函數設計南京青奧會倒計時Tolp={^2014/08/16}?“距離南京青奧會開幕還有”,tolp-date(),’天!’綜合習題要求在主窗口自動分行顯示如下內容:“今天是:”顯示當前日期,“是星期”幾“距離五一節還有××天”672.4.4轉換函數68(1)將數值轉換為字符串

STR(數值表達式,長度,小數位)

——將數值表達式的值轉換為對應的字符串。

長度包括小數點所占字符和小數點右邊數字所占的字符。不加表示默認長度為10位,小數位數默認為0位。

如果指定長度大于整個數值的寬度,用前導空格填充返回的字符串;

如果指定長度小于數值的整數部分的數字位數,則返回一串星號,表示數值溢出;

如果指定的小數位數小于數值中的小數位數,則四舍五入截斷多余的數字。示例:x=123.456

?Str(x)

.......'

123'

?Str(x,5)

.......'

123'

?Str(x,7,2)

.......'123.46'

?Str(x,2)

.......**

?Str(x,5,2)

.......‘123.5’

//指定的寬度不夠數值的寬度,則首先保證數值的整數。

?Str(x,3,2)

......‘123’2.4.4轉換函數70(2)將字符串轉換為數值VAL(C表達式)——將由數字、小數點、正負號組成的字符型數據轉換成相應的數值型數據,轉換結果取兩位小數。該表達式最多可由16位數字字符組成,若超過16位,則對其取整,其中小數位數為2。如果字符串內出現非數字字符,則只轉換前面數字字符部分;如字符串的首字符不為數字字符(空格除外),則返回0值。示例:STORE'22'tox1STORE'23'tox2?val(x1)+val(x2)&&顯示45.00'STORE'1.25E3'tox3?2*val(x3)&&顯示2500.00x="-123.4567“y="23"z="123abc45.567“a="1245avc“b="wre123"?val(x),val(y),val(z),val(a),val(b)則結果返回-123.46,23.00,123.00,1245.00,0.00

2.4.4轉換函數(3)返回字符ASCII碼函數

ASC()函數——返回字符表達式最左邊字符的ASCII碼(4)返回ASCII對應的字符函數

CHR()函數——返回ASCII碼為數值表達式值的字符注:數值表達式的值必須在0~255之間。722.4.4轉換函數73(5)字符轉化為日期或時間型數據

CTOD(字符串)——將字符類型的日期轉換成日期類型的日期

CTOT(字符串)——把字符表達式轉換成日期時間表達式setdatetomdysetcenturyonx='01/27/2002'y='01/27/200211:12:45'

?ctod(x),ctod(y),ctot(y)

&&結果為01/27/2002//01/27/200211:12:45AM2.4.4轉換函數74(6)將日期或日期時間轉換成字符串DTOC(日期或時間[,1])函數——把日期型或日期時間數據中的日期轉換為字符串。TTOC(時間[,1|2])函數——把把日期時間型數據轉換為字符串。例如:x={^2002-01-27}y={^2002-01-2711:12:45}setdatetomdysetcenturyon?dtoc(x),dtoc(y),ttoc(y)

2.4.5其他函數75(7)條件判斷函數IIF(邏輯表達式,A,B)——根據邏輯表達式的值,返回A和B中的某一個,如表達式為T,則返回A,否則返回B。A和B的類型可以為字符、數值、貨幣、日期或日期時間型的表達式。例如:?IIF(12<13,‘WANG1’,23=34.6)&&WANG1Y=1x>0-1x<=0Y=IIF(X>0,1,-1)Y=IIF(X>0,

溫馨提示

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

評論

0/150

提交評論