計算機二級vfp第2章VF中表達式與函數(shù)課件_第1頁
計算機二級vfp第2章VF中表達式與函數(shù)課件_第2頁
計算機二級vfp第2章VF中表達式與函數(shù)課件_第3頁
計算機二級vfp第2章VF中表達式與函數(shù)課件_第4頁
計算機二級vfp第2章VF中表達式與函數(shù)課件_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

表達式與函數(shù)2023/3/152數(shù)據(jù)類型信息技術(IT-InformationTechnology)是研究信息的獲取、傳輸和處理的技術,由計算機技術、通信技術、微電子技術結合而成,有時也叫做“現(xiàn)代信息技術”。即:信息技術是利用計算機進行信息處理,利用現(xiàn)代電子通信技術從事信息采集、存儲、加工、利用以及相關產品制造、技術開發(fā)、信息服務的新學科。數(shù)據(jù)不同于信息,數(shù)據(jù)是記錄信息的一種形式,同樣的信息可以用文字、聲音或圖像等不同數(shù)據(jù)形式來表述。即:數(shù)據(jù)是記載信息的符號組合,數(shù)據(jù)類型是數(shù)據(jù)的基本屬性。2023/3/153閱讀一段資料

2007年某鋼鐵股份有限公司共生產生鐵535萬噸、鋼576萬噸、商品坯材691萬噸。實現(xiàn)營業(yè)收入329.26億元、利潤總額15.77億元,與去年同期相比分別增長22.01%、34.94%;每股收益1.1236元,與2006年同期相比增長52.78%;截至2007年底,公司總資產173.98億元,比上年增長15.67%。欲將這些數(shù)據(jù)存入數(shù)據(jù)庫中,就要利用數(shù)據(jù)庫管理系統(tǒng)所提供的各種數(shù)據(jù)類型來表示、存儲這些數(shù)據(jù)。

VisualFoxPro定義了5種基本數(shù)據(jù)類型:字符型、數(shù)值型、貨幣型、日期型、和邏輯型。2023/3/1551.1.2數(shù)值型常量

整數(shù)、小數(shù)和科學計數(shù)法表示的數(shù)據(jù)為數(shù)值型常量,一般可為正負號、數(shù)字和小數(shù)點所組成的數(shù)據(jù)。

例如:-196,3.1415926535,0.2831E+21.1.3

貨幣型常量

貨幣型常量以$或¥符號開頭,并四舍五入到小數(shù)點后4位。

例如:$88.1696,¥288應為半角字符2023/3/1561.1.4日期型和日期時間型常量

用花括號括起來的、符合約定的符號串。嚴格的日期格式為:

{^yyyy/mm/dd}

例如:{^2004/07/11}

空白日期可表示為{}或{/}

用花括號括起來符合VisualFoxPro約定的符號串。嚴格的日期時間格式為:

{^yyyy/mm/ddhh[:mm[:ss]][a|p]}

例如:{^2004/07/1111:12:30p}

日期與時間數(shù)據(jù)之間必須用空格分隔

2023/3/157

此時可根據(jù)SETDATETO命令設置使用{mm/dd/yy}、{mm-dd-yy}、{yy/mm/dd}或{yy-mm-dd}等日期格式,詳見下表所示。

設置日期格式設置日期格式AMERICANmm/dd/yyJAPANyy/mm/ddANSIyy.mm.ddUSAmm-dd-yyBRITISH/FRENCHdd/mm/yyMDYmm/dd/yyGERMANdd.mm.yyDMYdd/mm/yyITALIANdd-mm-yyYMDyy/mm/dd日期型和日期時間型常量2023/3/159系統(tǒng)變量

系統(tǒng)變量是VisualFoxPro自動生成和維護的系統(tǒng)內存變量,它們都以下劃線開頭,用于控制外部設備(如打印機、鼠標等),屏幕顯示格式,或處理有關計算器、日歷、剪貼板等方面的信息。

例如:

_DIARYDATE當前日期存儲變量。

_CLIPTEXT剪貼板文本存儲變量。

其它系統(tǒng)變量資料可查閱相關文獻。2023/3/1510字段變量

字段是包含在數(shù)據(jù)庫表文件記錄中的數(shù)據(jù)項,不但不同記錄的同一字段可以取不同值,而且同一記錄的同一字段,在不同時刻也可取不同的值。因此字段是一個變量,稱之為字段變量。

注意:字段的類型和寬度是在創(chuàng)建表結構時定義的,要改變只有通過修改表的結構來實現(xiàn)。字段變量的賦值不能通過賦值語句進行,它的值在表數(shù)據(jù)錄入時輸入,也可用命令來修改。內存變量常簡稱為變量,而字段變量則簡稱為字段2023/3/15111.2變量

(1)、內存變量命名規(guī)則以字母(漢字)或下劃線開頭,由字母(漢字)、數(shù)字或下劃線組成,最多254個字符,不可與系統(tǒng)保留字同名。

例如:Student_No,圖層編號注意,一個漢字占用兩個字符位置命令關鍵字、子句、函數(shù)名和系統(tǒng)變量等命令格式:SAVETO<內存變量文件名>[ALLLIKE|EXCEPT<通配符>]RESTOREFROM<內存變量文件名>[ADDITIVE]功能:

SAVE命令把指定的內存變量儲存在內存變量文件里,而RESTORE命令能把指定內存變量文件中的內存變量調入當前的內存?zhèn)溆谩#?)、內存變量文件的建立與調用說明:(i)在<通配符>中允許使用符號“?”(代表單個字符)與“*”(代表多個字符)??蛇x項[ALLLIKE<通配符>]表示儲存于通配符相匹配的內存變量;[ALLEXCEPT<通配符>]表示除去與通配符相匹配的變量以外的所有內存變量;缺省可選項則儲存全部內存變量。例:SAVETOA:f1

把全部內存變量存儲到A盤中名為f1的文件中去。

SAVETOf2ALLLIKEA*

把所有以A為首的內存變量儲存到當前目錄中名為f2的文件中。SAVETOf3ALLEXCEPT?B*除第二個字符為B意外的所有內存變量儲存到f3的文件中。(3)、內存變量文件的建立與調用(ii)內存變量的文件的擴展名為MEM。(iii)RESTORE命令中若缺省可選項[ADDITIVE],則調入內存變量文件中的變量之前須先把當前的內存變量全部清除,否則清除工作不進行,只在原有的基礎上把指定的文件中的變量添加進去。(3)、內存變量文件的建立與調用命令格式:LISTMEMORY[LIKE<通配符>][TOPRINT]DISPLAYMEMORY[LIKE<通配符>][TOPRINT]功能:顯示當前已定義的內存變量名、值、類型及其作用范圍,并同時顯示當前內存變量總的個數(shù)、字節(jié)數(shù)等。[TOPRINT]能把屏幕顯示信息輸出到打印機。

運行46頁下方程序(5)、內存變量的顯示

1.3、運算符FoxPro中的運算符有四類:算術運算符字符運算符關系運算符邏輯運算符(一)、算術運算符

+、-、*、/、^或**、%分別對應于加、減、乘、除、乘方和取余運算運算順序:運算優(yōu)先級從高到低為:乘方→乘、除、取余→加、減,同級運算從左至右,有括號則先計算括號內的部分。(二)、字符運算符+:字符串連接運算符,用于連接兩個字符串。

-:字符串連接運算符,用于連接兩個字符串,與+的區(qū)別在于將前一個字符串尾部空格移到連接后的字符串末尾。

例如:

?[abc□]+[defg]&&結果為abc□defg?[abc□]-[defg]&&結果為abcdefg□運算的對象和運算結果都是字符型數(shù)據(jù)。1.3、運算符1.3、運算符(四)、邏輯運算符

運算結果為邏輯型:.T.或.F.。邏輯型運算符NOT(邏輯非)、AND(邏輯與)和OR(邏輯或),運算優(yōu)先級從高到低為:NOT→AND→OR。

若A、B為邏輯型數(shù)據(jù),則兩者之間的邏輯運算規(guī)則如下表所示。ABNOTANOTBAANDBAORB.T..T..F..F..T..T..T..F..F..T..F..T..F..T..T..F..F..T..F..F..T..T..F..F.VFP算術、關系、邏輯運算符運算優(yōu)先級運算符意義運算舉例(注解表示顯示結果)算術8()圓括號7^或**乘方?3^2&&9 6×乘/除%取模:取兩數(shù)相除的余數(shù)?15%4&&35+加-減關系

4<小于?63<54&&.F.<=小于等于?{01/01/92}<={01/01/92}&.T.>大于?"ABC">"AAAA"&&.T.>=大于等于?"大專">="大學"&&.T.=相等:串比較時串首同就得真?"ABC"="AB"&&.T.==完全相等:兩串全同才得真?"ABC"=="AB“&&.F.<>、#或!=不相等?.T.<>.F.&&.T.$包含:左串是右串子串才得真?"BC"$"ABCD"&&.T.邏輯3NOT或!非:結果是右邊邏輯值的反?NOT"BC"$"ABCD"&&.F.2AND與:兩邊都真才得真?.T.AND"ABC">"AB"&&.F.1OR或:兩邊有一為真就得真?.T.OR4=5&&.T.1.4、表達式把常量、變量、函數(shù)用運算符和圓括號連接起來的用于描述數(shù)據(jù)之間運算關系的式子稱為數(shù)據(jù)運算表達式,簡稱表達式。單個常量、變量、函數(shù)可認為是表達式的特例。

表達式的運算結果是一個值,類型由表達式值的類型確定,可分為字符型、數(shù)值型、邏輯型與日期型。(一)字符型表達式

組成元素包括字符型常量、變量、函數(shù)和字符型運算符,運算結果為字符型。字符型運算符借用+和-符號。?[abc□]+[defg]&&結果為abc□defg1.4、表達式注意:(1)表達式中出現(xiàn)的變量必須是當前庫文件的字段變量或者是已賦過值的內存變量或數(shù)組元素。(2)各種運算一般只能在同類型的數(shù)據(jù)之間進行,唯有日期型數(shù)據(jù)能通過加上或減去一個數(shù)值型數(shù)據(jù)而得到一個新的日期型數(shù)據(jù)。(3)一個表達式中的運算符操作順序:先算術與字符運算,再比較運算,最后邏輯運算。(4)邏輯表達式常被用來描述FoxPro命令中FOR子句及WHILE子句中的條件。1.4、表達式(四)、日期表達式組成元素包括日期型常量、變量、函數(shù)、數(shù)值型表達式和日期型運算符,運算結果為日期型。日期型運算符為“+”和“-”,運算規(guī)則如下:

(1)兩個日期型數(shù)據(jù)相減,得到的數(shù)值為兩個日期之間相差的天數(shù)。

?{^2004/7/31}-{^2004/7/15}&&顯示16

(2)一個日期型數(shù)據(jù)與一個數(shù)值型數(shù)據(jù)相加或相減,則加/減天數(shù)。

?{^2004/7/15}-50&&顯示05/26/04

(3)一個日期時間型數(shù)據(jù)與一個數(shù)值型數(shù)據(jù)相加或相減,則加/減秒數(shù)。

?{^2004/7/154:20:10a}-100&&顯示07/15/0404:18:30AM2023/3/15293函數(shù)VisualFoxPro有幾百種標準函數(shù)來支持各種計算,檢測系統(tǒng)工作狀態(tài),或做出某種判斷。函數(shù)實質上就是預先編制好的子程序,調用函數(shù)實際上就是執(zhí)行函數(shù)子程序。合理使用這些函數(shù)能增強命令或程序的功能,減少編寫的程序量。函數(shù)的組成要素(1)函數(shù)名(2)參數(shù)(3)函數(shù)值3.1輸出命令命令格式:

?|??<表達式值>功能:依次計算并顯示各表達式的值。?與??的區(qū)別在于?在顯示表達式內容之前,先發(fā)送一個回車換行符;而??則不發(fā)送回車換行符。輸出命令不但能把常量以原樣顯示出來,還能顯示內存變量、當前記錄字段變量和表達式的值。3.2幾個常用函數(shù)(1)字符串截取函數(shù)(2)字符串查找函數(shù)(3)大小寫字母的轉換函數(shù)(4)空格函數(shù)與壓縮空格函數(shù)(5)類型轉換函數(shù)(6)日期時間函數(shù)(7)涉及庫文件查詢的若干函數(shù)前四類函數(shù)的命令格式及功能如下表所示:表2.8字符處理函數(shù)函數(shù)功能例子(注解表示結果)SUBSTR(<字符表達式>,<數(shù)值表達式1>[,<數(shù)值表達式2>])返回<字符表達式>中第<數(shù)值表達式1>位起的長度為<數(shù)值表達式2>的子串?SUBSTR("ABCD",2,2)&&"BC"LEFT(<字符表達式>,<數(shù)值表達式>)返回<字符表達式>左起<數(shù)值表達式>個字符的子串?LEFT("ABCD",2)&&"AB"RIGHT(<字符表達式>,<數(shù)值表達式>)返回<字符表達式>右起<數(shù)值表達式>個字符的子串?RIGHT("ABCD",2)&&"CD"LEN(<字符表達式>)返回字符串的長度?LEN("ABCD")&&4AT(<字符表達式1>,<字符表達式2>[,<數(shù)值表達式>])返回字符串<字符表達式1>在<字符表達式2>中第<數(shù)值表達式>次出現(xiàn)的位置?AT("BC","ABCD",1)&&2ALLTRIM(<字符表達式>)刪除字符串前導和末尾的空格?ALLTRIM("ABCD")&&"ABCD"SPACE(<數(shù)值表達式>)返回<數(shù)值表達式>個空格?SPACE(4)&&""UPPER(<字符表達式>)將小寫字母轉換為大寫?UPPER("aBc")&&"ABC"LOWER(<字符表達式>)將大寫字母轉換為小寫?LOWER("aBc")&&"abc"VAL(<字符表達式>)將字符串轉換為數(shù)值?VAL("3.14")&&3.14STR(<數(shù)值表達式1>[,<數(shù)值表達式2>[,<數(shù)值表達式3>]])將數(shù)值<數(shù)值表達式1>轉換為長度為<數(shù)值表達式2>位,具有<數(shù)值表達式3>位小數(shù)的字符串?STR(3.14,5,1)&&"3.1"CHR(<數(shù)值表達式>)從<數(shù)值表達式>表示的ASCII碼返回字符?CHR(65)&&"A"ASC(<字符表達式>)返回字符的ASCII碼值?ASC("A")&&653.2幾個常用函數(shù)(5)類型轉換函數(shù)

命令格式:CTOD(<expC>)把字符型轉換成日期型DTOC(<expD>)把日期型轉換成字符型例如:?CTOD(“2/19/1993”)結果為:02/19/93(6)日期時間函數(shù)命令格式:?DATE()返回當前系統(tǒng)的日期?TIME()返回當前系統(tǒng)的時間YEAR(<expD>)從日期表達式中國求出公元年歷值例如:useshebeigo3

?Year(啟用日期)結果為:19873.2幾個常用函數(shù)(7)涉及庫文件查詢的若干函數(shù)

命令格式:

?RECNO()返回當前記錄的記錄號FSIZE(<expC>)返回由(<expC>)所指定的字段寬度EOF記錄指針是否指向文件尾BOF記錄指針是否指向文件頭FILE(<expC>)判斷由(<expC>)所指定的文件是否存在復習常量

數(shù)值型常量例如10,-100,2.81828,

字符型常量例如"微機",'PC機',"3.14159"

日期型和日期時間型常量例如{06/30/1999},{9/15/998:45},{^2001/08/30}

邏輯型常量真和假兩種值,.T..F.變量內存變量

s='VFP'STORE2*4TOn1,n2,n3?'S=',s &&顯示S=VFPDIMENSIONx(3),a(2,3)&&定義數(shù)組

a(1,3)=5&&數(shù)組元素賦值字段變量

USEsb

?名稱&&SB.DBF打開后記錄指針指向第1個記錄,顯示車床GO5&&將記錄指針指向第5個記錄(GO命令參閱2.3.1節(jié))?名稱系統(tǒng)變量2023/3/1536本章小結本章主要包括:(1)數(shù)據(jù)類型。(2)常量、變量、數(shù)組、函數(shù)。(3)運算符與表達式。很好掌握本章內容,是更好學習VisualFoxPro操作和編程的基礎。建議多練習各種表達式的綜合應用2.3VFP命令的常用子句

命令格式:LIST|DISPLAY[[FIELDS]<表達式表>][<范圍>][FOR<條件>][WHILE<條件>][OFF][TOPRINT[PROMPT]|TOFILE<文件>]

范圍子句:

ALL所有記錄

NEXT<N>從當前記錄起的N個記錄

RECORD<N>第N個記錄

REST從當前記錄起到最后一個記錄止的所有記錄例:

USEsbGO2&&記錄指針指向第2個記錄

LISTNEXT5FOR價格>10000&&顯示第2,3,6等3個記錄

LISTRECORD5FIELDS編號,名稱,價格

USEsbLISTNEXT3&&(1)LIST部門,編號,名稱,備注FOR部門="21"&&(2)LIST編號,名稱,價格*0.9,啟用日期FORYEAR(啟用日期)<1995OFF&&(3)2.4表的維護命令

1.表的復制COPYFILE<文件名1>TO<文件名2>COPYTO<文件名>[<范圍>][FOR<條件>][WHILE<條件>][FIELDS<字段名表>|FIELDSLIKE<通配字段名>|FIELDSEXCEPT<通配字段名>][[TYPE][SDF|XLS|DELIMITED[WITH<定界符>|WITHBLANK|WITHTAB]]]COPYSTRUCTURETO<文件名>[FIELDS<字段名表>]例:

USE &&若SB.DBF是打開的,則須關閉它

COPYTOSB1.DBF&&復制得SB1.DBFCOPYTOSB1.FPT&&復制得SB1.FPTUSEsbCOPYTOa1&&對sb.dbf原樣復制,同時生成A1.DBF與A1.FPTCOPYTOa2FIELDS名稱,編號FORLEFT(部門,1)=“2”LIST&&顯示SB.DBF的記錄數(shù)據(jù)

USEa2LIST&&顯示A2.DBF的記錄數(shù)據(jù)

USEsbCOPYTOb1NEXT3SDF&&以系統(tǒng)數(shù)據(jù)格式復制,產生文本文件B1.TXTCOPYSTRUCTURETOsb2FIELDS名稱,價格,編號,備注2.表數(shù)據(jù)的替換REPLACE<字段名1>WITH<表達式1>[ADDITIVE][,<字段名2>WITH<表達式2>[ADDITIVE]]...[<范圍>][FOR<條件>][WHILE<條件>]SCATTER[FIELDS<字段名表>|FIELDSLIKE<通配字段名>|FIELDSEXCEPT<通配字段名>][MEMO]TO<數(shù)組名>[BLANK]|MEMVAR[BLANK]GATHERFROM<數(shù)組名>|MEMVAR[FIELDS<字段名表>|FIELDSLIKE<通配字段名>|FIELDSEXCEPT<通配字段名>][MEMO]COPYTOARRAY<數(shù)組名>[FIELDS<字段名表>][<范圍>][FOR<條件>][WHILE<條件>]APPENDFROMARRAY<數(shù)組名>[FOR<條件>][FIELDS<字段名表>]3.邏輯表的設置

過濾器

SETFILTERTO[<條件>]字段表

SETFIELDSTO[[<字段名1>[,<字段名2>...]]|ALL[LIKE<通配字段名>|EXCEPT<通配字段名>]]

SETFIELDSON|OFF4.建立或修改表結構的命令

命令:CREATETABLE<表名>(<字段名1><字段類型>[(<字段寬度>[,<小數(shù)位數(shù)>])][,<字段名2>...])ALTERTABLE<表名>ADD|ALTER[COLUMN]<字段名><字段類型>[(<字段寬度>[,<小數(shù)位數(shù)>])]ALTERTABLE<表名>DROP[COLUMN]<字段名1>|RENAMECOLUMN<字段名2>TO<字段名3>例:

CREATETABLEdx(編號c(5),年月c(4),

溫馨提示

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

評論

0/150

提交評論