FoxPro的數(shù)據(jù)及其運算ppt課件_第1頁
FoxPro的數(shù)據(jù)及其運算ppt課件_第2頁
FoxPro的數(shù)據(jù)及其運算ppt課件_第3頁
FoxPro的數(shù)據(jù)及其運算ppt課件_第4頁
FoxPro的數(shù)據(jù)及其運算ppt課件_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、isualFVoxPro3.1 Visual FoxPro的數(shù)據(jù)類型的數(shù)據(jù)類型3.2 Visual FoxPro的常量與變量的常量與變量3.3 Visual FoxPro的內(nèi)部函數(shù)的內(nèi)部函數(shù)3.4 Visual FoxPro的表達式的表達式1字符型字符型字符型字符型Character數(shù)據(jù)是不能進行算術(shù)運算的數(shù)據(jù)是不能進行算術(shù)運算的文字?jǐn)?shù)據(jù)類型,用字母文字?jǐn)?shù)據(jù)類型,用字母C表示。字符型數(shù)據(jù)包表示。字符型數(shù)據(jù)包括中文字符、英文字符、數(shù)字字符和其他括中文字符、英文字符、數(shù)字字符和其他ASCII字符,其長度即字符個數(shù)范圍是字符,其長度即字符個數(shù)范圍是0254個字符。個字符。3.1 Visual Fox

2、Pro3.1 Visual FoxPro的數(shù)據(jù)類型的數(shù)據(jù)類型2數(shù)值型數(shù)值型數(shù)值型數(shù)值型Numeric數(shù)據(jù)是表示數(shù)量并可以數(shù)據(jù)是表示數(shù)量并可以進行算術(shù)運算的數(shù)據(jù)類型,用字母進行算術(shù)運算的數(shù)據(jù)類型,用字母N表示。表示。數(shù)值型數(shù)據(jù)由數(shù)字、小數(shù)點和正負號組成。數(shù)值型數(shù)據(jù)由數(shù)字、小數(shù)點和正負號組成。數(shù)值型數(shù)據(jù)在內(nèi)存中占用數(shù)值型數(shù)據(jù)在內(nèi)存中占用8個字節(jié),相應(yīng)的個字節(jié),相應(yīng)的字段變量其長度數(shù)據(jù)位數(shù)最大字段變量其長度數(shù)據(jù)位數(shù)最大20位。位。在在Visual FoxPro中,具有數(shù)值特征的數(shù)據(jù)類中,具有數(shù)值特征的數(shù)據(jù)類型還有整型型還有整型Integer)、浮點型)、浮點型Float和雙精度型和雙精度型Doubl

3、e),不過這),不過這3種數(shù)據(jù)類種數(shù)據(jù)類型只能用于字段變量。型只能用于字段變量。3貨幣型貨幣型 貨幣型貨幣型Currency數(shù)據(jù)是為存儲貨幣值而使用的一數(shù)據(jù)是為存儲貨幣值而使用的一種數(shù)據(jù)類型,它默認保留種數(shù)據(jù)類型,它默認保留4位小數(shù),占據(jù)位小數(shù),占據(jù)8字節(jié)存儲字節(jié)存儲空間。貨幣型數(shù)據(jù)用字母空間。貨幣型數(shù)據(jù)用字母Y表示。表示。4日期型日期型日期型日期型Date數(shù)據(jù)是表示日期的數(shù)據(jù),用字母數(shù)據(jù)是表示日期的數(shù)據(jù),用字母D表表示。日期的默認格式是示。日期的默認格式是mm/dd/yy,其中,其中mm表示表示月份,月份,dd表示日期,表示日期,yy表示年度,年度也可以是表示年度,年度也可以是4位。日期型數(shù)

4、據(jù)的長度固定為位。日期型數(shù)據(jù)的長度固定為8位。日期型數(shù)據(jù)的位。日期型數(shù)據(jù)的顯示格式有多種,它受系統(tǒng)日期格式設(shè)置的影響。顯示格式有多種,它受系統(tǒng)日期格式設(shè)置的影響。5日期時間型日期時間型 日期時間型日期時間型Date Time數(shù)據(jù)是表示日期和時間數(shù)據(jù)是表示日期和時間的數(shù)據(jù),用字母的數(shù)據(jù),用字母T表示。日期時間的默認格式是表示。日期時間的默認格式是mm/dd/yyyy hh:mm:ss,其中,其中mm、dd、yyyy的意的意義與日期型相同,而義與日期型相同,而hh表示小時,表示小時,mm表示分鐘,表示分鐘,ss表示秒數(shù)。日期時間型數(shù)據(jù)也是采用固定長度表示秒數(shù)。日期時間型數(shù)據(jù)也是采用固定長度8位,位

5、,取值范圍是:日期為取值范圍是:日期為01/01/000112/31/9999,時間,時間為為00:00:0023:59:59。如。如08/16/2019 10:35:30表表示示2019年年8月月16日日10時時35分分30秒這一日期和時間。秒這一日期和時間。6邏輯型邏輯型邏輯型邏輯型Logic數(shù)據(jù)是描述客觀事物真假數(shù)據(jù)是描述客觀事物真假的數(shù)據(jù)類型,表示邏輯判斷的結(jié)果,用字的數(shù)據(jù)類型,表示邏輯判斷的結(jié)果,用字母母L表示。邏輯型數(shù)據(jù)只有真(表示。邏輯型數(shù)據(jù)只有真(.t.或或.y.)和)和假(假(.f.或或.n.)兩種,長度固定為)兩種,長度固定為1位。位。7備注型備注型 備注型備注型Memo數(shù)

6、據(jù)是用于存放較多字符的數(shù)據(jù)數(shù)據(jù)是用于存放較多字符的數(shù)據(jù)類型,用字母類型,用字母M表示。備注型數(shù)據(jù)沒有數(shù)據(jù)長度限表示。備注型數(shù)據(jù)沒有數(shù)據(jù)長度限制,僅受限于磁盤空間。它只用于表中字段類型的制,僅受限于磁盤空間。它只用于表中字段類型的定義,字段長度固定為定義,字段長度固定為4個字節(jié),實際數(shù)據(jù)存放在個字節(jié),實際數(shù)據(jù)存放在與表文件同名的備注文件(與表文件同名的備注文件(.fpt中,長度根據(jù)數(shù)中,長度根據(jù)數(shù)據(jù)的內(nèi)容而定。據(jù)的內(nèi)容而定。8通用型通用型通用型通用型General數(shù)據(jù)是存儲數(shù)據(jù)是存儲OLE對象鏈對象鏈接與嵌入對象的數(shù)據(jù)類型,用字母接與嵌入對象的數(shù)據(jù)類型,用字母G表示。表示。通用型數(shù)據(jù)中的通用型數(shù)

7、據(jù)中的OLE對象可以是電子表格、文對象可以是電子表格、文檔、圖形、聲音等。它只用于表中字段類型的檔、圖形、聲音等。它只用于表中字段類型的定義。通用型數(shù)據(jù)字段長度固定為定義。通用型數(shù)據(jù)字段長度固定為4位,實際位,實際數(shù)據(jù)長度僅受限于磁盤空間。數(shù)據(jù)長度僅受限于磁盤空間。9二進制字符型和二進制備注型二進制字符型和二進制備注型這兩類數(shù)據(jù)是以二進制格式存儲的數(shù)據(jù)類型,這兩類數(shù)據(jù)是以二進制格式存儲的數(shù)據(jù)類型,只能用在表中字段數(shù)據(jù)的定義。所存儲的數(shù)據(jù)只能用在表中字段數(shù)據(jù)的定義。所存儲的數(shù)據(jù)不受代碼頁改變的影響。不受代碼頁改變的影響。3.2.1 常量常量1字符型常量字符型常量 字符型常量是用定界符括起來的一串

8、字符。在字符型常量是用定界符括起來的一串字符。在Visual FoxPro中,定界符有中,定界符有3種:單撇號、雙撇號種:單撇號、雙撇號和方括號。如和方括號。如Central South University、410075、教授教授等都是字符型常量。等都是字符型常量。 如果某一種定界符本身是字符型常量中的字符,就如果某一種定界符本身是字符型常量中的字符,就應(yīng)選擇另一種定界符。例如,應(yīng)選擇另一種定界符。例如,Thats right!表示表示字符常量字符常量:Thats right!,含有,含有13個字符。個字符。3.2 Visual FoxPro3.2 Visual FoxPro的常量與變量的常

9、量與變量2數(shù)值型常量數(shù)值型常量 數(shù)值型常量就是平時所講的常數(shù),由數(shù)字、小數(shù)數(shù)值型常量就是平時所講的常數(shù),由數(shù)字、小數(shù)點和正負號組成。在點和正負號組成。在Visual FoxPro中,數(shù)值型常中,數(shù)值型常量有兩種表示方法:小數(shù)形式和指數(shù)形式。如量有兩種表示方法:小數(shù)形式和指數(shù)形式。如75、-3.75是小數(shù)形式的數(shù)值型常量。指數(shù)形式通常用是小數(shù)形式的數(shù)值型常量。指數(shù)形式通常用來表示那些絕對值很大或很小、而有效位數(shù)不太來表示那些絕對值很大或很小、而有效位數(shù)不太長的一些數(shù)值,對應(yīng)于日常應(yīng)用中的科學(xué)記數(shù)法。長的一些數(shù)值,對應(yīng)于日常應(yīng)用中的科學(xué)記數(shù)法。指數(shù)形式用字母指數(shù)形式用字母E來表示以來表示以10為底

10、的指數(shù),為底的指數(shù),E左邊為數(shù)字部分,稱為尾數(shù),右邊為指左邊為數(shù)字部分,稱為尾數(shù),右邊為指數(shù)部分,稱為階碼。階碼只能是整數(shù),尾數(shù)部分,稱為階碼。階碼只能是整數(shù),尾數(shù)可以是整數(shù),也可以是小數(shù)。尾數(shù)與階數(shù)可以是整數(shù),也可以是小數(shù)。尾數(shù)與階碼均可正可負。例如,常量碼均可正可負。例如,常量0.694710-6、4.9523109分別用指數(shù)形式表示為分別用指數(shù)形式表示為0.6947E-6、4.9523E9。3貨幣型常量貨幣型常量貨幣型常量的書寫格式與數(shù)值型常量類似,但要加上貨幣型常量的書寫格式與數(shù)值型常量類似,但要加上一個前置的一個前置的$。貨幣型數(shù)據(jù)在存儲和計算時,采用。貨幣型數(shù)據(jù)在存儲和計算時,采用

11、4位小數(shù)。如果一個貨幣型常量多于位小數(shù)。如果一個貨幣型常量多于4位小數(shù),那么位小數(shù),那么系統(tǒng)會自動將多余的小數(shù)位四舍五入。例如,貨幣系統(tǒng)會自動將多余的小數(shù)位四舍五入。例如,貨幣型常量型常量$3.1415926將存儲為將存儲為$3.1416。貨幣型常量不。貨幣型常量不能采用指數(shù)形式。能采用指數(shù)形式。4日期型常量日期型常量日期型常量要放在一對花括號中,花括號內(nèi)包括年、日期型常量要放在一對花括號中,花括號內(nèi)包括年、月、日月、日3部分內(nèi)容,各部分內(nèi)容之間用分隔符分隔。部分內(nèi)容,各部分內(nèi)容之間用分隔符分隔。分隔符可以是分隔符可以是/、-、.等。等。Visual FoxPro的默認日期的默認日期格式是格式

12、是mm/dd/yyyy。5日期時間型常量日期時間型常量 日期時間型常量也要放在一對花括號中,其中既含日期時間型常量也要放在一對花括號中,其中既含日期又含時間。日期的格式與日期型常量相同,時日期又含時間。日期的格式與日期型常量相同,時間包括時、分、秒,時分秒之間用間包括時、分、秒,時分秒之間用“:”分隔。日期分隔。日期時間型常量的默認格式是:時間型常量的默認格式是: mm/dd/yyyy , hh:mm:ssa|p 其中其中hh、mm、ss的默認值分別為的默認值分別為12、0和和0。a和和p分別表示分別表示AM上午和上午和PM下午),默認為下午),默認為AM。如果指定時間大于等于如果指定時間大于

13、等于12,則自然為下午的時間。,則自然為下午的時間。 日期值和日期時間值的輸入格式與輸出格式并不完日期值和日期時間值的輸入格式與輸出格式并不完全相同,特別是輸出格式受系統(tǒng)環(huán)境設(shè)置的影響,全相同,特別是輸出格式受系統(tǒng)環(huán)境設(shè)置的影響,用戶可根據(jù)應(yīng)用需要進行相應(yīng)設(shè)置。下面介紹有關(guān)用戶可根據(jù)應(yīng)用需要進行相應(yīng)設(shè)置。下面介紹有關(guān)命令。命令。(1日期格式中的世紀(jì)值日期格式中的世紀(jì)值 通常日期格式中用通常日期格式中用2位數(shù)表示年份,但涉及到世紀(jì)位數(shù)表示年份,但涉及到世紀(jì)問題就不便區(qū)分。問題就不便區(qū)分。Visual FoxPro提供設(shè)置命令對此提供設(shè)置命令對此進行相應(yīng)設(shè)置。進行相應(yīng)設(shè)置。命令格式:命令格式:SE

14、T CENTURY ON | OFF | TO nCentury命令功能:用于設(shè)置顯示日期時是否顯示世紀(jì)。命令功能:用于設(shè)置顯示日期時是否顯示世紀(jì)。其中,其中,ON表示日期值輸出時顯示年份值,即日表示日期值輸出時顯示年份值,即日期數(shù)據(jù)顯示期數(shù)據(jù)顯示10位,年份占位,年份占4位。位。OFF默認值默認值表示日期值輸出時不顯示年份值,即日期數(shù)據(jù)顯表示日期值輸出時不顯示年份值,即日期數(shù)據(jù)顯示示8位,年份占位,年份占2位。位。TO nCentury指定日期數(shù)指定日期數(shù)據(jù)所對應(yīng)的世紀(jì)值,據(jù)所對應(yīng)的世紀(jì)值,nCentury是一個是一個199的整的整數(shù),代表世紀(jì)數(shù)。數(shù),代表世紀(jì)數(shù)。(2設(shè)置日期顯示格式設(shè)置日期

15、顯示格式用戶可以調(diào)整、設(shè)置日期的顯示輸出格式。用戶可以調(diào)整、設(shè)置日期的顯示輸出格式。命令格式:命令格式:SET DATE TO AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITLIAN | JAPAN | USA | MDY | DMY | YMD | SHORT | LONG命令功能:設(shè)置日期的顯示輸出格式。系統(tǒng)默認為命令功能:設(shè)置日期的顯示輸出格式。系統(tǒng)默認為AMERICAN美國日期格式)。如果日期格式設(shè)美國日期格式)。如果日期格式設(shè)置為置為SHORT或或LONG格式,格式,Visual FoxPro將按將按Windows系統(tǒng)設(shè)置的短日期格式

16、或長日期格式顯示系統(tǒng)設(shè)置的短日期格式或長日期格式顯示輸出日期數(shù)據(jù),而且輸出日期數(shù)據(jù),而且SET CENTURY命令的設(shè)置被命令的設(shè)置被忽略。忽略。(3設(shè)置日期分隔符設(shè)置日期分隔符命令格式:命令格式:SET MARK TO 日期分隔符日期分隔符命令功能:設(shè)置顯示日期時使用的分隔符,如命令功能:設(shè)置顯示日期時使用的分隔符,如/、-、.等。如沒有指定任何分隔符,則恢復(fù)系統(tǒng)默認的斜等。如沒有指定任何分隔符,則恢復(fù)系統(tǒng)默認的斜杠分隔符。杠分隔符。(4設(shè)置日期設(shè)置日期2000年兼容性年兼容性通常日期型和日期時間型數(shù)據(jù)的結(jié)果,與通常日期型和日期時間型數(shù)據(jù)的結(jié)果,與SET DATE命令和命令和SET CENT

17、URY命令設(shè)置狀態(tài)及當(dāng)前系統(tǒng)時命令設(shè)置狀態(tài)及當(dāng)前系統(tǒng)時間有關(guān)。由于系統(tǒng)時間與相應(yīng)設(shè)置不同,同一數(shù)據(jù)間有關(guān)。由于系統(tǒng)時間與相應(yīng)設(shè)置不同,同一數(shù)據(jù)的結(jié)果可能有不同的解釋。如日期值的結(jié)果可能有不同的解釋。如日期值10/11/12可以可以解釋為解釋為1912年年10月月11日、日、2019年年10月月11日、日、1912年年11月月10日、日、1910年年11月月12日或者日或者2019年年11月月12日等。日等。這顯然會導(dǎo)致系統(tǒng)混亂,而且還可能造成這顯然會導(dǎo)致系統(tǒng)混亂,而且還可能造成2000年兼年兼容性錯誤,影響系統(tǒng)正常運行。容性錯誤,影響系統(tǒng)正常運行。 Visual FoxPro增加了一種所謂嚴(yán)格

18、的日期格式。不增加了一種所謂嚴(yán)格的日期格式。不論哪種設(shè)置,按嚴(yán)格日期格式表示的日期型和日期論哪種設(shè)置,按嚴(yán)格日期格式表示的日期型和日期時間型數(shù)據(jù),都具有相同的值和表示形式。嚴(yán)格的時間型數(shù)據(jù),都具有相同的值和表示形式。嚴(yán)格的日期格式是日期格式是: yyyy-mm-dd,hh:mm:ssa|p 其中,其中,表明該格式是嚴(yán)格的日期格式,并按照表明該格式是嚴(yán)格的日期格式,并按照YMD的格式解釋日期型和日期時間型數(shù)據(jù),它是嚴(yán)格日的格式解釋日期型和日期時間型數(shù)據(jù),它是嚴(yán)格日期格式的標(biāo)志,不可缺少。有效的日期型和日期時期格式的標(biāo)志,不可缺少。有效的日期型和日期時間型數(shù)據(jù)分隔符為:間型數(shù)據(jù)分隔符為:/、-、.

19、和空格。如和空格。如2019-08-16、2019-08-16 10:35:30a,分別以嚴(yán)格的日期,分別以嚴(yán)格的日期格式表示格式表示2019年年8月月16日及該日上午日及該日上午10時時35分分30秒。秒。 Visual FoxPro默認采用嚴(yán)格的日期格式,并以此檢默認采用嚴(yán)格的日期格式,并以此檢測所有日期型和日期時間型數(shù)據(jù)的格式是否規(guī)范、測所有日期型和日期時間型數(shù)據(jù)的格式是否規(guī)范、合法。合法。命令格式:命令格式:SET STRICTDATE TO 0 | 1 | 2命令功能:用于設(shè)置是否對日期格式進行檢測。其中,命令功能:用于設(shè)置是否對日期格式進行檢測。其中,0表示不進行嚴(yán)格的日期格式檢測

20、。表示不進行嚴(yán)格的日期格式檢測。1表示進行嚴(yán)格表示進行嚴(yán)格的日期格式檢測默認值),要求所有日期型和日的日期格式檢測默認值),要求所有日期型和日期時間型數(shù)據(jù)均按嚴(yán)格的格式。期時間型數(shù)據(jù)均按嚴(yán)格的格式。2表示進行嚴(yán)格的表示進行嚴(yán)格的日期格式檢測,并且對日期格式檢測,并且對CTOD和和CTOT函數(shù)的格式函數(shù)的格式也有效。省略各選項時,恢復(fù)系統(tǒng)默認值,等價于也有效。省略各選項時,恢復(fù)系統(tǒng)默認值,等價于1的設(shè)置。的設(shè)置。除了利用命令方式設(shè)置外,也可以用菜單除了利用命令方式設(shè)置外,也可以用菜單方式進行設(shè)置設(shè)置。在方式進行設(shè)置設(shè)置。在“工具菜單中選工具菜單中選擇擇“選項選項”,將打開,將打開“選項對話框,在

21、選項對話框,在“區(qū)域選項卡中可以設(shè)置日期和時間的區(qū)域選項卡中可以設(shè)置日期和時間的顯示格式。在顯示格式。在“常規(guī)選項卡中可以設(shè)置常規(guī)選項卡中可以設(shè)置2000年兼容性。年兼容性。6邏輯型常量邏輯型常量 邏輯型常量表示邏輯判斷的結(jié)果,只需邏輯型常量表示邏輯判斷的結(jié)果,只需“真和真和“假兩種值。在假兩種值。在Visual FoxPro中,邏輯真中,邏輯真用用.T.、.t.、.Y.或或.y.表示,邏輯假用表示,邏輯假用.F.、.f.、.N.或或.n.表示。注意字母前后的圓點一定不能丟。表示。注意字母前后的圓點一定不能丟。3.4.2 變量變量 變量是在操作過程中可以改變其值的數(shù)據(jù)對象。在變量是在操作過程中

22、可以改變其值的數(shù)據(jù)對象。在Visual FoxPro中變量分為字段變量、內(nèi)存變量、數(shù)中變量分為字段變量、內(nèi)存變量、數(shù)組變量和系統(tǒng)變量組變量和系統(tǒng)變量4類。此外,作為面向?qū)ο蟮某填悺4送?,作為面向?qū)ο蟮某绦蛟O(shè)計語言,序設(shè)計語言,Visual FoxPro在進行面向?qū)ο蟮某绦蛟谶M行面向?qū)ο蟮某绦蛟O(shè)計中引入了對象的概念,對象實質(zhì)上也是一類變設(shè)計中引入了對象的概念,對象實質(zhì)上也是一類變量。確定一個變量,需要確定其量。確定一個變量,需要確定其3個要素:變量名、個要素:變量名、數(shù)據(jù)類型和變量值。數(shù)據(jù)類型和變量值。1命名規(guī)則命名規(guī)則(1使用字母、漢字、下劃線和數(shù)字命名。使用字母、漢字、下劃線和數(shù)字命名。(2

23、命名以字母或下劃線開頭。除自由表中命名以字母或下劃線開頭。除自由表中字段名、索引的字段名、索引的TAG標(biāo)識名最多只能標(biāo)識名最多只能10個字個字符外,其他的命名可使用符外,其他的命名可使用1128個字符。個字符。(3為避免誤解、混淆,避免使用為避免誤解、混淆,避免使用Visual FoxPro的保留字。的保留字。(4文件名的命名應(yīng)遵循操作系統(tǒng)的約定。文件名的命名應(yīng)遵循操作系統(tǒng)的約定。2字段變量字段變量 字段變量就是表中的字段名,它是表中最基本的數(shù)字段變量就是表中的字段名,它是表中最基本的數(shù)據(jù)單元。字段變量是一種多值變量,一個表有多少據(jù)單元。字段變量是一種多值變量,一個表有多少條記錄,那么該表的每

24、一字段就有多少個值,當(dāng)用條記錄,那么該表的每一字段就有多少個值,當(dāng)用某一字段名做變量時,它的值就是表記錄指針?biāo)改骋蛔侄蚊鲎兞繒r,它的值就是表記錄指針?biāo)傅哪菞l記錄對應(yīng)字段的值。字段變量的類型可以是的那條記錄對應(yīng)字段的值。字段變量的類型可以是Visual FoxPro的任意數(shù)據(jù)類型。字段變量的名字、的任意數(shù)據(jù)類型。字段變量的名字、類型、長度等是在定義表結(jié)構(gòu)時定義的。類型、長度等是在定義表結(jié)構(gòu)時定義的。3內(nèi)存變量內(nèi)存變量 Visual FoxPro中,除了字段變量外,還有一種變中,除了字段變量外,還有一種變量,它獨立于表,是一種臨時工作單元,稱為內(nèi)量,它獨立于表,是一種臨時工作單元,稱為內(nèi)存變

25、量。內(nèi)存變量的類型有字符型、數(shù)值型、貨存變量。內(nèi)存變量的類型有字符型、數(shù)值型、貨幣型、邏輯型、日期型和日期時間型等。幣型、邏輯型、日期型和日期時間型等。 可直接用內(nèi)存變量名對內(nèi)存變量進行訪問,但若可直接用內(nèi)存變量名對內(nèi)存變量進行訪問,但若它與字段變量同名時,則應(yīng)該用如下格式進行訪它與字段變量同名時,則應(yīng)該用如下格式進行訪問:問: M.內(nèi)存變量名內(nèi)存變量名 M-內(nèi)存變量名內(nèi)存變量名(1內(nèi)存變量的賦值內(nèi)存變量的賦值給內(nèi)存變量賦值的命令有兩種格式:給內(nèi)存變量賦值的命令有兩種格式:=STORE TO 該命令先計算表達式的值,然后將表達式的值賦給一該命令先計算表達式的值,然后將表達式的值賦給一個或幾個內(nèi)

26、存變量。第一種格式只能給一個內(nèi)存變個或幾個內(nèi)存變量。第一種格式只能給一個內(nèi)存變量賦值。第二種格式可以同時給多個內(nèi)存變量賦相量賦值。第二種格式可以同時給多個內(nèi)存變量賦相同的值,各內(nèi)存變量名之間用逗號分隔。內(nèi)存變量同的值,各內(nèi)存變量名之間用逗號分隔。內(nèi)存變量的數(shù)據(jù)類型取決于表達式值的類型??梢酝ㄟ^對內(nèi)的數(shù)據(jù)類型取決于表達式值的類型。可以通過對內(nèi)存變量重新賦值來改變其值和類型。存變量重新賦值來改變其值和類型。(2內(nèi)存變量的顯示內(nèi)存變量的顯示可以用命令顯示當(dāng)前已定義的內(nèi)存變量的有關(guān)信息,可以用命令顯示當(dāng)前已定義的內(nèi)存變量的有關(guān)信息,包括變量名、作用域、類型和取值。命令格式為:包括變量名、作用域、類型和

27、取值。命令格式為:DISPLAY MEMORY LIKE TO PRINTERTO FILE L I S T M E M O R Y L I K E T O PRINTERTO FILE 其中,其中,LIKE選項表示顯示與通配符相匹配的內(nèi)存變選項表示顯示與通配符相匹配的內(nèi)存變量,在量,在中允許使用符號中允許使用符號?和和*,分別代表單,分別代表單個字符和多個字符。個字符和多個字符。TO PRINTER或或TO FILE 選項可將內(nèi)存變量的有關(guān)信息在打印機上打選項可將內(nèi)存變量的有關(guān)信息在打印機上打印出來,或者以給定的文件名存入文本文件中擴印出來,或者以給定的文件名存入文本文件中擴展名為展名為.t

28、xt)。)。 LIST命令一次顯示所有內(nèi)存變量,如果內(nèi)存命令一次顯示所有內(nèi)存變量,如果內(nèi)存變量多,一屏顯示不下,則連續(xù)向上滾動。而變量多,一屏顯示不下,則連續(xù)向上滾動。而DISPLY命令分屏顯示所有內(nèi)存變量,如果內(nèi)命令分屏顯示所有內(nèi)存變量,如果內(nèi)存變量多,顯示一屏后暫停,按任意鍵后再繼存變量多,顯示一屏后暫停,按任意鍵后再繼續(xù)顯示下一屏。續(xù)顯示下一屏。 (3內(nèi)存變量文件的建立內(nèi)存變量文件的建立將所定義的內(nèi)存變量的各種信息全都保存到一個文件將所定義的內(nèi)存變量的各種信息全都保存到一個文件中,該文件稱為內(nèi)存變量文件。其默認的擴展名中,該文件稱為內(nèi)存變量文件。其默認的擴展名為為.mem。建立內(nèi)存變量文

29、件命令的格式為:。建立內(nèi)存變量文件命令的格式為:SAVE TO ALL LIKE|EXCEPT 其中,其中,ALL表示將全部內(nèi)存變量存入文件中。表示將全部內(nèi)存變量存入文件中。ALL LIKE 表示內(nèi)存變量中所有與通配符相匹表示內(nèi)存變量中所有與通配符相匹配的內(nèi)存變量都存入文件。配的內(nèi)存變量都存入文件。ALL EXCEPT 表示把與通配符不匹配的全部內(nèi)存變量存入文件表示把與通配符不匹配的全部內(nèi)存變量存入文件中。中。(4內(nèi)存變量的恢復(fù)內(nèi)存變量的恢復(fù)內(nèi)存變量的恢復(fù)是指將已存入內(nèi)存變量文件中的內(nèi)存內(nèi)存變量的恢復(fù)是指將已存入內(nèi)存變量文件中的內(nèi)存變量從文件中讀出,裝入內(nèi)存中。其命令格式為:變量從文件中讀出,

30、裝入內(nèi)存中。其命令格式為:RESTORE FROM ADDITIVE若命令中含有若命令中含有ADDITIVE任選項,系統(tǒng)不清除內(nèi)存中任選項,系統(tǒng)不清除內(nèi)存中現(xiàn)有的內(nèi)存變量,并追加文件中的內(nèi)存變量?,F(xiàn)有的內(nèi)存變量,并追加文件中的內(nèi)存變量。(5內(nèi)存變量的清除內(nèi)存變量的清除清除內(nèi)存變量并釋放相應(yīng)的內(nèi)存空間,所采用命清除內(nèi)存變量并釋放相應(yīng)的內(nèi)存空間,所采用命令的格式為:令的格式為:CLEAR MEMORYRELEASE ALL LIKE|EXCEPT 其中第一條命令是清除所有的內(nèi)存變量,第二條其中第一條命令是清除所有的內(nèi)存變量,第二條命令是清除指定的內(nèi)存變量。命令是清除指定的內(nèi)存變量。4數(shù)組變量數(shù)組變

31、量在在Visual FoxPro中,數(shù)組變量被定義為一組變量的中,數(shù)組變量被定義為一組變量的集合,這些變量可以具有不同的數(shù)據(jù)類型。數(shù)組集合,這些變量可以具有不同的數(shù)據(jù)類型。數(shù)組由數(shù)組元素組成,每個數(shù)組元素就相當(dāng)于一個內(nèi)由數(shù)組元素組成,每個數(shù)組元素就相當(dāng)于一個內(nèi)存變量,它可以用數(shù)組名后接順序號來表示,順存變量,它可以用數(shù)組名后接順序號來表示,順序號也叫下標(biāo)。序號也叫下標(biāo)。(1數(shù)組的定義數(shù)組的定義Visual FoxPro規(guī)定,數(shù)組在使用之前必須用數(shù)組說規(guī)定,數(shù)組在使用之前必須用數(shù)組說明命令進行定義,即定義數(shù)據(jù)名、維數(shù)和大小。明命令進行定義,即定義數(shù)據(jù)名、維數(shù)和大小。其命令格式為:其命令格式為:D

32、IMENSION (,下標(biāo)上界下標(biāo)上界2),DECLARE (,下標(biāo)上界下標(biāo)上界2),兩條命令的功能完全相同,用于定義一維或二維兩條命令的功能完全相同,用于定義一維或二維數(shù)組。下標(biāo)上界是一數(shù)值量,下標(biāo)的下界由系數(shù)組。下標(biāo)上界是一數(shù)值量,下標(biāo)的下界由系統(tǒng)統(tǒng)一規(guī)定為統(tǒng)統(tǒng)一規(guī)定為1。數(shù)組一經(jīng)定義,它的每個元素都可當(dāng)作一個內(nèi)存數(shù)組一經(jīng)定義,它的每個元素都可當(dāng)作一個內(nèi)存變量來使用,因此它具有與內(nèi)存變量相同的性變量來使用,因此它具有與內(nèi)存變量相同的性質(zhì)。質(zhì)。Visual FoxPro命令行中可以使用內(nèi)存變量命令行中可以使用內(nèi)存變量的地方都能用數(shù)組元素代替。的地方都能用數(shù)組元素代替。(2數(shù)組的賦值數(shù)組的賦值

33、可以使用賦值命令給數(shù)組元素賦值,也可以給整個數(shù)可以使用賦值命令給數(shù)組元素賦值,也可以給整個數(shù)組的各個元素賦以相同的值。例如命令:組的各個元素賦以相同的值。例如命令:b=73為上面定義的二維數(shù)組為上面定義的二維數(shù)組b的的6個元素都賦以同樣的值個元素都賦以同樣的值73。在沒有向數(shù)組元素賦值之前,數(shù)組元素的初值均為邏在沒有向數(shù)組元素賦值之前,數(shù)組元素的初值均為邏輯假(輯假(.F.)值。)值。在在Visual FoxPro中,二維數(shù)組各元素在內(nèi)存中按行的中,二維數(shù)組各元素在內(nèi)存中按行的順序存儲,它們也可按一維數(shù)組元素的順序來存取順序存儲,它們也可按一維數(shù)組元素的順序來存取數(shù)據(jù)。如上述二維數(shù)組數(shù)據(jù)。如上

34、述二維數(shù)組b中的元素中的元素b(2,1)是排在第是排在第2行第行第1列,由于每一行是列,由于每一行是3個元素,所以個元素,所以b(2,1)也可也可按按b(4)表示。表示。3.3.1 數(shù)值函數(shù)數(shù)值函數(shù) 1. 求絕對值函數(shù)求絕對值函數(shù) 格式:格式:ABS() 功能:求數(shù)值型表達式的絕對值。函數(shù)值為數(shù)值型。功能:求數(shù)值型表達式的絕對值。函數(shù)值為數(shù)值型。 2. 求平方根函數(shù)求平方根函數(shù) 格式:格式:SQRT() 功能:求數(shù)值型表達式的算術(shù)平方根,數(shù)值型表達功能:求數(shù)值型表達式的算術(shù)平方根,數(shù)值型表達式的值應(yīng)不小于零。函數(shù)值為數(shù)值型。式的值應(yīng)不小于零。函數(shù)值為數(shù)值型。 3. 求指數(shù)函數(shù)求指數(shù)函數(shù) 格式:

35、格式:EXP() 功能:將數(shù)值型表達式的值作為指數(shù)功能:將數(shù)值型表達式的值作為指數(shù)x,求出,求出ex的的值。函數(shù)值為數(shù)值型。值。函數(shù)值為數(shù)值型。3.3 Visual FoxPro3.3 Visual FoxPro的內(nèi)部函數(shù)的內(nèi)部函數(shù) 4. 求對數(shù)函數(shù)求對數(shù)函數(shù)格式:格式:LOG()LOG10()功能:功能:LOG求數(shù)值型表達式的自然對數(shù),求數(shù)值型表達式的自然對數(shù),LOG10求求數(shù)值型表達式的常用對數(shù),數(shù)值型表達式的值必須數(shù)值型表達式的常用對數(shù),數(shù)值型表達式的值必須大于零。函數(shù)值為數(shù)值型。大于零。函數(shù)值為數(shù)值型。 5. 取整函數(shù)取整函數(shù)格式:格式:INT()CEILING()FLOOR()功能:

36、功能:INT取數(shù)值型表達式的整數(shù)部分。取數(shù)值型表達式的整數(shù)部分。CEILING取大于或等于指定表達式的最小整數(shù)。取大于或等于指定表達式的最小整數(shù)。FLOOR取小于或等于指定表達式的最大整數(shù)。取小于或等于指定表達式的最大整數(shù)。函數(shù)值均為數(shù)值型。函數(shù)值均為數(shù)值型。舉例:舉例:x=56.72? INT(x),INT(-x), CEILING(x),CEILING(-x),FLOOR(x),FLOOR(-x)三個函數(shù)的值依次為三個函數(shù)的值依次為56,-56,57,-56,56,-57。 6. 求余數(shù)函數(shù)求余數(shù)函數(shù) 格式:格式:MOD(,) 功能:求功能:求除以除以所得出的余數(shù),所得余數(shù)的符號和表達式所

37、得出的余數(shù),所得余數(shù)的符號和表達式2相同。相同。如果被除數(shù)與除數(shù)同號,那么函數(shù)值即為兩數(shù)相如果被除數(shù)與除數(shù)同號,那么函數(shù)值即為兩數(shù)相除的余數(shù)。如果被除數(shù)與除數(shù)異號,則函數(shù)值為除的余數(shù)。如果被除數(shù)與除數(shù)異號,則函數(shù)值為兩數(shù)相除的余數(shù)再加上除數(shù)的值。函數(shù)值為數(shù)值兩數(shù)相除的余數(shù)再加上除數(shù)的值。函數(shù)值為數(shù)值型。型。舉例:舉例:? MOD(25,7),MOD(25,-7) ,MOD(-25,7),MOD(-25,-7)輸出的函數(shù)值依次為輸出的函數(shù)值依次為4,-3,3,-4。顯然如果顯然如果M除以除以N的余數(shù)為的余數(shù)為0,則,則M能被能被N整數(shù)。例如整數(shù)。例如 x=521 x1=INT(x/100) x2

38、=INT(MOD(x,100)/10) x3=MOD(x,10) ? x1+10*x2+100*x3輸出為輸出為125。顯然。顯然x1、x2、x3分別為分別為x的百、十、個位的百、十、個位數(shù)字。數(shù)字。 7. 四舍五入函數(shù)四舍五入函數(shù)格式:格式:ROUND(,) 功能:對功能:對求值并保留求值并保留n位小數(shù),從位小數(shù),從n+1位小數(shù)起進行四舍五入位小數(shù)起進行四舍五入n的值由數(shù)值型表達式的值由數(shù)值型表達式2確確定定),若,若n小于小于0,則對,則對的整數(shù)部分按的整數(shù)部分按n的絕對值進行四舍五入。的絕對值進行四舍五入。 舉例:舉例: ? ROUND(3.1415*3,2),ROUND(156.78,

39、-1)輸出的函數(shù)值分別為輸出的函數(shù)值分別為9.42和和160。8. 求最大值和最小值函數(shù)求最大值和最小值函數(shù)格式:格式:MAX(), )MIN(, )功能:功能:MAX求求n個表達式中的最大值,個表達式中的最大值,MIN求求n個表個表達式中的最小值。表達式的類型可以是數(shù)值型、字達式中的最小值。表達式的類型可以是數(shù)值型、字符型、貨幣型、浮點型、雙精度型、日期型和日期符型、貨幣型、浮點型、雙精度型、日期型和日期時間型,但所有表達式的類型應(yīng)相同。函數(shù)值的類時間型,但所有表達式的類型應(yīng)相同。函數(shù)值的類型與自變量的類型一致。型與自變量的類型一致。舉例:舉例: ? MAX(2019-08-16,2019-

40、08-16),MIN(助助教教,講師講師,副教授副教授,教授教授)輸出的函數(shù)值分別為輸出的函數(shù)值分別為08/16/03、副教授。、副教授。9.函數(shù)函數(shù)格式:格式:PI()功能:返回圓周率功能:返回圓周率的近似值。的近似值。3.3.2 字符函數(shù)字符函數(shù)字符函數(shù)是處理字符型數(shù)據(jù)的函數(shù),其自變量或字符函數(shù)是處理字符型數(shù)據(jù)的函數(shù),其自變量或函數(shù)值中至少有一個是字符型數(shù)據(jù)。函數(shù)值中至少有一個是字符型數(shù)據(jù)。 1. 宏代換函數(shù)宏代換函數(shù) 格式:格式:&.字符表達式字符表達式 功能:代換出一個字符型內(nèi)存變量的內(nèi)容。假功能:代換出一個字符型內(nèi)存變量的內(nèi)容。假設(shè)設(shè)與后面的字符無空格分界,與后面的字符無空格分界,那

41、么那么&函數(shù)后的函數(shù)后的“.”必須有。必須有。舉例:舉例: i=1 j=2 x12=Good Good=MAX(96/01/02,65/05/01) ? x&i.&j,&x12輸出的內(nèi)容依次是輸出的內(nèi)容依次是Good和和48。又如。又如 m=245*SQRT(4) ? 34+&m輸出為輸出為524.00。 2. 求字符串長度函數(shù)求字符串長度函數(shù) 格式:格式:LEN(字符型表達式字符型表達式) 功能:求字符串的長度,即所包含的字符個數(shù)。功能:求字符串的長度,即所包含的字符個數(shù)。若是空串,則長度為若是空串,則長度為0。函數(shù)值為數(shù)值型。函數(shù)值為數(shù)值型。 3. 求子串位置函數(shù)求子串位置函數(shù)格式:格式:

42、AT(,)ATC(,) 功能:假設(shè)功能:假設(shè)的值存在于的值存在于的值中,則給出的值中,則給出在在中的開始位置,若不存在,則函數(shù)值中的開始位置,若不存在,則函數(shù)值為為0。函數(shù)值為數(shù)值型。函數(shù)值為數(shù)值型。ATC函數(shù)在子串比較時函數(shù)在子串比較時不區(qū)分字母大小寫。不區(qū)分字母大小寫。舉例:舉例: xm=李小四李小四 ? AT(李李,xm),AT(PRO,Visual FoxPro),ATC(PRO,Visual FoxPro)輸出的函數(shù)值分別為輸出的函數(shù)值分別為1、0、11。4. 取子串函數(shù)取子串函數(shù)格式:格式:LEFT(,)RIGHT(字符型表達式字符型表達式,SUBSTR(,功能:功能:LEFT函數(shù)

43、從字符型表達式左邊的第一個字符函數(shù)從字符型表達式左邊的第一個字符開始截取子串,開始截取子串,RIGHT函數(shù)從字符型表達式右邊的函數(shù)從字符型表達式右邊的第一個字符開始截取子串。若數(shù)值型表達式的值大第一個字符開始截取子串。若數(shù)值型表達式的值大于于0,且小于等于字符串的長度,則子串的長度與,且小于等于字符串的長度,則子串的長度與數(shù)值型表達式值相同。若數(shù)值型表達式的值大于字?jǐn)?shù)值型表達式值相同。若數(shù)值型表達式的值大于字符串的長度,則給出整個字符串。若數(shù)值型的表達符串的長度,則給出整個字符串。若數(shù)值型的表達式小于或等于式小于或等于0,則給出一個空字符串。,則給出一個空字符串。SUBSTR函數(shù)對字符型表達式

44、從指定位置開始截取若函數(shù)對字符型表達式從指定位置開始截取若干個字符。起始位置和字符個數(shù)分別由數(shù)值型表達干個字符。起始位置和字符個數(shù)分別由數(shù)值型表達式式1和數(shù)值型表達式和數(shù)值型表達式2決定。若字符個數(shù)省略,或字決定。若字符個數(shù)省略,或字符個數(shù)多于從起始位置到原字符串尾部的字符個數(shù),符個數(shù)多于從起始位置到原字符串尾部的字符個數(shù),則取從起始位置起,一直到字符串尾的字符串作為則取從起始位置起,一直到字符串尾的字符串作為函數(shù)值。若起始位置或字符個數(shù)為函數(shù)值。若起始位置或字符個數(shù)為0,則函數(shù)值為,則函數(shù)值為空串。顯然空串。顯然SUBSTR函數(shù)可以代替函數(shù)可以代替LEFT函數(shù)和函數(shù)和RIGHT函數(shù)的功能。函

45、數(shù)的功能。 舉例:舉例: xm=李小四李小四 ? SUBSTR(xm,1,2),LEFT(xm,1)輸出的函數(shù)值均為:李。若輸出的函數(shù)值均為:李。若xm代表職工姓名,則用這代表職工姓名,則用這兩個函數(shù)可以取出職工的姓。兩個函數(shù)可以取出職工的姓。5. 刪除字符串前后空格函數(shù)刪除字符串前后空格函數(shù)格式:格式:LTRIM()RTRIM()ALLTRIM()功能:功能:LTRIM刪除字符串的前導(dǎo)空格。刪除字符串的前導(dǎo)空格。RTRIM刪除字符串的尾部空格。刪除字符串的尾部空格。RTRIM亦可寫成亦可寫成TRIM。ALLTRIM 刪 除 字 符 串 中 的 前 導(dǎo) 和 尾 部 空 格 。刪 除 字 符 串

46、 中 的 前 導(dǎo) 和 尾 部 空 格 。ALLTRIM函數(shù)兼有函數(shù)兼有LTRIM和和RTRIM函數(shù)的功能。函數(shù)的功能。 6. 生成空格函數(shù)生成空格函數(shù) 格式:格式:SPACE() 功能:生成若干個空格,空格的個數(shù)由數(shù)值型表達功能:生成若干個空格,空格的個數(shù)由數(shù)值型表達式的值決定。式的值決定。 舉例:舉例: name=SPACE(8) ? LEN(LTRIM(name)輸出的函數(shù)值為輸出的函數(shù)值為0。7. 字符串替換函數(shù)字符串替換函數(shù) 格式:格式:STUFF(,)功能:用功能:用去替換去替換中中由起始位置開始所指定的若干個字符。起始位置和由起始位置開始所指定的若干個字符。起始位置和字符個數(shù)分別由

47、數(shù)值型表達式字符個數(shù)分別由數(shù)值型表達式1和數(shù)值型表達式和數(shù)值型表達式2指指定。如果字符型表達式定。如果字符型表達式2的值是空串,則字符型表的值是空串,則字符型表達式達式1中由起始位置開始所指定的若干個字符被刪中由起始位置開始所指定的若干個字符被刪除。除。舉例:舉例:STORE 中國中國 長沙長沙 TO x? STUFF(x,6,4,北京北京)輸出為:中國輸出為:中國 北京。北京。 8. 產(chǎn)生重復(fù)字符函數(shù)產(chǎn)生重復(fù)字符函數(shù) 格式:格式:REPLICATE(,) 功能:重復(fù)給定字符串若干次,次數(shù)由數(shù)值型表達功能:重復(fù)給定字符串若干次,次數(shù)由數(shù)值型表達式給定。式給定。舉例:舉例:? REPLICATE

48、 (*,6)輸出為:輸出為:*。 9. 大小寫字母轉(zhuǎn)函數(shù)大小寫字母轉(zhuǎn)函數(shù)格式:格式:LOWER()UPPER()功能:功能:LOWER將字符串中的大寫字母轉(zhuǎn)換成小寫。將字符串中的大寫字母轉(zhuǎn)換成小寫。UPPER將字符串中的小寫字母轉(zhuǎn)換成大寫。將字符串中的小寫字母轉(zhuǎn)換成大寫。舉例:舉例:yn=y ? UPPER(yn),LOWER(YES)輸出的函數(shù)值為:輸出的函數(shù)值為:Y、yes。在字符串中,同一字母的。在字符串中,同一字母的大小寫為不同字符,如果利用大小字母轉(zhuǎn)換函數(shù),大小寫為不同字符,如果利用大小字母轉(zhuǎn)換函數(shù),就可以不考慮字符串中的字母是大寫還是小寫。就可以不考慮字符串中的字母是大寫還是小寫。

49、3.3.3 日期和時間函數(shù)日期和時間函數(shù)日期時間函數(shù)是處理日期型或日期時間型數(shù)據(jù)的函數(shù)。日期時間函數(shù)是處理日期型或日期時間型數(shù)據(jù)的函數(shù)。1. 系統(tǒng)日期和時間函數(shù)系統(tǒng)日期和時間函數(shù)格式:格式:DATE()TIME()DATETIME() 功能:功能:DATE函數(shù)給出當(dāng)前的系統(tǒng)日期,函數(shù)值為函數(shù)給出當(dāng)前的系統(tǒng)日期,函數(shù)值為日期型。日期型。TIME函數(shù)給出當(dāng)前的系統(tǒng)時間,形式為函數(shù)給出當(dāng)前的系統(tǒng)時間,形式為hh:mm:ss,函數(shù)值為字符型。函數(shù)值為字符型。DATETIME函數(shù)給出當(dāng)前的系統(tǒng)日期和時間,函數(shù)值函數(shù)給出當(dāng)前的系統(tǒng)日期和時間,函數(shù)值為日期時間型。為日期時間型。2. 求年份、月份和天數(shù)函數(shù)求

50、年份、月份和天數(shù)函數(shù)格式:格式:YEAR(|)MONTH(|)DAY(|)功能:功能:YEAR函數(shù)返回日期表達式或日期時間型表達函數(shù)返回日期表達式或日期時間型表達式所對應(yīng)的年份值。式所對應(yīng)的年份值。MONTH函數(shù)返回日期型表達式或日期時間型表達式函數(shù)返回日期型表達式或日期時間型表達式所對應(yīng)的月份,月份以數(shù)值所對應(yīng)的月份,月份以數(shù)值112來表示。來表示。DAY函數(shù)返回日期型表達式或日期時間型表達式所對函數(shù)返回日期型表達式或日期時間型表達式所對應(yīng)月份里面的天數(shù)。應(yīng)月份里面的天數(shù)。舉例:舉例:d=2019-08-16? YEAR(d),MONTH(d),DAY(d)輸出的函數(shù)值分別為輸出的函數(shù)值分別

51、為2019、8、16。3. 求時、分和秒函數(shù)求時、分和秒函數(shù)格式:格式:HOUR()MINUTE()SEC()功能:功能:HOUR函數(shù)返回日期時間型表達式所對應(yīng)的函數(shù)返回日期時間型表達式所對應(yīng)的小時部分小時部分(按按24小時制小時制)。MINUTE函數(shù)返回日期時間型表達式所對應(yīng)的分函數(shù)返回日期時間型表達式所對應(yīng)的分鐘部分。鐘部分。SEC函數(shù)返回日期時間型表達式所對應(yīng)的秒數(shù)部分。函數(shù)返回日期時間型表達式所對應(yīng)的秒數(shù)部分。舉例:舉例:d=2019-08-16,5:43:56 P? HOUR(d),MINUTE(d),SEC(d)輸出的函數(shù)值分別為輸出的函數(shù)值分別為17、43、56。3.3.4 數(shù)據(jù)

52、類型轉(zhuǎn)換函數(shù)數(shù)據(jù)類型轉(zhuǎn)換函數(shù)1. 將字符轉(zhuǎn)換成將字符轉(zhuǎn)換成ASCII碼的函數(shù)碼的函數(shù)格式:格式:ASC()功能:給出指定字符串最左邊的一個字符的功能:給出指定字符串最左邊的一個字符的ASCII碼值。函數(shù)值為數(shù)值型。碼值。函數(shù)值為數(shù)值型。 2. 將將ASCII值轉(zhuǎn)換成相應(yīng)字符函數(shù)值轉(zhuǎn)換成相應(yīng)字符函數(shù) 格式:格式:CHR() 功能:將數(shù)值型表達式的值作為功能:將數(shù)值型表達式的值作為ASCII碼,給出碼,給出所對應(yīng)的字符。所對應(yīng)的字符。 舉例:舉例: ch1=M ch2=CHR(ASC(ch1)+ASC(a)-ASC(A) ? ch2字符變量字符變量ch2的值為的值為m。若。若ch1的值為某個大寫的

53、值為某個大寫字母,則利用求字母,則利用求ch2的表達式可求出對應(yīng)的小的表達式可求出對應(yīng)的小寫字母。留意,在寫字母。留意,在ASCII表中,字母是連續(xù)排表中,字母是連續(xù)排列的,任何一個字母其大小寫列的,任何一個字母其大小寫ASCII碼值之差碼值之差是相等的。是相等的。 3. 將字符串轉(zhuǎn)換成日期或日期時間函數(shù)將字符串轉(zhuǎn)換成日期或日期時間函數(shù) 格式:格式:CTOD() CTOT() 功能:功能:CTOD函數(shù)將指定的字符串轉(zhuǎn)換成日期型函數(shù)將指定的字符串轉(zhuǎn)換成日期型 數(shù)據(jù),數(shù)據(jù),CTOT函數(shù)將指定的字符串轉(zhuǎn)換成日期時函數(shù)將指定的字符串轉(zhuǎn)換成日期時間型數(shù)據(jù)。字符型表達式中的日期部分格式要與間型數(shù)據(jù)。字符型

54、表達式中的日期部分格式要與系統(tǒng)設(shè)置的日期顯示格式一致,其中的年份可以系統(tǒng)設(shè)置的日期顯示格式一致,其中的年份可以用用4位,也可以用位,也可以用2位。如果用位。如果用2位,則世紀(jì)值由位,則世紀(jì)值由SET CENTURY TO 命令指定。命令指定。舉例:舉例: ch1=M ch2=CHR(ASC(ch1)+ASC(a)-ASC(A) ? ch2字符變量字符變量ch2的值為的值為m。若。若ch1的值為某個大寫的值為某個大寫字母,則利用求字母,則利用求ch2的表達式可求出對應(yīng)的小寫的表達式可求出對應(yīng)的小寫字母。留意,在字母。留意,在ASCII表中,字母是連續(xù)排列的,表中,字母是連續(xù)排列的,任何一個字母其

55、大小寫任何一個字母其大小寫ASCII碼值之差是相等的。碼值之差是相等的。 4. 將日期或日期時間轉(zhuǎn)換成字符串函數(shù)將日期或日期時間轉(zhuǎn)換成字符串函數(shù) 格式:格式:DTOC(|,1) TTOC(,1) 功能:功能:DTOC函數(shù)將日期數(shù)據(jù)或日期時間數(shù)據(jù)的日函數(shù)將日期數(shù)據(jù)或日期時間數(shù)據(jù)的日期部分轉(zhuǎn)換為字符型,期部分轉(zhuǎn)換為字符型,TTOC函數(shù)將日期時間數(shù)據(jù)函數(shù)將日期時間數(shù)據(jù)轉(zhuǎn)換為字符型。字符串中日期和時間的格式受系統(tǒng)轉(zhuǎn)換為字符型。字符串中日期和時間的格式受系統(tǒng)設(shè)置的影響。對設(shè)置的影響。對DTOC來說,若選用來說,若選用1,結(jié)果為,結(jié)果為yyyymmdd格式。對格式。對TTOC來說,若選用來說,若選用1,結(jié)

56、果為,結(jié)果為yyyymmddhhmmss格式。格式。 5. 將數(shù)值轉(zhuǎn)換成字符串函數(shù)將數(shù)值轉(zhuǎn)換成字符串函數(shù) 格式:格式:STR(,) 功能:將數(shù)值型表達式功能:將數(shù)值型表達式1的值轉(zhuǎn)換成字符串。轉(zhuǎn)換的值轉(zhuǎn)換成字符串。轉(zhuǎn)換后字符串的長度由數(shù)值型表達式后字符串的長度由數(shù)值型表達式2決定,保留的小決定,保留的小數(shù)位數(shù)由數(shù)值表達式數(shù)位數(shù)由數(shù)值表達式3決定。省略數(shù)值型表達式?jīng)Q定。省略數(shù)值型表達式3時,轉(zhuǎn)換后將無小數(shù)部分。省略數(shù)值型表達式時,轉(zhuǎn)換后將無小數(shù)部分。省略數(shù)值型表達式2和和數(shù)值表達式數(shù)值表達式3時,字符串長度為時,字符串長度為10,無小數(shù)部分。,無小數(shù)部分。如果指定的長度大于小數(shù)點左邊的位數(shù),則在

57、字如果指定的長度大于小數(shù)點左邊的位數(shù),則在字符串的前面加上空格,如果指定的長度小于小數(shù)符串的前面加上空格,如果指定的長度小于小數(shù)點左邊的位數(shù),則返回指定長度個星號點左邊的位數(shù),則返回指定長度個星號*,表示出,表示出錯。錯。舉例:舉例:x=1234.587? STR(x,10,2), STR(x,10,4), STR(x,7,2), STR(x,7), STR(x,3), STR(x)輸出為:輸出為:1234.591234.58701234.591235*其中的其中的代表空格。代表空格。 6. 將字符串轉(zhuǎn)換成數(shù)值函數(shù)將字符串轉(zhuǎn)換成數(shù)值函數(shù) 格式:格式:VAL() 功能:將由數(shù)字、正負號、小數(shù)點組

58、成的字符功能:將由數(shù)字、正負號、小數(shù)點組成的字符串轉(zhuǎn)換為數(shù)值,轉(zhuǎn)換遇上非上述字符停止。若串轉(zhuǎn)換為數(shù)值,轉(zhuǎn)換遇上非上述字符停止。若串的第一個字符即非上述字符,函數(shù)值為串的第一個字符即非上述字符,函數(shù)值為0。前。前導(dǎo)空格不影響轉(zhuǎn)換。導(dǎo)空格不影響轉(zhuǎn)換。3.3.5 測試函數(shù)測試函數(shù)1. 數(shù)據(jù)類型測試函數(shù)數(shù)據(jù)類型測試函數(shù) 格式:格式:VARTYPE(,) 功能:測試引號內(nèi)表達式的數(shù)據(jù)類型,返回用功能:測試引號內(nèi)表達式的數(shù)據(jù)類型,返回用字母代表的數(shù)據(jù)類型。函數(shù)值為字符型。未定字母代表的數(shù)據(jù)類型。函數(shù)值為字符型。未定義或錯誤的表達式返回字母義或錯誤的表達式返回字母U。若表達式是一。若表達式是一個數(shù)組,則根據(jù)

59、第一個數(shù)組元素的類型返回字個數(shù)組,則根據(jù)第一個數(shù)組元素的類型返回字符串。若表達式的運算結(jié)果是符串。若表達式的運算結(jié)果是NULL值,則根值,則根據(jù)函數(shù)中邏輯表達式的值決定是否返回表達式據(jù)函數(shù)中邏輯表達式的值決定是否返回表達式的類型。具體規(guī)則是:如果邏輯表達式為的類型。具體規(guī)則是:如果邏輯表達式為.T.,則返回表達式的原數(shù)據(jù)類型。如果邏輯表達式則返回表達式的原數(shù)據(jù)類型。如果邏輯表達式為為.F.或省略,則返回或省略,則返回X,表明表達式的運算結(jié),表明表達式的運算結(jié)果是果是NULL值。值。舉例:舉例:a=DATE()a=NULL? VARTYPE(3.46),VARTYPE($385),VARTYPE

60、(FoxPro),VARTYPE(a,.T.),VARTYPE(a)輸出為:輸出為:N Y C D X。 2. 表頭測試函數(shù)表頭測試函數(shù) 格式:格式:BOF()|) 功能:測試指定或當(dāng)前工作區(qū)的記錄指針是否超過功能:測試指定或當(dāng)前工作區(qū)的記錄指針是否超過了第一個邏輯記錄,即是否指向表頭,若是,函數(shù)了第一個邏輯記錄,即是否指向表頭,若是,函數(shù)值為值為.T.,否則為,否則為.F.。用于指定工作區(qū),用于指定工作區(qū),為工作區(qū)的別名或在該工作區(qū)上打開的表的為工作區(qū)的別名或在該工作區(qū)上打開的表的別名。當(dāng)別名。當(dāng)和和都缺省不寫時,默認都缺省不寫時,默認為當(dāng)前工作區(qū)。為當(dāng)前工作區(qū)。 3. 表尾測試函數(shù)表尾測試

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論