久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

VFP常用命令小結(jié)

時(shí)間:2019-05-13 19:52:06下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《VFP常用命令小結(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《VFP常用命令小結(jié)》。

第一篇:VFP常用命令小結(jié)

VFP常用命令小結(jié)

表中不設(shè)合計(jì)字段的大體思路如下:(如有合計(jì)字段,當(dāng)然更簡(jiǎn)單,就用Replace All)Dimension Array Myarray(RECCOUNT())定義一個(gè)下標(biāo)為記錄總數(shù)的數(shù)組 Go Top Do While!Eof()

Myarray(RECNO())=字段1+字段2+字段3…… Skip Enddo

1、CREATE 作用:建立一個(gè)新的表。

格式:CREATE [<文件>|?](注意,命令字符可取前面四個(gè)字符,后面可省略不寫,即CREA,下同;中括號(hào)表示其中的參數(shù)是可選的;|管道符號(hào)表示兩個(gè)參數(shù)只能選擇一個(gè),不能同時(shí)選擇,下同。)說明:文件指建立以.dbf為擴(kuò)展名的VFP數(shù)據(jù)庫文件,在命令后面加上一個(gè)問號(hào)表示系統(tǒng)會(huì)彈出 對(duì)話框,要求用戶輸入想要建立的表名。在命令中不加文件名或問號(hào)系統(tǒng)也會(huì)彈出對(duì)話框,要求用 戶輸入想要建立的表名。

2、MODIFY STRUCTURE 作用:顯示表文件結(jié)構(gòu),并允許修改此表的結(jié)構(gòu)。格式:MODIFY STRUCTURE 說明:只有在用USE命令打開表文件以后,才能顯示或修改表文件的結(jié)構(gòu)。

3、APPEND 作用:在當(dāng)前表的尾部(無論表中有無記錄)追加記錄(在當(dāng)前表指當(dāng)前正使用的表)。格式:APPEND [BLANK] 說明:在APPEND命令后面加上BLANK參數(shù)表示在當(dāng)前表的尾部添加一條空白記錄。無BLANK參數(shù)時(shí),表示在當(dāng)前表的尾部添加一條記錄并要求用戶輸入相應(yīng)的字段內(nèi)容。

4、INSERT 作用:在表文件中間插入一個(gè)新記錄。格式:INSERT [BEFORE] [BLANK] 說明:INSERT 在當(dāng)前記錄后插入一記錄; INSERT BEFORE 在當(dāng)前記錄前插入一記錄;

INSERT BEFORE BLANK 在當(dāng)前記錄前插入一空記錄。

5、BROWSE 作用:主要用于打開瀏覽窗口,查閱表文件并同時(shí)進(jìn)行修改。格式:BROWSE

6、USE 作用:打開和關(guān)閉表文件。格式:USE [<文件名>] USE 說明:前一個(gè)命令用來打開<文件名>指定的表文件,該表如有備注型字段,則同時(shí)打開相應(yīng)的 備注文件(.fpt文件);后一個(gè)命令關(guān)閉當(dāng)前打開的表文件。

7、LIST和DISPLAY 作用:顯示表(.dbf)的內(nèi)容、結(jié)構(gòu)或狀態(tài)。

格式:LIST|DISPLAY [OFF] [<范圍>] [FIELDS] <表達(dá)式表> [WHILE <條件>] [FOR <條件>] [TO PRINT|TO FILE <文件>] LIST|DISPLAY STRUCTURE TO PRINT|TO FILE <文件>] LIST|DISPLAY STATUS [TO PRINT|TO FILE <文件>] 說明:命令帶OFF參數(shù)表示不顯示記錄號(hào),范圍指定對(duì)哪些記錄進(jìn)行操作,范圍包括:RECORD n 第幾號(hào)記錄、NEXT n 當(dāng)前記錄開始的幾個(gè)記錄、REST 自當(dāng)前記錄開始至文件末尾的所有記錄、ALL 所有的記錄。不選范圍則隱含范圍為ALL;FIELDS后跟字段名,字段名與字段名之間用逗號(hào)分 隔。WHILE后跟條件,F(xiàn)OR后面也跟條件,區(qū)別是,WHILE后的條件如果滿足,便停止查找;FOR后的 條件查找所有滿足條件的記錄。TO PRINT和TO FILE <文件>分別表示將顯示結(jié)果在打印機(jī)上打印出 來和將顯示結(jié)果輸出到文件。DISPLAY命令在顯示記錄滿屏后,要求用戶按任意鍵繼續(xù)顯示,并且在 該命令中,如果省略范圍僅顯示當(dāng)前記錄。格式中,下面兩個(gè)命令分別為顯示表結(jié)構(gòu)(STRUCTURE)和工作狀態(tài)(STATUS)。

8、記錄的定位

作用:用記錄指針(POINTER)定位記錄。格式:GO[TO] RECORD n|TOP|BOTTOM n SKIP [+|-] 說明:第一個(gè)命令又叫絕對(duì)定位,其中,RECORD n定位到n號(hào)記錄,TOP定位到第1個(gè)記錄,BOTTOM定位到最后一個(gè)記錄。第二個(gè)命令定位到第n個(gè)記錄,n是一個(gè)數(shù)值。第三個(gè)命令又叫相對(duì)定 位,它以當(dāng)前記錄為基準(zhǔn)前移(-)或后移(+)n個(gè)記錄,不選任選項(xiàng),則默認(rèn)記錄指針后移一個(gè)記錄。

9、CHANGE和EDIT 作用:顯示要編輯或修改的字段。

格式:CHANGE|EDIT [<范圍>] [FIELDS <字段名表>] [WHILE <條件>] [FOR <條件>]

10、BROWSE 作用:打開一個(gè)“瀏覽”窗口,供用戶瀏覽或修改記錄。格式:BROWSE [FIELDS <字段名表>]

11、REPLACE 作用:用表達(dá)式的值代替命令中與之相對(duì)應(yīng)的字段的內(nèi)容。

格式:REPLACE [<范圍>] <字段1> WITH <表達(dá)式1>[,<字段2> WITH <表達(dá)式2>] [FOR <條件> ] [WHILE<條件>]

12、DELETE、PACK、ZAP和RECALL 作用:分別是給要?jiǎng)h除的記錄作刪除標(biāo)記、徹底刪除、刪除所有記錄和取消被選中的表記錄的 刪除標(biāo)志。

格式:DELETE [<范圍>] [WHILE<條件>] [FOR <條件>](特例:DELETE FILE FILENAME.DBF,該命令刪除指定的表文件)PACK ZAP RECALL [<范圍>] [FOR <條件>] [WHILE<條件>]

13、SORT和INDEX 作用:分別是建立一個(gè)其記錄以新的物理順序排列的新表文件和對(duì)當(dāng)前表根據(jù)關(guān)鍵字表達(dá)式的值 從小到大排列,并存入TO后指定的索引文件名的文件或復(fù)合索引文件的一個(gè)標(biāo)識(shí)中。格式:SORT TO <文件名> ON <字段名1> [/A] [/C] [/D][,<字段名2> [/A] [/C] [/D]]...[ASCENDING|DESCENDING] [<范圍>] [FOR <條件>] [WHILE<條件>] [FIELDS<字段表>] INDEX ON <關(guān)鍵字表達(dá)式> TO <文件名> INDEX ON <關(guān)鍵字表達(dá)式> TAG <標(biāo)識(shí)名> [OF <文件名>] [FOR <條件>] 說明:第1個(gè)命令中,/A按字段名升序排序,/D按字段名降序排序,/C忽略大小寫,針對(duì)字符型 關(guān)鍵字而言,ASCENDING和DESCENDING分別表示升序和降序。第1個(gè)命令建立.dbf表文件,第2個(gè)命令 建立.idx單一索引文件,第3個(gè)命令建立.cdx復(fù)合索引文件(Compound Index)。

14、USE <表文件名> INDEX <索引文件名表>、SET INDEX TO和SET ORDER TO 作用:分別是打開表文件的同時(shí)打開索引文件、打開索引文件和改變主索引。格式:USE <表文件名> INDEX <索引文件名表> SET INDEX TO [<索引文件名表>] SET ORDER TO [<索引文件名>](特例:重新索引命令:REINDEX)

15、FIND、SEEK和LOCATE及CONTINUE 作用:前兩個(gè)命令FIND和SEEK是在一個(gè)已經(jīng)建立了索引文件的表中,定位到關(guān)鍵字中的內(nèi)容與命 令行中字符串相同的第一個(gè)記錄。后一個(gè)命令在用USE打開表文件以后,直接查詢表中字段內(nèi)容。格式:FIND <“字符串”>|<字符串> SEEK <表達(dá)式> LOCATE [<范圍>] [FOR <條件>] [WHILE<條件>] CONTINUE 說明:FIND命令與SEEK命令的區(qū)別是前者后跟字符串,而后者后跟表達(dá)式。在用LOCATE命令找到 一個(gè)匹配記錄后,可用CONTINUE命令搜索表的剩余部分來尋找其他匹配的記錄。

16、COUNT 作用:統(tǒng)計(jì)當(dāng)前表文件中符合條件的記錄數(shù)。

格式:COUNT [<范圍>] [FOR <條件>] [WHILE<條件>] [TO <內(nèi)存變量名>] 說明:內(nèi)存變量名可用除參數(shù)外的任意字符。

17、SUM 作用:對(duì)當(dāng)前表中選中記錄的全部或指定的數(shù)值字段或由指定字段組成的數(shù)值表達(dá)式累加求和。格式:SUM [<范圍>] [數(shù)值<表達(dá)式>] [TO <內(nèi)存變量名表>] [FOR <條件>] [WHILE<條件>]

18、AVERAGE 作用:對(duì)當(dāng)前表中選中記錄的全部或部分?jǐn)?shù)值型字段及其組成的表達(dá)式求平均值并顯示。格式:AVERAGE [<范圍>] [數(shù)值<表達(dá)式>] [TO <內(nèi)存變量名表>] [FOR <條件>] [WHILE<條件>]

第二篇:VFP命令、函數(shù)及程序語句解讀

VFP命令、函數(shù)及程序語句大全(1 學(xué)過VFP(Microsoft Visual FoxPro的朋友都知道它是微軟公司開發(fā)的數(shù)據(jù)庫管理系統(tǒng)。它

經(jīng)歷了從dBASE、FoxBASE、FoxPro直到VFP的發(fā)展過程。本文便以VFP 6.0為例介紹它的命令、函數(shù)

及程序語句,為學(xué)習(xí)VFP的朋友提供必要的學(xué)習(xí)參考,也為已經(jīng)精通VFP的朋友提供復(fù)習(xí)的好機(jī)會(huì)。

一、主要命令:

1、CREATE 作用:建立一個(gè)新的表。

格式:CREATE [<文件>|?](注意,命令字符可取前面四個(gè)字符,后面可省略不寫,即CREA,下

同;中括號(hào)表示其中的參數(shù)是可選的;|管道符號(hào)表示兩個(gè)參數(shù)只能選擇一個(gè),不能同時(shí)選擇,下

同。

說明:文件指建立以.dbf為擴(kuò)展名的VFP數(shù)據(jù)庫文件,在命令后面加上一個(gè)問號(hào)表示系統(tǒng)會(huì)彈出

對(duì)話框,要求用戶輸入想要建立的表名。在命令中不加文件名或問號(hào)系統(tǒng)也會(huì)彈出對(duì)話框,要求用

戶輸入想要建立的表名。

2、MODIFY STRUCTURE

作用:顯示表文件結(jié)構(gòu),并允許修改此表的結(jié)構(gòu)。格式:MODIFY STRUCTURE 說明:只有在用USE命令打開表文件以后,才能顯示或修改表文件的結(jié)構(gòu)。

3、APPEND 作用:在當(dāng)前表的尾部(無論表中有無記錄追加記錄(在當(dāng)前表指當(dāng)前正使用的表。

格式:APPEND [BLANK] 說明:在APPEND命令后面加上BLANK參數(shù)表示在當(dāng)前表的尾部添加一條空白記錄。無BLANK 參數(shù)

時(shí),表示在當(dāng)前表的尾部添加一條記錄并要求用戶輸入相應(yīng)的字段內(nèi)容。

4、INSERT 作用:在表文件中間插入一個(gè)新記錄。格式:INSERT [BEFORE] [BLANK] 說明:INSERT 在當(dāng)前記錄后插入一記錄;INSERT BEFORE 在當(dāng)前記錄前插入一記錄;INSERT BEFORE BLANK 在當(dāng)前記錄前插入一空記錄。INSERT-SQL命令追加記錄

INSERT INTO 表名[(字段1[,字段2…]];VALUES(表達(dá)式1[,表達(dá)式2…]

例:INSERT INTO XS(XH,XM,XB,XIMING VALUES(“950106”,“高山”,“男”,“”

5、UPDATE 作用:修改數(shù)據(jù)

update <表名> set <字段1=表達(dá)式1>,<字段2=表達(dá)式2...> where <條件> 例: update <表名> set <字段1,字段2...>=<表達(dá)式1,表達(dá)式2...> where <條件>

6、BROWSE 作用:主要用于打開瀏覽窗口,查閱表文件并同時(shí)進(jìn)行修改。格式:BROWSE 作用:打開一個(gè)“瀏覽”窗口,供用戶瀏覽或修改記錄。格式:BROWSE [FIELDS <字段名表>]

7、USE 作用:打開和關(guān)閉表文件。格式:USE [<文件名>] USE 說明:前一個(gè)命令用來打開<文件名>指定的表文件,該表如有備注型字段,則同時(shí)打開相應(yīng)的

備注文件(.fpt文件;后一個(gè)命令關(guān)閉當(dāng)前打開的表文件。

8、LIST和DISPLAY

作用:顯示表(.dbf的內(nèi)容、結(jié)構(gòu)或狀態(tài)。

格式:LIST|DISPLAY [OFF] [<范圍>] [FIELDS] <表達(dá)式表> [WHILE <條件>] [FOR <條件>] [TO PRINT|TO FILE <文件>] LIST|DISPLAY STRUCTURE TO PRINT|TO FILE <文件> LIST|DISPLAY STATUS [TO PRINT|TO FILE <文件>] 說明:命令帶OFF參數(shù)表示不顯示記錄號(hào),范圍指定對(duì)哪些記錄進(jìn)行操作,范圍包括:RECORD n 第幾號(hào)記錄、NEXT n 當(dāng)前記錄開始的幾個(gè)記錄、REST 自當(dāng)前記錄開始至文件末尾的所有記錄、ALL 所有的記錄。不選范圍則隱含范圍為ALL;FIELDS后跟字段名,字段名與字段名之間用逗號(hào)分

隔。WHILE后跟條件,FOR后面也跟條件,區(qū)別是,WHILE后的條件如果不滿足,便停止查找;FOR后的條件查找所有滿足條件的記錄。TO PRINT和TO FILE <文件>分別表示將顯示結(jié)果在打印機(jī)上打印出

來和將顯示結(jié)果輸出到文件。

格式中,下面兩個(gè)命令分別為顯示表結(jié)構(gòu)(STRUCTURE和工作狀態(tài)(STATUS。注:LIST命令一次連續(xù)顯示完所有記錄內(nèi)容。DISPLAY命令在顯示記錄滿屏后,要求用戶按

任意鍵繼續(xù)顯示。如果LIST與DISPLAY都無任何選擇項(xiàng)時(shí),LIST顯示文件的全部記錄, DISPLAY僅顯示當(dāng)前記錄。

9、記錄的定位

作用:用記錄指針(POINTER定位記錄。格式: 1GO[TO] RECORD n|TOP|BOTTOM 命令定位 GO [RECORD] N GO BOTTOM GO TOP 2n 3SKIP [+|-] n 說明:第一個(gè)命令又叫絕對(duì)定位,其中,RECORD n定位到n號(hào)記錄,TOP定位到第1個(gè)記錄, BOTTOM定位到最后一個(gè)記錄。第二個(gè)命令定位到第n個(gè)記錄,n是一個(gè)數(shù)值。第三個(gè)命令又叫相對(duì)定

位,它以當(dāng)前記錄為基準(zhǔn)前移(-或后移(+n個(gè)記錄,不選任選項(xiàng),則默認(rèn)記錄指針后移一個(gè)記

錄。

LOCATE [<范圍>] FOR <表達(dá)式> 范圍: ALL NEXT N RECORD N

REST

10、CHANGE和EDIT 作用:顯示要編輯或修改的字段。

格式:CHANGE|EDIT [<范圍>] [FIELDS <字段名表>] [WHILE <條件>] [FOR <條件>]

11、REPLACE 作用:用表達(dá)式的值代替命令中與之相對(duì)應(yīng)的字段的內(nèi)容。

格式:REPLACE [<范圍>] <字段1> WITH <表達(dá)式1>[,<字段2> WITH <表達(dá)式2>] [FOR <條件> ] [WHILE<條件>] 例:USE B2-1 REPLACE ALL 工資 WITH 工資+200 FOR 工資<1000 BROW

12、DELETE、PACK、ZAP和RECALL 作用:分別是給要?jiǎng)h除的記錄作刪除標(biāo)記、徹底刪除、刪除所有記錄和取消被選中的表記錄的

刪除標(biāo)志。

格式:DELETE [<范圍>] [WHILE<條件>] [FOR <條件>](特例:DELETE FILE FILENAME.DBF,該命令刪除指定的表文件

PACK

ZAP RECALL [<范圍>] [FOR <條件>] [WHILE<條件>]

13、SORT和INDEX 1SORT 作用:是建立一個(gè)其記錄以新的物理順序排列的新表文件,原文件不變.格式:SORT TO <文件名> ON <字段名1> [/A] [/C] [/D][,<字段名2> [/A] [/C] [/D>...[ASCENDING|DESCENDING] [<范圍>] [FOR <條件>] [WHILE<條件>] [FIELDS<字段表>] 2INDEX 作用: 對(duì)當(dāng)前表根據(jù)關(guān)鍵字表達(dá)式的值從小到大排列,并存入TO后指定的索引文件名的文件或復(fù)合索引文件的一個(gè)標(biāo)識(shí)中。

格式: INDEX ON <關(guān)鍵字表達(dá)式> TO <文件名> INDEX ON <關(guān)鍵字表達(dá)式> TAG <標(biāo)識(shí)名> [OF <文件名>] [FOR <條件>] 說明:第1個(gè)命令中,/A按字段名升序排序,/D按字段名降序排序,/C忽略大小寫,針對(duì)字符型

關(guān)鍵字而言,ASCENDING和DESCENDING分別表示升序和降序。第1個(gè)命令建立.dbf表文件,第2個(gè)命令建立.idx單一索引文件,第3個(gè)命令建立.cdx復(fù)合索引文件(Compound Index。

刪除索引

DELETE TAG ALL [OF 復(fù)合索引文件名]

DELETE TAG 索引標(biāo)識(shí)1 [OF 復(fù)合索引文件名1][,索引標(biāo)識(shí)2 [OF 復(fù)合索引文件名2>…

14、USE <表文件名> INDEX <索引文件名表>、SET INDEX TO和SET ORDER TO 作用:分別是打開表文件的同時(shí)打開索引文件、打開索引文件和改變主索引。并確定第一個(gè)索引文件為主控索引文件.(當(dāng)前起作用的索引文件稱為主控索引文件, 當(dāng)前起作用的索引標(biāo)識(shí)稱為主控索引

格式:USE <表文件名> INDEX <索引文件名表> SET INDEX TO [<索引文件名表>] 作用:打開當(dāng)前表的一個(gè)或多個(gè)索引文件并確定第一個(gè)索引文件為主控索引文件,該命令用于單索引文件.格式:SET INDEX TO [<索引文件表>] [ADDITIVE] 說明:(1[<索引文件表>]中第一個(gè)索引文件為主控索引文件.(2若缺省ADDITIVE選項(xiàng),則在用本命令打開索引文件時(shí),除結(jié)構(gòu)復(fù)合索引文件以外的索引文件均被關(guān)閉

SET ORDER TO [<數(shù)值表達(dá)式>]|[<單索引文件名>]|[TAG] <索引標(biāo)識(shí)> [ASCENDING|DESCENDING>(特例:重新索引命令:REINDEX 作用:對(duì)于打開表時(shí)自動(dòng)打開的復(fù)合索引文件確定主索引,也能確定主索引文件.(1 數(shù)值表達(dá)式表示已打開的索引的序號(hào).系統(tǒng)先為單索引文件編號(hào),故結(jié)構(gòu)復(fù)合索引文件的序號(hào)比單索引文件大.(2 SET ORDER TO 或 SET ORDER TO 0命令取消主索引和主索引文件,表中記錄將按物理記錄輸出.15、CLOSE INDEX 或 SET INDEX TO 單獨(dú)關(guān)閉索引文件,并不關(guān)閉與之相關(guān)的表文件

16、FIND、SEEK和LOCATE及CONTINUE 作用:前兩個(gè)命令FIND和SEEK是在一個(gè)已經(jīng)建立了索引文件的表中,定位到關(guān)鍵字中的內(nèi)容與命

令行中字符串相同的第一個(gè)記錄。后一個(gè)命令在用USE打開表文件以后,直接查詢表中字段內(nèi)容。

格式:FIND <“字符串”>|<字符串> SEEK <表達(dá)式>(表達(dá)式的數(shù)據(jù)類型可為字符型、數(shù)字型、日期型和邏輯型。LOCATE [<范圍>] [FOR <條件>] [WHILE<條件>] CONTINUE 說明:FIND命令與SEEK命令的區(qū)別是前者后跟字符串,而后者后跟表達(dá)式。在用LOCATE命令找到

一個(gè)匹配記錄后,可用CONTINUE命令搜索表的剩余部分來尋找其他匹配的記錄。

例:SET ORDER TO NL ?確定索引關(guān)鍵字為NL(年齡 FIND 28 ?找年齡字段為“28“的記錄 DISPLAY ?顯示當(dāng)前記錄

SET ORDER TO NL ?確定索引關(guān)鍵字為NL(年齡 SEEK “28”?找年齡字段為“28“的記錄

DISPLAY 17.從磁盤上刪除任意文件:(1ERASE filename|?(2DELETE FILE [filename|?]

18、COUNT 作用:統(tǒng)計(jì)當(dāng)前表文件中符合條件的記錄數(shù)。

格式:COUNT [<范圍>] [FOR <條件>] [WHILE<條件>] [TO <內(nèi)存變量名>] 說明:內(nèi)存變量名可用除參數(shù)外的任意字符。

19、SUM 作用:對(duì)當(dāng)前表中選中記錄的全部或指定的數(shù)值字段或由指定字段組成的數(shù)值表達(dá)式累加求和。

格式:SUM [<范圍>] [數(shù)值<表達(dá)式>] [TO <內(nèi)存變量名表>] [FOR <條件>] [WHILE<條件>] 20、AVERAGE 作用:對(duì)當(dāng)前表中選中記錄的全部或部分?jǐn)?shù)值型字段及其組成的表達(dá)式求平均值并顯示。

格式:AVERAGE [<范圍>] [數(shù)值<表達(dá)式>] [TO <內(nèi)存變量名表>] [FOR <條件>] [WHILE<條件>]

21、TOTAL 作用:分類匯總命令,按<表達(dá)式>做過索引或排序的表文件的數(shù)字型字段進(jìn)行分類匯總。它把與<表達(dá)式>值相同的所有記錄中的數(shù)字字段的值分別進(jìn)行求和,并各

自作為一條記錄存放在由文件指定的文件中去。在新生成的記錄中,還將包括與<表達(dá)式>值相同的所有記錄中的首項(xiàng)記錄的其他字段內(nèi)容。

格式:TOTAL TO <文件名> ON <表達(dá)式>[FIELDS <數(shù)值型字段名表>][<范圍>][FOR <邏輯表達(dá)式1>][WHILE <邏輯表達(dá)式2>] 例:USE B2-1 INDEX ON 職稱 TO ZC TATOL ON 職稱 TO B2-1T FILEDS 工資 22.APPEND FROM 作用:從其他文件向表文件添加數(shù)據(jù)。數(shù)據(jù)來源文件既可以是表文件,也可是文本文件或其他符合規(guī)定的文件。

格式:APPEND FROM <文件名>|?[FIELDS <字段名表>][FOR <邏輯表達(dá)式>] FIELDS <字段名表>和FOR <邏輯表達(dá)式>,用于源文件為表文件時(shí),指定追加記錄的字段和條件。在字段名表和邏輯表達(dá)式中的字段名,必須是在來源和目的兩個(gè)文件中公有的,共注意寬度和類型匹配。實(shí)際應(yīng)用中,數(shù)據(jù)來源文件常為表文件(.DBF和ASCII碼文本文件(.TXT 對(duì)于文本文件又有標(biāo)準(zhǔn)格式(SDF和通用格式(DELIMITED之分.例: USE B2-1 APPE FROM S3-1.TXT SDF BROWSE 23.COPY(選擇表的部分內(nèi)容生成一個(gè)新表

作用:把打開的表文件結(jié)構(gòu)及數(shù)據(jù)復(fù)制成由<文件名>所指定的并符合規(guī)定要求的文件。如果默認(rèn)全部選擇項(xiàng)和文件名的擴(kuò)展名,則結(jié)構(gòu)及全部數(shù)據(jù)都被復(fù)制,且其文件擴(kuò)展名由系統(tǒng)規(guī)定為“.DBF”。

格式:COPY TO<文件名> [FIELDS <字段名表>][<范圍>][FOR <邏輯表達(dá)式1>][WHILE <邏輯表達(dá)式2>] 格式中的或用來為新表建立一個(gè)與原表相同的結(jié)構(gòu)索引.例1: COPY TO B3-2 COPY TO S3-2.TXT SDF 例2: USE RS COPY TO RS3 FIELDS 姓名,基本工資,獎(jiǎng)金 USE RS3 LIST 24.COPY FILE復(fù)制數(shù)據(jù)整表:(可用于復(fù)制任何類型文件 COPY FILE 原文件名 TO 目標(biāo)文件名

注:復(fù)制表時(shí),還應(yīng)當(dāng)復(fù)制和它相配的備注文件(.FPT,如有備注字段和結(jié)構(gòu)復(fù)合索引文件。

當(dāng)前表應(yīng)關(guān)閉。(如果已打開表:COPY TO 新文件名 例:將RS.DBF復(fù)制為RS1.DBF COPY FILE RS.DBF TO RS1.DBF 或USE RS

COPY TO RS1 USE RS1 LIST 25.COPY STRUCTURE(只復(fù)制結(jié)構(gòu)不復(fù)制數(shù)據(jù)

作用:表文件結(jié)構(gòu)復(fù)制,生成一個(gè)指定文件名和包括指定字段的表文件結(jié)構(gòu);如有CDX或PRODUCTION選擇項(xiàng)還將為新表建立一個(gè)與源表相同的結(jié)構(gòu)索引.格式: COPY STRUCTURE TO<文件名> [FIELDS <字段名表>] 例: COPY STRUCTURE TO B3-3 FIELDS 編號(hào),姓名,何時(shí)工作,職稱 26.copy to建立結(jié)構(gòu)擴(kuò)展文件

作用:把已打開的表文件的結(jié)構(gòu)作為數(shù)據(jù)記錄復(fù)制到由<文件名>指定的庫文件中去.格式: COPY TO<文件名> STRUCTURE EXTENDED 例: USE B3-3 COPY TO B3-4 STRUCTURE EXTENDED USE B3-4 BROW 該命令可以用于測(cè)試表文件結(jié)構(gòu),也可以用于順序方式建立庫文件結(jié)構(gòu).新庫文件的結(jié)構(gòu)是一個(gè)由系統(tǒng)規(guī)定的標(biāo)準(zhǔn)結(jié)構(gòu),它由4個(gè)字段構(gòu)成: FIELD_NAME 字段名

FIELD_TYPE 字段類型 FIELD_LEN 字段寬度 FIELD_DEC 小數(shù)位數(shù) 27.常用命令: 庫表

建立數(shù)據(jù)庫: CREATE DATABASE 庫文件名.DBC 建立表: CREATE 表文件名.DBF CREATE TABLE/DBF 表名(各個(gè)字段屬性 打開數(shù)據(jù): OPEN DATABASE 庫文件名 打開表: USE 表文件名

使用非前庫的表:USE 庫名!表名 打開索引表:USE 表名 INDEX 索引名 顯示庫信息:DISP DATABASE [TO PRINTER] 顯示記錄:LIST(快速查看 BROWSE(分屏瀏覽可修改 DISP(顯示當(dāng)前記錄

關(guān)閉數(shù)據(jù)庫:CLOSE ALL(關(guān)閉所有庫、表、索引 關(guān)閉表: USE

CLOSE DATABASES(關(guān)閉當(dāng)前庫、表 CLOSE TABLES(關(guān)閉當(dāng)前表,不關(guān)庫 CLOSE INDEXES(關(guān)閉當(dāng)前索引

修改庫:MODI DATA 庫名 [NOWAIT] [NOEDIT] 修改表結(jié)構(gòu):MODI STRU ALTER TABLE 表名 ADD 字段名 ALTER TABLE 表名 ALTER 字段名 ALTER TABLE 表名 DROP 字段名 添加表:ADD TABLE 表名追加記錄: INSERT INTO 表名(字段名列表 VALUES(對(duì)應(yīng)數(shù)值 APPEND APPEND FROM 源文件 移去表:REMOVE TABLE 表名

刪除記錄:DELETE ALL FOR [條件](邏輯刪除 PACK(物理刪除 ZAP(全部徹底刪除

刪除庫:DELETE DATABASE 庫名(先關(guān)閉庫 刪除表:DELETE FILE 表名(先關(guān)閉表 VFP命令、函數(shù)及程序語句大全(2

二、常用函數(shù)

1、數(shù)學(xué)函數(shù) 函數(shù)用途

ABS(<數(shù)值表達(dá)式>絕對(duì)值,|x| CEILING(<數(shù)值表達(dá)式> >=自變量的最小整數(shù) EXP(<數(shù)值表達(dá)式>對(duì)基E的冪,e=2.71828 FLOOR(<數(shù)值表達(dá)式> <=自變量的最大整數(shù) INT(<數(shù)值表達(dá)式>取整(舍尾自變量

LOG(<數(shù)值表達(dá)式>自變量的自然對(duì)數(shù),ln x LOG10(<數(shù)值表達(dá)式>自變量的普通對(duì)數(shù),lg x MAX(<表達(dá)式1>,<表達(dá)式2>兩個(gè)值的最大值 MIN(<表達(dá)式1>,<表達(dá)式2>兩個(gè)值的最小值 MOD(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>求余數(shù) RAND([<數(shù)值表達(dá)式1>]返回偽隨機(jī)數(shù)

ROUND(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>四舍五入第一個(gè)自變量 SIGN(<數(shù)值表達(dá)式>自變量的符號(hào) SQRT(<數(shù)值表達(dá)式>平方根(正根

2、字符串操作函數(shù) 函數(shù)用途

&<內(nèi)存變量> 用于代替內(nèi)存變量?jī)?nèi)容

LEN(<字符串表達(dá)式>返回字符串表達(dá)式的字符個(gè)數(shù) SPACE(<數(shù)值表達(dá)式>生成空格

SUBSTR(<字符串表達(dá)式>,<數(shù)值表達(dá)式n>[,<數(shù)值表達(dá)式L>]求子字符串,從指定的字符串表達(dá)式第n個(gè)開始,總長(zhǎng)為L(zhǎng)的字符串

LOWER(<字符串表達(dá)式>將字符串字母轉(zhuǎn)換成小寫字母 UPPER(<字符串表達(dá)式>將字符串字母轉(zhuǎn)換成大寫字母 TRIM(<字符串表達(dá)式>刪除字符串尾空格

ASC(<字符串表達(dá)式>返回字符串表達(dá)式最左邊的第一個(gè)字符的ASCII碼 CHR(<數(shù)值表達(dá)式>將數(shù)值表達(dá)式轉(zhuǎn)換成字符

AT(<字符串表達(dá)式1>,<字符串表達(dá)式2>[,<數(shù)值表達(dá)式n>] 確定字符串表達(dá)式1在字符串表達(dá)式2中的位置,n為字符串表達(dá)式第幾次出現(xiàn) STR(<數(shù)值表達(dá)式>[,<數(shù)值表達(dá)式L>][,<數(shù)值表達(dá)式n>將數(shù)值轉(zhuǎn)換為字符串,L為數(shù)值表達(dá)式總長(zhǎng),n為小數(shù)位數(shù)

VAL(<字符串表達(dá)式>將數(shù)字字符串轉(zhuǎn)換為數(shù)字 TYPE(<表達(dá)式>檢測(cè)表達(dá)式值的數(shù)據(jù)類型 LTRIM(<字符串表達(dá)式>刪除字符串左部空格 RTRIM(<字符串表達(dá)式>刪除字符串右部空格

LEFT(<字符串表達(dá)式>,<數(shù)值表達(dá)式n>取字符串左邊部分字符,n為返回的字符個(gè)數(shù)

RIGHT(<字符串表達(dá)式>,<數(shù)值表達(dá)式n>取字符串右邊部分字符,n從右邊截取字符個(gè)數(shù)

3、表(.dbf操作函數(shù)

函數(shù)用途

BOF([<工作區(qū)號(hào)或別名>]查表文件開始函數(shù) EOF([<工作區(qū)號(hào)或別名>]表文件結(jié)尾測(cè)試函數(shù)

RECNO([<工作區(qū)號(hào)或別名>]測(cè)試當(dāng)前或指定工作區(qū)表的當(dāng)前記錄號(hào) DELETED([<工作區(qū)號(hào)或別名>]記錄刪除測(cè)試函數(shù) FILE(<“字符串”>測(cè)試文件是否存在函數(shù) DBF([<工作區(qū)號(hào)或別名>]檢測(cè)表的文件名函數(shù)

4、日期、時(shí)間函數(shù) 函數(shù)用途

DATE(查系統(tǒng)當(dāng)前日期函數(shù)

TIME([<數(shù)值表達(dá)式>]查系統(tǒng)當(dāng)前時(shí)間函數(shù)

YEAR(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>由日期查年函數(shù) MONTH(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>從日期查月份函數(shù) CMONTH(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>由日期查月份名函數(shù) DAY(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>從日期查當(dāng)月的日函數(shù)

DOW(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>[,<數(shù)值表達(dá)式>]由日期查星期函數(shù)

CDOW(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>從日期查星期名函數(shù) DTOC(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>日期轉(zhuǎn)換為字符函數(shù)

CTOD(<字符串表達(dá)式>字符串轉(zhuǎn)換為日期函數(shù) CTOT(<字符串表達(dá)式>返回日期時(shí)間值函數(shù) TTOC(<日期時(shí)間型表達(dá)式>返回字符值

5、顯示、打印位置函數(shù) 函數(shù)用途

ROW(判斷光標(biāo)行位置函數(shù) COL(判斷光標(biāo)列位置函數(shù)

INKEY([<數(shù)值表達(dá)式>]檢測(cè)用戶所擊鍵對(duì)應(yīng)的ASCII碼函數(shù),數(shù)值表達(dá)式以秒為單位等待擊鍵的時(shí)間

6、其他函數(shù) 函數(shù)用途

DISKSPACE(返回默認(rèn)磁盤驅(qū)動(dòng)器中可用字節(jié)數(shù)函數(shù) OS(檢測(cè)操作系統(tǒng)名稱的函數(shù) VERSION(返回VFP版本號(hào)的函數(shù) VFP命令、函數(shù)及程序語句大全(3

三、主要程序語句

1、條件判斷語句 格式:(1IF <條件> <命令語句組>

ENDIF 說明:如果條件為真,則執(zhí)行命令語句組中的各語句,否則跳過這些命令語句不執(zhí)行, 而執(zhí)行ENDIF后的語句。(2IF <條件> <命令語句組1> ELSE <命令語句組2> ENDIF 說明:如果條件為真,執(zhí)行命令語句組1,否則執(zhí)行命令語句組2。(3IF <條件1> IF <條件2> <命令語句組1> ELSE <命令語句組2> ENDIF...ELSE <命令語句組N>

ENDIF 說明:進(jìn)行多重條件的嵌套選擇。(4DO CASE CASE <條件1> <命令語句組1> CASE <條件2> <命令語句組2> CASE <條件3> <命令語句組3>......CASE <條件N> <命令語句組N> [OTHERWISE] [<命令語句組N+1>] ENDCASE 說明:依次判斷條件,轉(zhuǎn)入條件為真的命令語句組中執(zhí)行。當(dāng)所有條件都不成立時(shí),若有

OTHERWISE項(xiàng),則執(zhí)行命令語句組N+1,否則執(zhí)行ENDCASE后面的語句。

2、循環(huán)語句

格式:(1DO WHILE <條件> <命令語句組> [LOOP] <命令語句組> [EXIT] <命令語句組> ENDDO 說明:判斷條件是否為真,如為真就重復(fù)執(zhí)行循環(huán)體中的命令語句組,直到條 件為假,結(jié)束循環(huán)。(2)SCAN <命令語句組> ENDSCAN 說明:在一個(gè)表中建立一個(gè)執(zhí)行命令語句組的循環(huán),并執(zhí)行對(duì)每一條記錄的操 作,直到表文件 記錄完為止。

第三篇:VFP對(duì)口高考命令-3至5

DO <查詢文件名> 功能:運(yùn)行指定的查詢

例:do d:chax1.qpr 運(yùn)行名為chax1的查詢文件

MODIFY QUERY <查詢文件名> 功能:打開指定的查詢文件 例:modify query d:chax1.qpr 打開名為chax1的查詢文件

注:不論用什么方法打開查詢文件,VFP都會(huì)自動(dòng)打開查詢?cè)O(shè)計(jì)器

SELECT <字段列表> FROM [數(shù)據(jù)庫名!] <表名> [,[數(shù)據(jù)庫名!] <表名>,?] [WHERE 條件] [GROUP BY 分組項(xiàng)列表] [ORDER BY 排序項(xiàng)[DESC]?] [INTO 目標(biāo)|TO FILE 文件名|TO PRINTER] 功能:從一個(gè)或多個(gè)表中查詢數(shù)據(jù)

例:select b1.語文,b1.數(shù)學(xué),b1.英語 from sjk1!b1 where b1.語文>70 group by b1.語文 order by b1.學(xué)號(hào) desc 查詢sjk1數(shù)據(jù)庫中的b1表的語文,數(shù)學(xué),英語字段中滿足語文大于70的數(shù)據(jù),按照b1表的語文字段分組,按照b1表的學(xué)號(hào)排序,且設(shè)置排序方式為倒序。

[INTO 目標(biāo)]的“目標(biāo)”可以使用如下3種:“ARRAY 數(shù)組名”、“CURSOR 表名”、“DBF 表名”。

[ORDER BY[desc]]中若缺省“desc”則按升序排序。否則則按降序排序。[TO PRINTER]:將查詢結(jié)果送往打印機(jī)輸出

[TO FILE 文件名]:將查詢結(jié)果輸出到指定的文本文件中

CREATE VIEW <視圖名> AS <查詢語句> 功能:為當(dāng)前數(shù)據(jù)庫創(chuàng)建視圖 例:open database d:sjk1 打開數(shù)據(jù)庫sjk1

create view st1 as select * from sjk1!b1 為當(dāng)前數(shù)據(jù)庫創(chuàng)建一個(gè)視圖st1其功能為“查詢數(shù)據(jù)庫sjk1的表b1中所有字段數(shù)據(jù)”

注:使用上述命令創(chuàng)建的視圖還需要在視圖設(shè)計(jì)器中指定可更新字段,才能實(shí)現(xiàn)更新數(shù)據(jù)的功能

DROP VIEW <視圖名> 功能:刪除當(dāng)前數(shù)據(jù)庫中指定的視圖 例:open database d:sjk1 打開數(shù)據(jù)庫sjk1

drop view st1 刪除視圖st1 CREATE REPORT <報(bào)表文件名> 功能:建立一個(gè)空白報(bào)表 例:create report d:bb1 建立一個(gè)報(bào)表bb1

MODIFY REPORT <報(bào)表文件名> 功能:打開指定的報(bào)表文件 例:modify report d:bb1 打開報(bào)表bb1

REPORT FORM <報(bào)表文件名> TO PRINTER 功能:打印指定的報(bào)表 例:report form d:bb1 to printer 打印報(bào)表bb1

MODIFY COMMAND <程序文件名> 功能:建立一個(gè)程序文件 例:modify command cx1 建立一個(gè)名為cx1的程序文件并打開編寫 DO <程序文件名> 功能:運(yùn)行指定的程序 例:do d:cx1 運(yùn)行程序cx1

注:如果在A程序中使用命令調(diào)用B程序,則B程序稱為A程序的子程序,A程序稱為B程序的主程序。

VFP中可以使用“*”號(hào)和NOTE命令可以給某一行加注釋,也可以使用“&&”在語句行后面添加注釋。

注:給某一個(gè)行加注釋就是以“*”或NOTE開頭后進(jìn)行注釋,給語句行加注釋就是使用“&&”直接在語句后面加上注釋,相比來說“&&”注釋更加靈活。

例:clear &&清屏

給clear加注釋“清屏” 注:注釋的作用就是幫助理解程序的功能,以利今后修改程序時(shí)提高工作效率,一般注釋的內(nèi)容在VFP中以綠色顯示。

CLEAR 功能:清除屏幕上的顯示信息 ACCEPT [提示信息] TO <內(nèi)存變量>

功能:把用戶輸入的字符串保存到指定的內(nèi)存變量中

例:accept to x 在屏幕上光標(biāo)處輸入字符串,并將字符串保存到變量x中

accept ”請(qǐng)輸入x:” to x

在屏幕上”請(qǐng)輸入x:”后輸入字符串,并將字符串保存變量x中 INPUT [提示信息] TO <內(nèi)存變量>

功能:把用戶輸入的表達(dá)式的值保存到指定的內(nèi)存變量 例:input ”請(qǐng)輸入y:” to y 在“清輸入y:”后輸入數(shù)據(jù),并將數(shù)據(jù)保存到變量y中 注:input與accept的區(qū)別是,前者可以輸入數(shù)值型數(shù)據(jù)、邏輯型數(shù)據(jù),也可輸入字符型數(shù)據(jù),在輸入字符型數(shù)據(jù)時(shí)要加定界符,后者輸入的數(shù)據(jù)都一律被認(rèn)為是字符型數(shù)據(jù),且不用加定界符。

WAIT [提示信息] [TO 內(nèi)存變量] [WINDOW] [TIMEOUT 時(shí)間] 功能:等待用戶輸入一個(gè)字符

例:wait 屏幕上顯示“按任意鍵繼續(xù)?”,并要求任意輸入一個(gè)字符以繼續(xù)

wait “是否繼續(xù)(Y/N)?” to x window timeout 2 在屏幕右上角中的系統(tǒng)窗口中顯示“是否繼續(xù)(Y/N)?”系統(tǒng)窗口存在2秒,并將輸入的字符保存到變量x中

注:wait命令和accept命令中的變量的一定是字符型變量且不用加定界符,而input命令的變量的類型由輸入表達(dá)式值的數(shù)據(jù)類型決定。wait命令常用于輸入單字符和顯示信息,accept命令常用于輸入字符串,input命令常用于輸入其他類型的數(shù)據(jù)。

@<行,列> SAY <顯示信息> 功能:在指定位置輸出信息 例:@1,1 say ”你好” 在第一行第一列顯示“你好” @<行,列> [SAY 顯示信息] GET <變量> 功能:在指定位置輸入數(shù)據(jù),并把輸入的數(shù)據(jù)保存在指定的變量 例:@1,1 say”姓名:” get xm

read 在第一行第一列顯示“姓名:”并在其后面輸入數(shù)據(jù)并將數(shù)據(jù)其保存給變量xm 注:該命令需要與read命令共同使用,才能激活命令中的變量,接收輸入的數(shù)據(jù)。注:不與read命令共同使用的話,系統(tǒng)將自動(dòng)將原先變量的值載入。ROW()功能:返回當(dāng)前坐標(biāo)的行坐標(biāo) COL()功能:返回當(dāng)前坐標(biāo)的列坐標(biāo) SET TALK ON|OFF

功能:設(shè)置是否顯示某些命令執(zhí)行的結(jié)果,ON為顯示,OFF為不顯示 SET SAFETY ON|OFF

功能:設(shè)置刪除文件數(shù)據(jù)時(shí)是否顯示提示信息,ON為顯示,OFF為不顯示 CLEAR ALL 功能:清除用戶自定義的內(nèi)存變量和對(duì)象 IF <條件>

功能:?jiǎn)畏种нx擇結(jié)構(gòu)

<語句組> ENDIF 例:if x<0 判斷x是否小于0,其返回值是.T.或.F.?”x小于0”

返回.T.時(shí)執(zhí)行,執(zhí)行后執(zhí)行endif后面的語句

endif

返回.F.時(shí)執(zhí)行endif后面的語句 IF<條件> 功能:雙分支選擇結(jié)構(gòu)

<語句組1> ELSE

<語句組2> ENDIF 例:if x<0 判斷x是否小于0,其返回值是.T.或.F.?”x小于0”

返回.T.時(shí)執(zhí)行,執(zhí)行后執(zhí)行endif后面的語句

else

?”x大于等于0” 返回.F.時(shí)執(zhí)行,執(zhí)行后執(zhí)行endif后面的語句

endif 注:條件是一個(gè)邏輯表達(dá)式,其返回值為.T.或.F.。

注:if和endif必須成對(duì)使用,分別表示選擇結(jié)構(gòu)開始和選擇結(jié)構(gòu)結(jié)束 DO CASE

功能:多分支選擇結(jié)構(gòu)

CASE <條件1>

<語句組1> CASE <條件2> <語句組2> ?

CASE <條件n> <語句組n> [OTHERWISE 語句組] ENDCASE 例:do case

case x=1

?”x等于1”

x等于1時(shí)執(zhí)行,執(zhí)行后執(zhí)行endcase后面的語句

case x=2 ?”x等于2”

x等于2時(shí)執(zhí)行,執(zhí)行后執(zhí)行endcase后面的語句

case x=3

?”x等于3”

x等于3時(shí)執(zhí)行,執(zhí)行后執(zhí)行endcase后面的語句

otherwise

? ”x是大于3的數(shù)”

x不滿足以上的所有條件時(shí)執(zhí)行,執(zhí)行后執(zhí)行endcase后面的語句 endcase 注:do case和endcase必須成對(duì)使用,分別表示選擇結(jié)構(gòu)開始和選擇結(jié)構(gòu)結(jié)束

DO WHILE <條件> 功能:基于條件的循環(huán)結(jié)構(gòu) <語句組>

ENDDO 例:do while x<10 判斷x是否小于10,其返回值是.T.或.F.?”x小于10”

x=x+1

返回.T.時(shí)執(zhí)行,執(zhí)行完畢后跳回循環(huán)開始處(do while <條件>)再次判斷條件是不是滿足或不滿足

enddo 返回.F.時(shí)執(zhí)行enddo后面的語句

SCAN [FOR條件] 功能:針對(duì)表記錄的循環(huán)結(jié)構(gòu) <語句組> ENDSCAN

例:use d:b1 由于是針對(duì)表記錄的循環(huán),所以需打開一張表

scan for 性別=”男”

display

每個(gè)性別字段等于“男”的記錄都會(huì)執(zhí)行一次語句組的語句,全部執(zhí)行完畢后,執(zhí)行endscan后面的語句

endscan FOR <變量>=<初值> TO <終值> [STEP 步長(zhǎng)] 功能:指定次數(shù)的循環(huán)

<語句組> ENDFOR

例:s=0 設(shè)置累加器s

for x=1 to 11 step 2 給x賦初值1,終值11,其步長(zhǎng)為s=s+x

因步長(zhǎng)為2,故x的值為1、3、5、7、9、11,s將x從初值1到11的每一步的值都加起來,當(dāng)x的值下一步大于其終值時(shí),執(zhí)行endfor后面的語句

endfor 注:do while enddo,scan endscan,for endfor必須成對(duì)使用

LOOP 功能:終止本次循環(huán),使程序再次檢查是否滿足循環(huán)條件,以決定是否進(jìn)行下一次循環(huán)即直接跳回循環(huán)開始處(如do while <條件>)。

EXIT 功能:結(jié)束循環(huán),使程序執(zhí)行循環(huán)結(jié)構(gòu)后面的語句即直接跳到循環(huán)結(jié)束處(如 enddo)。PROCEDURE <過程名> 功能:定義一個(gè)過程 <語句組> ENDPROC 例:procedure x 定義一個(gè)過程,過程名為x

display

該過程的語句

endproc

結(jié)束過程

SET PROCEDURE TO [過程文件名] 功能 :打開指定的過程文件 例:set procedure to 關(guān)閉正在打開的過程

set procedure to d:gc1 打開過程文件gc1 注:缺省可選項(xiàng)則關(guān)閉已經(jīng)打開的過程文件。DO <程序名|過程名> [WITH 參數(shù)表] 功能:調(diào)用指定的程序,并把指定的參數(shù)傳遞給調(diào)用的下級(jí)程序。注:缺省可選項(xiàng),則不傳遞參數(shù)。

PAREMETERS <參數(shù)表> 功能:接受上級(jí)程序傳遞來的參數(shù) 例:input”你出生的年份:” to c

input”現(xiàn)在的年份:” to n

do c1 with c,n

調(diào)用過程c1并傳遞參數(shù)c和n,并執(zhí)行過程c1的語句

?”你現(xiàn)在”+alltrim(str(n))+alltrim(”歲”)

在屏幕上顯示“你現(xiàn)在n(變量)歲”,因n為數(shù)值型,所有要用str()函數(shù)轉(zhuǎn)換成字符型,用alltrim()函數(shù)消除多余的空格

return

procedure c1 定義過程c1

parameters x,y 接收上級(jí)傳遞過來的參數(shù),c對(duì)應(yīng)x,n對(duì)應(yīng)y

y=y-x 即用現(xiàn)在的年份減去你出生的年份,算出要計(jì)算的年齡

endproc

結(jié)束過程,并將參數(shù)y,x的值傳遞回c,n,此時(shí)執(zhí)行調(diào)用該過程之后的語句 注:在這里c,n稱為實(shí)參,即實(shí)際使用的參數(shù)。x,y稱為形參,即位置相同,形式相同的參數(shù)。

CREATE FORM <表單文件名> 功能:創(chuàng)建一個(gè)空白表單 例:create form d:bd1 建立一個(gè)名為bd1的表單 DO FORM <表單文件名> 功能:運(yùn)行指定的表單 例:do form d:bd1 運(yùn)行表單bd1

MODIFY FORM <表單文件名> 功能:打開指定的表單 例:modify form d:bd1 打開表單bd1 Thisform.refresh 功能:刷新表單

Thisform.release 功能:釋放并關(guān)閉表單,即從內(nèi)存中清除表單

Thisform.<對(duì)象名>.<屬性名>=<屬性值> 功能:修改或設(shè)置表單對(duì)象的屬性值Thisform.text1.value=”VFP”

這個(gè)表單的text1控件的value屬性值是”VFP” DO <菜單程序名> 功能:運(yùn)行指定的菜單 例:do d:cd1.mpr 運(yùn)行菜單cd1

DO <菜單程序名> WITH this ,T,功能:使用表單調(diào)用菜單 例:do d:cd1 with this ,T, 在當(dāng)前表單上調(diào)用菜單cd1

例:5

第四篇:mathematic命令小結(jié)

1.初等數(shù)學(xué)(1).算術(shù)函數(shù)

Plus(+)加號(hào) Subtract(-)減號(hào)

Times(×)乘號(hào), 用空格,* 或者×(Esc * Esc)表示 Divide(/)除號(hào)

Power(^)冪, 以上標(biāo)形式輸入,使用 Ctrl+^ Sqrt平方根, 輸入 Sqrt[?] 或使用 Ctrl+@ expr 直接輸入表達(dá)式 N[expr]或 expr//N expr的近似值

N[expr,n] n位精度的expr的近似值(2).數(shù)學(xué)常數(shù)

Pi(?)圓周率?(Esc p Esc)

E(?)自然對(duì)數(shù)底數(shù)?(Esc ee Esc)Infinity(?)無窮大 ?(Esc inf Esc)I 虛數(shù)單位

Degree 度數(shù) °

GoldenRatio 黃金分割 ?=(1+Sqrt[5])/2?1.618 EulerGamma 歐拉常數(shù) ??0.577(3).復(fù)數(shù) z=x+I y Re[z] 求z的實(shí)部 Im[z] 求z的虛部 Conjugate[z] 求z的共軛 Abs[z] 求z的模 Arg[z] 求z的幅角

Sign[z] 將z單位化(z/|z|)(4).數(shù)值函數(shù)

IntegerPart[x] x的整數(shù)部分 FractionalPart[x] x的分?jǐn)?shù)部分 Round[x] x的四舍五入取整 Floor[x] x的向下取整 Ceiling[x] x的向上取整 Abs[x] x的絕對(duì)值

Max[{e1,..., en}] 給出n個(gè)數(shù)的最大值 Min[{e1,..., en}] 給出n個(gè)數(shù)的最小值 Sign[x] 符號(hào)函數(shù) Boole[x] 布爾函數(shù)

UnitStep[x] 階梯函數(shù)(x>=0時(shí)為1, x<0時(shí)為0)Mod[k, n] k模n(k除 n的余數(shù))Quotient[m, n] m除n的商數(shù)(舍棄m/n的小數(shù)部分)QuotientRemainder[m,n] m除n的商數(shù)和余數(shù)的列表 GCD[n1, n2, ?] 求n1, n2,...最大公約數(shù) LCM[n1, n2, ?] 求n1, n2,...最小公倍數(shù) n!n的階乘 n(n-1)(n-2)?1 n!n的二階階乘 n(n-2)(n-4)? Binomial[n,m] 組合數(shù)(n,m)= n!/[m!(n-m)!Multinomial[n1,n2, ?]] 多重組合(n1+n2+ ?)!/(n1!n2!...)Rescale[x,{xmin,xmax}] IntegerDigits FromDigits(5).一般函數(shù) 初等函數(shù)

Log[x] 計(jì)算表達(dá)式的對(duì)數(shù)函數(shù)值 Log[b,x]

計(jì)算x以b為底的對(duì)數(shù)...Sin[x]

計(jì)算表達(dá)式的三角正弦 Cos[x] 計(jì)算表達(dá)式的三角余弦 Tan[expr]

計(jì)算表達(dá)式的三角正切 Cot[expr]

計(jì)算表達(dá)式的三角余切 Sec[expr]

計(jì)算表達(dá)式的三角余割 ArcSin[expr] 計(jì)算表達(dá)式的反三角正弦 ArcCos[expr] 計(jì)算表達(dá)式的反三角余弦 ArcTan[expr] 計(jì)算表達(dá)式的反三角正切...Sinh[expr]

計(jì)算表達(dá)式的雙曲正弦 Cosh[expr] 計(jì)算表達(dá)式的雙曲余弦 Coth[expr] 計(jì)算表達(dá)式的雙曲余切 Tanh[expr]

計(jì)算表達(dá)式的雙曲正切 ArcCosh[expr] 計(jì)算表達(dá)式的反雙曲余弦 ArcSinh[expr] 計(jì)算表達(dá)式的反雙曲正弦 ArcTanh[expr] 計(jì)算表達(dá)式的反雙曲正切 Sech[expr]

計(jì)算表達(dá)式的雙曲余割

特殊函數(shù)

Zata[expr]

計(jì)算表達(dá)式的Zata函數(shù) Bessell[expr] 計(jì)算表達(dá)式的貝賽爾函數(shù)值 Beta[expr] 計(jì)算表達(dá)式的Beta函數(shù)值 Gamma[expr] 計(jì)算表達(dá)式的伽瑪函數(shù)值 Erf[expr]

計(jì)算表達(dá)式的誤差函數(shù)

統(tǒng)計(jì)函數(shù)

NormalDistribution[?,?] 正態(tài)分布 StudentTDistribution[v] 學(xué)生分布 ChiSquareDistribution[v] ?2分布 FRatioDistribution[m,n] F分布 UniformDistribution[min,max] 均勻分布 ExponentialDistribution[?] 指數(shù)分布

LaplaceDistribution[?,?] 拉普拉斯分布 GammaDistribution?, ?] ?分布 BetaDistribution[?, ?] ?分布 CauchyDistribution[a,b] 柯西分布 BernoulliDistribution[p] 貝努利分布 BinomialDistribution[n,p] 二項(xiàng)分布 PoissonDistribution[?] 泊松分布

PDF 求分布的密度函數(shù) CDF 求分布的概率函數(shù) Mean 求均值 Variance 求方差 Quantile 求距 Skewness 求峰度 Kurtosis 求偏度 ExpectedValue 求期望

RandomReal 產(chǎn)生隨機(jī)實(shí)數(shù) RandomInteger 產(chǎn)生隨機(jī)整數(shù)(6).自定義函數(shù)

f[x_]:=expr 定義函數(shù)f f[x_,y_]:=expr 定義多變量函數(shù)f.Piecewise[{{val1,cond1},{val2,cond2},?}] 用于定義分段函數(shù) ?f 顯示函數(shù)的定義 Clear[f] 清除函數(shù)f x=value 給x賦值

x=.清除變量x的值

expr/.x->value 用value替換expr中的x(7).表達(dá)式化簡(jiǎn)

Simplify[expr] FullSimplify[exper] Simplify[expr,assum] assum 選項(xiàng)

Element[x,Reals] 或 x?Reals Element[x,Integers] 或 x?Integers Element[x,Complexs] 或 x?Complexs Element[x,Primes] 或 x?Primes Element[x,Rationals] 或 x?Rationals Element[x,Booleans] 或 x?Booleans Assumptions Assumming

2.多項(xiàng)式與有理函數(shù)(1).多項(xiàng)式

1、多項(xiàng)式的普通運(yùn)算 Expand[poly] 展開多項(xiàng)式乘積與乘方 Factor[poly] 對(duì)多項(xiàng)式進(jìn)行因式分解 FactorTerms[poly] 提取數(shù)字公因子

FactorTerms[poly,patt] 提取關(guān)于patt的公因子

Collect[poly,x] 以x冪的形式重新排列多項(xiàng)式 Collect[poly,{x,y,...}] 以x、y、...冪的形式重新排列多項(xiàng)式 Expand[poly,patt] 展開與patt相匹配的多項(xiàng)式poly

2、得到多項(xiàng)式的結(jié)構(gòu)

PolynomialQ[expr,x] 判斷expr是否為關(guān)于x 的多項(xiàng)式

PolynomialQ[expr,{x,y,...}] 判斷expr是否為關(guān)于x,y,...的多項(xiàng)式 Variables[poly] 列出多項(xiàng)式poly中的變量 Length[poly] 列出多項(xiàng)式poly的項(xiàng)數(shù)

Exponent[poly,x] 給出多項(xiàng)式poly的x的最高指數(shù) Coefficient[poly,expr] 給出多項(xiàng)式poly中關(guān)于expr的系數(shù)

CoefficientList[poly,{x,y,..}] 生成多項(xiàng)式poly中關(guān)于x、y、...的系數(shù)

3、多項(xiàng)式的代數(shù)運(yùn)算

PolynomialQuotient[poly1,poly2,x] 求出關(guān)于x的多項(xiàng)式poly1除以poly2的商,忽略余式 PolynomialRemainder[poly1,poly2,x] 求出關(guān)于x的多項(xiàng)式poly1除以poly2的余式

PolynomialQuotientRemainder[poly1,poly2,x] 求出關(guān)于x的多項(xiàng)式poly1除以poly2的商和余式 PolynomialReduce[poly,{poly1,poly2,...},{x1,x2,...}] PolynomialGCD[poly1,poly2] 尋找兩個(gè)多項(xiàng)式的最大公因式 PolynomialLCM[poly1,poly2] 尋找兩個(gè)多項(xiàng)式的最小公倍式 Resultant[poly1,poly2,x] 尋找兩個(gè)多項(xiàng)式的消元式 Discriminant[poly, x] 給出多項(xiàng)式有根的判別式

PolynomialReduce[poly,{poly1,poly2,...},{x1,x2,...}] 尋找使用ployi表示poly的最小表示式(2).有理式

關(guān)于有理多項(xiàng)式的運(yùn)算

ExpandNumerator[expr] 僅把有理表達(dá)式的分子展開 ExpandDenominator[expr] 僅把有理表達(dá)式的分母展開 Expand[expr] 僅展開分子,并把分母分成單項(xiàng) ExpandAll[expr] 同時(shí)展開有理表達(dá)式的分子和分母 ExpandAll[expr,patt] 僅展開與patt匹配的項(xiàng) Together[expr] 合并具有相同分母的項(xiàng)

Apart[expr] 以最簡(jiǎn)分母項(xiàng)和的形式書寫表達(dá)式 Cancel[expr] 約去分子分母中的公因子

Factor[expr] 將有理式合并,并同時(shí)對(duì)分子分母因式分解 Numerator[expr] 獲取有理表達(dá)式的分子 Denominator[expr] 獲取有理表達(dá)式的分母(3).三角函數(shù)表達(dá)式

1、三角表達(dá)式

TrigExpand[expr] 將三角函數(shù)表達(dá)式轉(zhuǎn)化為和差

TrigFactor[expr] 將三角函數(shù)表達(dá)式和差形式轉(zhuǎn)化為乘積形式 TrigReduce[expr] 用倍角的方法化簡(jiǎn)三角表達(dá)式 TrigToExp[expr] 將三角函數(shù)表達(dá)式轉(zhuǎn)化為指數(shù)形式 ExpToTrig[expr] 將指數(shù)形式表達(dá)式轉(zhuǎn)化為三角函數(shù)形式

2、含有復(fù)數(shù)變量的表達(dá)式

ComplexExpand[expr] 展開表達(dá)式expr,并假定所有的變量都是實(shí)數(shù) ComplexExpand[expr,{x1,x2,...}] 展開表達(dá)式expr,并假定x1,x2,...變量都是復(fù)數(shù)

3.代數(shù)方程與不等式(1)代數(shù)方程求解

Solve[eq var] 求解方程eqns中的未知變量vars Solve[{eq1,eq2,...},{var1,var2,...}] 求解方程組

Root[f,k] 求解方程f[x]=0的第k個(gè)根

Reduce[eqns vars] 給出含未知常數(shù)方程eqns所有可能的情況 Eliminate[eqns,elims], 消去方程eqns中變量elims RSolve[eqns,vars[n]] 求遞推方程eqns的通解vars[n] Resolve(2)不等式求解

Reduce[{eqns1, eqns2,...}, x] 給出滿足不等式eqnsi的x的集合

4.微積分(1).求極限

x0f(x)Limit[f,x->x0] x?limLimit[f,x?x0Limit[f,x?x0

x0,Direction->1] x?x0,Direction->-1] x?limf(x)f(x)

lim(2).求(偏)導(dǎo)

D[exp,x] 計(jì)算表達(dá)式一階(偏)導(dǎo)數(shù) D[exp,x1,x2,?xn] 計(jì)算表達(dá)式混合偏導(dǎo)數(shù)

D[exp,{x,n}] 計(jì)算表達(dá)式對(duì)x的n階(偏)導(dǎo)數(shù) D[exp,{{x1,x2,...}}] 計(jì)算向量函數(shù)(偏)導(dǎo)數(shù)

Derivative[n 1,n2,?][f] 對(duì)f的第一個(gè)變量求n1階導(dǎo)數(shù),第二個(gè)變量求n2階導(dǎo)數(shù),...Dt[exp] 計(jì)算表達(dá)式的全微分df Dt[exp,x] 計(jì)算表達(dá)式關(guān)于x的全導(dǎo)數(shù)df/dx

Dt[exp,x1,x2, ? xn] 計(jì)算表達(dá)式關(guān)于x1,x2,?xn的全導(dǎo)數(shù)d/dx1 d/dx2...d/dxn f Dt[exp,x,Constants->{c1,c2,?, cn}] 計(jì)算表達(dá)式關(guān)于x的全導(dǎo)數(shù),并指出表達(dá)式中 ci為常數(shù) Maximize[f,{x,y,?}] 求變量為x,y,?函數(shù)f的最大值.Maximize[{f,cons},{x,y,?}] 求在約束條件cons下函數(shù)f的最大值

Minimize[f,{x,y,?}] 求變量為x,y,?函數(shù)f的最小值.Minimize[{f,cons},{x,y,?}] 求在約束條件cons下函數(shù)f的最小值

FindMinimum[{f,cons},{x,x0},{y,y0}?] 求在約束條件cons下函數(shù)f的局部最小值(3).求積分 Integrate[exp,x] 求表達(dá)式關(guān)于x的不定積分

Integrate[exp,{x,a,b}] 求表達(dá)式關(guān)于x在區(qū)間[a,b]上的定積分 NIntegrate[exp,{x,a,b}] 求表達(dá)式關(guān)于x在區(qū)間[a,b]上的數(shù)值積分 Integrate[exp,{x,a,b},{y,c,d}] 求x,y在區(qū)間[a,b][c,d]上的二重積分 Integrate[Boole*ieq,{x,a,b},{y,c,d}] 求不等式所限制的區(qū)域上的二重積分(4).冪級(jí)數(shù)展開

Series[exp,{x,x0,n}] 對(duì)表達(dá)式在x0處進(jìn)行n階展開

Series[exp,{x,x0,n1},{y,y0,n2}] 對(duì)二元表達(dá)式在x0,y0處進(jìn)行n1,n2階展開 Series1/.x->Series2 將級(jí)數(shù)Series2代入級(jí)數(shù)Series1 Normal[exp] 將級(jí)數(shù)轉(zhuǎn)化為函數(shù)表達(dá)式(即:除去余項(xiàng))Residue[exp,{x,x0}] 求exp在x=x0處的留數(shù)(5).微分方程

DSolve[eqn,y[x],x] 求解微分方程解y[x] DSolve[eqn,y,x] 求解微分方程解函數(shù) DSolve[{eqn1,eqn2,?eqnn},{y1,y2,?yn},x] 求解微分方程組的解

DSolve[eqn, y[x1,x2,...], {x1,x2,...}] 求解偏微分方程的解(6).和與積

Sum[f,{i,imin,imax}] 和式

Sum[f,{i,imin,imax,di}] 關(guān)于i求和,i的步長(zhǎng)為di

Sum[f,{i,imin,imax},{j,min,jmax}] 多重求和

Product[f,{i,imin,imax}] 求積(7).一些用于迭代的函數(shù)

Nest[f,x,n] 對(duì)x嵌套運(yùn)用f函數(shù)n次 NestList[f,x,n] 產(chǎn)生一n元嵌套列表{x,f(x),f(f(x)),...}。FixPoint[f,x] 求x=f(x)的不動(dòng)點(diǎn)

FixPointList[f,x] 產(chǎn)生一列表{x,f(x),f(f(x)),...},直到不動(dòng)點(diǎn)為止 FixPoint[f,x,SameTest?Comp] 求x=f(x)的迭代,直到滿足comp為止 Fold[f,x0,{a,b,...}] FoldList[f,x,{a,b,...}] 產(chǎn)生一列表{x,f(x,a),f(f(x,a),b),...}

5.線性代數(shù)

(1).數(shù)表與矩陣的輸入及其構(gòu)造

v={a1,a2,...an} 輸入一個(gè)名為v的n維向量(表),其中ai為數(shù)值或?yàn)楸磉_(dá)式 p={{e11,e12,?e1n},?,{em1,em2,?emn}} 輸入一個(gè)名為p的m×n矩陣(多維表),其中eij為數(shù)值或?yàn)楸磉_(dá)式 v=Table[f,{i,m}] 輸入一個(gè)名為v的n維向量(表), 其元素f為i的函數(shù)

p=Table[f,{i,m},{j,n}] 輸入一個(gè)名為p的m×n矩陣, 其元素f為i,j的函數(shù) p=Array[f,{i,m},{j,n}] 輸入一個(gè)名為p的m×n矩陣,其元素為f[i,j] p=Range[f,{n}] 生成一列表{f[1],f[2],....f[n]} p=DiagonalMatrix[{e1,e2,?,en}] 輸入一個(gè)名為p的n階對(duì)角陣,對(duì)角元素為e1,e2,?,en

????imaxi?iminfimaxi?iminjmaxj?jminf

imaxi?iminfp=IdentityMatrix[n] 輸入一個(gè)名為t的n階單位陣 p=Table[0,{m},{n}] 輸入一個(gè)名為t的m×n零矩陣

p=Table[If[i>=j,f,0],{i,m},{j,n}] 輸入一個(gè)名為p的m×n下三角陣,其元素f為i,j的函數(shù) p=Table[If[i<=j,f,0],{i,m},{j,n}] 輸入一個(gè)名為p的m×n上三角陣其元素f為i,j的函數(shù) p=Normal[SparseArry[{{i1,j1}->v1,{i2,j2}->v2,...},{m,n}] 構(gòu)造一矩陣其在ik行jk列的值為vk,其余為0。Tuples Subsets Permutations RandomChoice

(2).矩陣的剪裁

v[[i]](Part[v,i])取出向量v的第i個(gè)元素 M[[i,j]] 取出矩陣M的元素m(i,j)M[[i]] 取出矩陣M的第i行 M[[All,i]] 取出矩陣M的第i列

M[ {i1,i2?ir},{ j1,j2?js }] 取出矩陣M的一個(gè)r×s子矩陣,它由i1, 行和 j1, ?js列相交處的元素構(gòu)成 M[{Range[ i0,i1],Range[ j0,j1]}] 或Take[M,{i0,i1}, {j0,j1}] 取出矩陣M的一個(gè)子塊,它由 i0到 i1行和 j0Minors[M,i] 算出矩陣M的一個(gè)i×s的i階余子式矩陣 ArrayRules[M] 矩陣M中非零元素的位置 Tr[M,List] 矩陣M對(duì)角線上的元素

M[[i,j]]=v 將矩陣M的i行j列的元素?fù)Q為v。M[[i]]=v 將矩陣M的i行的元素全換為v。

M[[i]]={v1,v2,...} 將矩陣M的i行的元素全換為{v1,v2,...}。M[[All,j]]=u 將矩陣M的j列的元素全換為u。

M[[All,j]]={u1,u2,...} 將矩陣M的j列的元素全換為{u1,u2,...}。First Last Rest Most Take Drop TakeWhile Append Prepend Insert Delete AppendTo PrependTo RotateLeft RotateRight Reverse

ir 到j(luò)1列相交處的元素構(gòu)成? Partition Flatten Sort Join Riffle(3).矩陣的運(yùn)算

c*v 常數(shù)乘矩陣 v.u 向量?jī)?nèi)積 Norm[u] 求向量u的模

v*m 向量對(duì)應(yīng)的元素相乘 m.v 矩陣乘向量 m.p 矩陣相乘 Cross[v,v] 向量差積

m*p 矩陣對(duì)應(yīng)的元素相乘 VectorAngle[u,v] 求兩向量的夾角 Normalize[u] 將向量u單位化 Orthogonalize[{u,v,...}] 將向兩組正交化 Projection[u,v] 求向量u到v上的投影 Outer[Times,m,n] 求矩陣的外積 Transpose[m] 求矩陣的轉(zhuǎn)置 Inverse[m] 求矩陣的逆矩陣 Det[m] 求矩陣的行列式

Minors[m,k] 矩陣所有可能的k*k階子式 MatrixPower[m,i] 求矩陣m的i次冪

MatrixExp[m] 求以矩陣m作為指數(shù)的值 Tr[m] 求矩陣的跡

CharacteristicPolynomial[m,x] 求矩陣的特征多項(xiàng)式。Chop[%] 舍棄上一個(gè)輸出中的無意義的小量 MatrixPlot[M] 打印矩陣 Map Apply(4).解線性方程組

LinearSolve[m,w] 求解線性方程組m.x=w的解 NullSpace[m] 求矩陣m的零化子空間

RowReduce[m] 用Gauss消元將矩陣m化為對(duì)角形式 MatrixRank[m] 求矩陣m的秩

LeastSquares[m,w] 求線性方程組m.x=w的最小二乘解(5).特征值,特征向量及分解

Eigenvalues[m] 求矩陣m的特征值

Eigenvalues[m,k] 矩陣m的最大的前k個(gè)特征值 Eigenvectors[m] 求矩陣m的特征向量

Eigenvectors[m,k] 對(duì)應(yīng)矩陣m的最大的前k個(gè)特征值的特征向量 Eigensystems[m] 求數(shù)字矩陣m的特征值和特征向量 Eigenvalules[{m,a}] 求矩陣m關(guān)于a的廣義特征值 Eigenvectors[{m,a}] 求矩陣m關(guān)于a的廣義特征向量 QRDecomposition[m] 求數(shù)字矩陣m的QR分解 SchurDecomposition[m] 求數(shù)字矩陣m的Schur分解 LUDecomposition[m] 求數(shù)字矩陣m的LU分解

CholeskyDecomposition[m] 求數(shù)字矩陣m的Cholesky分解 JordanDecomposition[m] 求數(shù)字矩陣m的Jordan分解 SingularValues[m] 求數(shù)字矩陣m的奇異值分解 PseudoInverse[m] 求數(shù)字奇異矩陣m的擬逆

6.數(shù)值計(jì)算

(1).數(shù)據(jù)擬合與插值

ff=Table[N[f[x]],{x,n}] 輸入名為ff的擬合函數(shù)表,變量x在區(qū)間[0,n]上,間距為1。fp=Fit[ff,{f1,f2,?,fn},x] 建立名為fp的擬合函數(shù),它由f1,?,fn的線性組合形成,擬合變量為x。fp=FindFit[ff,form,{pars1,pars2,...},x] 建立名為fp的擬合函數(shù),函數(shù)形式form已知,求參數(shù)parsi。fp=Fit[ff,Table[x^i,{i,0,n}],x] 多項(xiàng)式擬合的簡(jiǎn)單輸入形式

ff=Flatten[Table[{x,y,f[x,y]},{x,x1,x2,dx},{y,y1,y2,dy},1] 輸入名為ff的二元擬合函數(shù)表,變量x在區(qū)間[x1,x2]上,間距為dx。變量y在區(qū)間[y1,y2]上,間距為dy。

fp=Fit[ff,{f1,f2,?,fn},{x,y}] 建立名為fp的擬合函數(shù),它由f1,?,fn的線性組合形成,擬合變量為x,y。ff={{x1,y1},{x2,y2},?,{xn,yn}} 輸入名為ff的二元插值函數(shù)表 fp=InterpolatingPolynomial[ff,x] 用牛頓法進(jìn)行多項(xiàng)式插值

ip=Interpolation[{f1,f2,...}] 構(gòu)造在整數(shù)點(diǎn)i處函數(shù)值為fi的插值多項(xiàng)式 ip=Interpolation[{{x1,f1},{x2,f2},...}] 構(gòu)造在點(diǎn)xi處函數(shù)值為fi的插值多項(xiàng)式

ip=Interpolation[{{x1,y1,f1},{x2,y2,f2},...}] 對(duì)二維整數(shù)網(wǎng)格點(diǎn)上值為fij構(gòu)造插值多項(xiàng)式

ip=ListInterpolation[List,{{xmin,xman},{ymin,ymax},...}] 對(duì)二維區(qū)域網(wǎng)格點(diǎn)值構(gòu)造插值多項(xiàng)式

ip=ListInterpolation[List,{{x1,x2,...},{y1,y2...}}] 對(duì)二維區(qū)域上給定的網(wǎng)格點(diǎn)上值構(gòu)造插值多項(xiàng)式(2).方程數(shù)值解與函數(shù)優(yōu)化

NSolve[poly==0,x] 求多項(xiàng)式方程的解

NSolve[poly==0,x,n] 求多項(xiàng)式方程的解,精度為n。FindRoot[f[x]==0,{x,x0}] 用牛頓方法求方程在x0附近的解

FindRoot[f[x]==0,{x,x0,x1}] 用割線方法求方程在x0、x1附近的解 FindRoot[{f1,f2,...},{{x,x0},{y,y0},...}] 用牛頓方法求方程組在x10,x20,?,附近的解 FindInstance[f[x]==0,x] 求方程的任意一特解

FindInstance[f[x]==0,x,dom] 求在給定范圍dom內(nèi)任意特解 FindInstance[f[x]==0,x,dom,n] 求在給定范圍dom內(nèi)任意n個(gè)特解 NIntegrate[f[x],{x,xmin,xmax}] 計(jì)算一元定積分

NIntegrate[f[z],{z,z0,z1,?,zn,z0}] 計(jì)算復(fù)變函數(shù)的回路積分 NIntegrate[f[x,y],{x,a,b},{y,c,d}] 計(jì)算二元定積分

LinearProgramming[c,m,b] 求滿足m.x>b,x>0約束使c.x最小的x LinearProgramming[c,m,b,l] 求滿足m.x>b,x>l約束使c.x最小的x FindMinimum[f[x],{x,x0}] 求函數(shù)f(x)在x0附近的局部極小值

FindMinimum[f,{{x,x0},{y,y0},...}] 求函數(shù)f在{x0,y0,...}附近的局部極小值 FindMaximum[f[x],{x,x0}] 求函數(shù)f(x)在x0附近的局部極大值

FindMaximum[f,{{x,x0},{y,y0},...}] 求函數(shù)在{x0,y0,...}附近的局部極大值 NMinimize[f,{x,y,...}] 求多元函數(shù)函數(shù)f最小

NMinimize[{f,cons} ,{x,y,...}] 求在約束cons下函數(shù)f最大值 NMaximize[f,{x,y,...}] 求多元函數(shù)函數(shù)f最大值

NMaximize[{f,cons}, {x,y,...}] 求在約束cons下函數(shù)f最大值值(3).微分方程數(shù)值解

NDSolve[equ,y,{x,xmin,xmax}] 給出方程在區(qū)間[xmin,xmax]上關(guān)于y的數(shù)值解。NDSolve[equs,{y1,y2,...},{x,xmin,xmax}] 給出方程在區(qū)間[xmin,xmax]上關(guān)于函數(shù)yi的數(shù)值解。NDSolve[equs,u,{t,tmin,tmax},{x,xmin,xmax},...] 給出偏微分方程組上關(guān)于函數(shù)u的數(shù)值解。NDSolve[equs,{u1,u2,...},{t,tmin,tmax},{x,xmin,xmax},...] 給出偏微分方程組上關(guān)于函數(shù)ui的數(shù)值解。y[x]/.solution 得到方程插值形式的解y[x].Plot[Evaluate[y[x]/.solution],{x,xmin,xmax}] 打印出微分方程解的圖形

7.繪圖

(1).平面圖形 顯函數(shù)繪圖

Plot[f, {x, x1, x2}, “選項(xiàng)”] 打印函數(shù)f在區(qū)間[x1, x2] 上的圖形

Plot[{f1, f2,...}, {x, x1, x2}, “選項(xiàng)”] 在同一幅圖上打印出函數(shù)f1, f2,...在區(qū)間[x1, x2] 上的圖形 參數(shù)方程繪圖

ParametricPlot[{x[t], y[t]}, {t, t0, t1}, “選項(xiàng)”] 畫出參數(shù)形式給出的函數(shù)曲線圖形 ParametricPlot[{fx, fy}, {u, u0, u1}, {v, v0, v1}, Option] 畫出參數(shù)形式給出的函數(shù)所描述的區(qū)域圖形 極坐標(biāo)圖形

PolarPlot[r, {theta, theta1, theta2}] 畫出極坐標(biāo)形式給出的函數(shù)曲線圖形 PolarPlot[{r1, r2,...}, {theta, theta1, theta2}] 同時(shí)畫出多個(gè)極坐標(biāo)形式給出的函數(shù)曲線圖形 隱函數(shù)圖形

ContourPlot[f(x, y)== 0, {x, xmin, xmax}, {y, ymin, ymax}] 打印隱函數(shù)f == 0 所描述的曲線圖 等高線圖形

ContourPlot[f, {x, xmin, xmax}, {y, ymin, ymax}] 打印函數(shù)f所對(duì)應(yīng)的等高線圖 密度圖形

DensityPlot[f, {x, xmin, xmax}, {y, ymin, ymax}] 打印函數(shù)f所對(duì)應(yīng)的密度圖 區(qū)域圖形

RegionPlot[ineq, {x, xmin, xmax}, {y, ymin, ymax}] 打印不等式ineq所描述的區(qū)域圖 Show[{g1, g2,..., gn}, Option] 顯示幾個(gè)已畫出的函數(shù)圖形 離散點(diǎn)圖形

ListPlot[{y1, y2,..., yn}] 畫出列表形式給出的函數(shù)圖象(橫坐標(biāo)為整數(shù))ListPlot[{{x1, y1}, {x2, y2},..., {xn, yn}}] 畫出表形式給出的函數(shù)圖象 ListLinePlot[list1, list2,..., Option] ListContourPlot[array] ListContourPlot[{{x1, y1, f1}, {x2, y2, f2},...}] ListDensityPlot[array] ListDensityPlot[{{x1, y1, f1}, {x2, y2, f2},...}] ArrayPlot[array] ReliefPlot[array] MatrixPlot[matrix]

Option選項(xiàng)常用的有: 圖形界面選項(xiàng)

Frame-> “True” 給圖形加上圖框 FrameLabel-> None, FrameStyle-> {}, FrameTicks-> Automatic, FrameTicksStyle-> {}, AspectRatio-> Automatic,Background-> None, GridLines-> None, GridLinesStyle-> {}, ImageSize-> Automatic, Mesh-> None, MeshShading-> None, MeshStyle-> Automatic, 坐標(biāo)軸選項(xiàng) Axes-> True, AxesOrigin-> Automatic, AxesStyle-> {}, AxesLabel-> “名1,名2” 是否給坐標(biāo)軸加上名字 RotateLabel-> True, Ticks-> Automatic, TicksStyle-> {} 圖形選項(xiàng)

PlotPoints-> 數(shù)字 畫圖時(shí)計(jì)算函數(shù)的點(diǎn)數(shù)

PlotStyle-> RGBColor[a, b, c] 產(chǎn)生彩色圖, a, b, c為[0, 1] 中的值 PlotRange-> {y1, y2} 指定函數(shù)因變量的區(qū)間 PlotLabel-> “圖名” 是否給圖形加上名字 ColorFunction-> Automatic, ColorFunctionScaling-> True, ColorOutput-> Automatic, Epilog-> {}, Filling-> None, FillingStyle-> Automatic, LabelStyle-> {}, Method-> Automatic, PlotRangeClipping-> True, PlotRegion-> Automatic, Prolog-> {}

ColorFunction-> Automatic, ColorFunctionScaling-> True, ColorOutput-> Automatic, ContourLabels-> None, ContourLines-> True, Contours-> Automatic, ContourShading-> Automatic, ContourStyle-> Automatic, Exclusions-> Automatic, GridLines-> None, GridLinesStyle-> {}, ImageMargins-> 0., ImageSize-> Automatic, LabelStyle-> {}, PlotPoints-> Automatic, PlotRange-> {Full, Full, Automatic}, PlotRegion-> Automatic Prolog-> {}, RegionFunction->(True &), RotateLabel-> True, Ticks-> Automatic, TicksStyle-> {}

(2).空間圖形

Plot3D[f[x,y],{x,xmin,xmax},{y,ymin,ymax},Option] 繪制函數(shù)z=f(x,y)在給定范圍內(nèi)的三維圖形。ParametricPlot3D[{x[t],y[t],z[t]},{t,t1,t2},Options] 繪制三維空間的曲線圖。

ParametricPlot3D[{fx[u,v],fy[u,v],fz[u,v]},{u,u1,u2},{v,v1,v2},Option] 繪制三維空間的曲面圖 RevolutionPlot3D SphericalPlot3D RegionPlot3D Show[圖形名,Option] 顯示已繪制好的圖形,按特別說明加以修改 CotourPlot3D[f[x,y,z],{x,xmin,xmax},{y,ymin,ymax},{z,zmin,zmax}] 繪制函數(shù)f=f(x,y,z)在給定范圍內(nèi)的等值面圖。ListPlot3D ListPointPlot3D 繪制3維散點(diǎn)圖 ListSurfacePlot3D ListContourPlot3D 8.編程

(1).條件結(jié)構(gòu)

If[cond,then,else,none] 如果cond成立,計(jì)算then;不成立,計(jì)算else;無法判定,計(jì)算none。Which[cond1,value1,cond2,value2,...,True,value] 如果條件cond1成立,計(jì)算value1,條件cond2成立,計(jì)算value2,...,全不成立,計(jì)算value。lhs:=rhs/;cond 如果cond成立,定義lhs為rhs,Switch[expr,form1,valu1,form2,value2,...,_,def] 如果條件cond1成立,計(jì)算value1,條件cond2成立,計(jì)算value2,...,都不相等,計(jì)算def。(2).循環(huán)結(jié)構(gòu)

Do[expr[i],{i,min,max,id}] 計(jì)算表達(dá)式expr[i],i從min到max,步長(zhǎng)為id。Do[expr,{n}] 計(jì)算表達(dá)式expr n次。

While[cond,expr] 只要cond為true,就計(jì)算expr。For[start,test,incr,expr] 從start開始計(jì)算expr一次,再計(jì)算incr一次,直到test為false結(jié)束.

第五篇:vfp命令、語句等說明總結(jié)

VFP命令、函數(shù)及程序語句大全

VFP提供一些簡(jiǎn)單的程序設(shè)計(jì)語言命令,包括賦值語句、控制語句、設(shè)置命令等,我們可根據(jù)某種功能的需要,利用這些命令及數(shù)據(jù)庫操作的有關(guān)命令構(gòu)成語句,分行存在文件中(稱為命令文件,以. PRG為擴(kuò)展名,在項(xiàng)目管理器中標(biāo)為“程序”)或一些對(duì)象的過程或事件處理程序中。如被調(diào)用,系統(tǒng)將一條條順序執(zhí)行各行命令,如遇到控制語句(IF,DO,CALL,F(xiàn)OR?等),依據(jù)控制語句的指定,轉(zhuǎn)移到指定語句再一條條順序執(zhí)行。

這些命令書寫時(shí),每條語句應(yīng)在一行中寫完,如不能寫完,可用分號(hào)“;”結(jié)束,表示下一行繼續(xù)。兩條語句不能寫在一行上。每條語句中命令字及選項(xiàng)中保留字大多數(shù)可只書寫前四個(gè)字符。

一般一個(gè)簡(jiǎn)單的VFP應(yīng)用系統(tǒng)由若干模塊組成,各自完成一定的功能,總的系統(tǒng)用一個(gè)總控模塊去控制,通過它調(diào)用子模塊,層層調(diào)用以實(shí)現(xiàn)全系統(tǒng)的功能。這種結(jié)構(gòu)如圖5.4所示。這種方式便于設(shè)計(jì)、調(diào)試,保證程序的正確性,也容易實(shí)現(xiàn)模塊共亭,實(shí)現(xiàn)軟件重用,提高程序設(shè)計(jì)效率。

主模塊可由主封面表單、主命令文件和主菜單文件構(gòu)成;各個(gè)模塊可由過程、自定義函數(shù)、表單、表單集、應(yīng)用程序或子菜單等構(gòu)成。

一個(gè)表單或一個(gè)表單集中可有一到多個(gè)用戶界面,可設(shè)置一到多個(gè)命令按鈕及其他程序控件,用戶可利用按鈕及程序控件,產(chǎn)生特定的消息觸發(fā)執(zhí)行一個(gè)程序,完成一個(gè)功能。應(yīng)用程序是對(duì)一個(gè)模塊編譯后的. APP執(zhí)行文件,“過程”是由命令組成的程序,以RETURN語句結(jié)束,它可為另一個(gè)程序所調(diào)用,調(diào)用執(zhí)行時(shí)遇到RETURN語句將返回其調(diào)用程序。

圖 5.4 VFP程序總體結(jié)構(gòu)

一.變量賦值與顯示語句

在項(xiàng)目管理器中選“代碼→程序→新建”或在命令框利用命令MODIFY COMMAND建立命令文件。

1.MODIFY COMMAND

意義:創(chuàng)建命令文件。

命令格式:MODIFY COMMAND 文件名

例如:MODIFY COMMAND PROC1

執(zhí)行此命令后,將進(jìn)入全屏幕編輯狀態(tài)。如原已建立了該文件proc1,將調(diào)出該文件在屏幕上顯示,用戶可對(duì)之修改。如是新文件,則用戶可利用全屏幕編輯鍵,輸入自己的程序。新文件將自動(dòng)加上擴(kuò)展名.PRG。

2.DO

意義:執(zhí)行命令文件程序,有三種方法:①在項(xiàng)目管理器中選“代碼→程序→選擇程序名→運(yùn)行”。②在主菜單中選“程序→運(yùn)行→輸入(選擇)程序名→運(yùn)行”。③在程序中或命令窗日中使用DO命令。命令格式:DO 程序名[WITH 表達(dá)式表]

程序名可以是上述方式建立的命令文件(.PRG文件)、可執(zhí)行文件(.EXE文件)、應(yīng)用程序(.APP文件),及對(duì).PRG文件編譯后的文件(.FXP文件)。如調(diào)用DO命令時(shí)不帶擴(kuò)展名,則按.EXE文件、.APP文件、.FXP文件、.PRG文件的順序查找同名程序并執(zhí)行之。

例如:DO PROC1

此外,程序名還可能是菜單程序,調(diào)用時(shí)必須帶擴(kuò)展名(.MPR)。例如,有菜單程序MAIN.MPR,則可如下調(diào)出執(zhí)行:

DO MAIN.MPR

程序名還可以是事件名或過程名。

其中表達(dá)式表由多個(gè)表達(dá)式組成,用逗號(hào)分開,在執(zhí)行時(shí)首先計(jì)算各表達(dá)式的值,并帶入被調(diào)程序,被調(diào)程序第一句應(yīng)是LPARAMETERS形參表語句,形參表是以逗號(hào)分隔的多個(gè)內(nèi)存變量名,其個(gè)數(shù)應(yīng)等于調(diào)用時(shí)的表達(dá)式的個(gè)數(shù),執(zhí)行時(shí),首先用調(diào)用語句中各表達(dá)式的值對(duì)應(yīng)給它們賦值。

例如:主程序中:DO PROC1 WITH “AB”,21

被調(diào)程序:LPARAMETERS M1,X0

執(zhí)行時(shí),首先完成賦值:M1=“AB”;X0=21,再往下執(zhí)行。

當(dāng)使用DO運(yùn)行一個(gè)程序時(shí),包含在其中的命令一直執(zhí)行,直到下列某一事件發(fā)生。遇到RETURN語句,返回到調(diào)用程序DO命令的下一句,遇到了CANCEL命令,返回VFP命令狀態(tài)。遇到QUIT命令退出程序并退出VFP;到達(dá)文件尾回到調(diào)用前狀態(tài);再遇到另一個(gè)DO命令,將轉(zhuǎn)人新程序執(zhí)行。

3.PUBLIC

意義:設(shè)置全局性內(nèi)存變量命令。

格式:PUBLIC 變量名1[,變量名2]?

在不同程序或過程或事件中,同名內(nèi)存變量的值不一定相同,如要將一個(gè)程序(過程、事件)中變量的值傳到另一程序(過程、事件)中,可應(yīng)用上述命令將它定義成全局變量。

4.PRIVATE

意義:設(shè)置局部變量的命令。

格式:PRIVATE[ALL[LIKE∣EXCEPT 通配符]∣內(nèi)存變量表]

其中選項(xiàng)意義:ALL將所有內(nèi)存變量說明為局部性變量,ALL[LIKE∣EXCEPT 通配符]將變量名能與通配符相匹配的內(nèi)存變量說明為局部性變量。“ALL EXCEPT通配符”將除了能與通配符相匹配的變量名之外的內(nèi)存變量說明為局部性變量。在程序中,為了一個(gè)程序的運(yùn)行結(jié)果不影響另一個(gè)程序的執(zhí)行,不希望同名變量將值從一個(gè)程序帶到另一個(gè)程序而造成干擾。為此,可將該變量定義成局部性變量。

5.DIMENSION

意義:定義內(nèi)存變量數(shù)組命令,VFP中可定義一維或二維數(shù)組。

格式:DIMENSION 數(shù)組名(數(shù)字表達(dá)式1[,數(shù)字表達(dá)式2])[,數(shù)組名2(數(shù)字表達(dá)式1[,數(shù)字表達(dá)式2])]?

每個(gè)數(shù)組的每個(gè)元素都可單獨(dú)使用,如同一個(gè)內(nèi)存變量,稱為下標(biāo)變量,下標(biāo)起始值為1。

例如,DIMENSION ARRAY1(8,20),X1(30)定義了兩個(gè)數(shù)組,數(shù)組名分別為ARRAY1和X1,前一個(gè)數(shù)組共有20×8=160個(gè)元素:ARRAY1(l,l)、ARRAY1(l,2)?? ARRAY1(l,20),ARRAY1(2,1)?ARRAY1(8,20)。對(duì)各元素也可用單下標(biāo)取用其值,如用ARRAY1(l),ARRAY1(2)?ARRAY1(160)也可訪問該數(shù)組各元素,與前面雙下標(biāo)表示形式一一對(duì)應(yīng)。

6.PUBLIC ARRAY

意義:定義全局性內(nèi)存變量數(shù)組。

格式:PUBLIC ARRAY 數(shù)組名(數(shù)字表達(dá)式1[,數(shù)字表達(dá)式2])[,數(shù)組名2(數(shù)字表達(dá)式1[,數(shù)字表達(dá)式2])]?

7.=

意義:賦值語句。

將表達(dá)式的值賦值給一個(gè)內(nèi)存變量。對(duì)變量賦值后,該變量類型也即確定為表達(dá)式返回值的類型。對(duì)一個(gè)變量可重復(fù)賦值,也可改變變量的類型。但為了保證程序的清晰和結(jié)構(gòu)完整,建議在一個(gè)系統(tǒng)中每個(gè)變量名應(yīng)有確定的意義和數(shù)據(jù)類型。

8.STORE

意義:同時(shí)對(duì)多個(gè)變量賦值命令。

格式:STORE 表達(dá)式 TO變量1[,變量2]?

在程序運(yùn)行時(shí)常要求用戶輸入控制參數(shù)或數(shù)據(jù),實(shí)現(xiàn)此功能語句我們稱為人機(jī)對(duì)話語句。在程序中如插入人機(jī)對(duì)話語句,用戶可借助鍵盤輸入?yún)?shù)或控制量賦值給變量。控制程序走向,或用于不同數(shù)據(jù)處理。在程序執(zhí)行到這類語句時(shí),將停止運(yùn)行,在屏幕上顯示命令中附注的提示信息,同時(shí)等待用戶從鍵盤輸入數(shù)據(jù),賦給所指定的變量。完成賦值之后再接著運(yùn)行下一條語句。在VFP中這類語句可在主控程序中或在調(diào)試程序時(shí)使用,在表單程序中使用文本框等各種控件及消息框代替它們。

9.INPUT

意義:輸入各種類型數(shù)據(jù)賦給內(nèi)存變量

格式:INPUT “提示信息” TO 內(nèi)存變量名

本命令允許輸入字符類型、數(shù)值類型、日期類型、邏輯類型等不同類型的數(shù)據(jù),要求輸入數(shù)據(jù)是字符類型時(shí),數(shù)據(jù)兩端要加定界符,例“張平”;輸入數(shù)據(jù)是日期類型時(shí),要按{MM/DD/YY}或設(shè)定的格式,例{12/21/00};邏輯類型按.T.、.F.格式。

用戶輸入還可以是包括變量名及函數(shù)在內(nèi)的表達(dá)式,但變量必須是己賦值的,表達(dá)式是可以計(jì)算出確定值的。用戶輸入完后回車表示輸入結(jié)束。

例:INPUT“請(qǐng)輸入初始日期:” TO D1

屏幕上顯示:“請(qǐng)輸入初始日期:”,光標(biāo)在此句之后。用戶可輸入{05/10/96}。

此時(shí)用戶如果執(zhí)行命令:?D1

屏幕上將顯示:05/10/96

10.ACCEPT

意義:輸入字符串賦給變量。

格式:ACCEPT[“提示內(nèi)容”]TO內(nèi)存變量名

該命令和INPUT命令區(qū)別有兩點(diǎn):

.輸入數(shù)據(jù)均被視為字符類型。

.輸入數(shù)據(jù)兩端不需加定界符,如加了定界符,定界符被視作字符串的一部分。

11.WAIT

意義:接收單個(gè)字符賦給變量,或中斷程序,按任意鍵后繼續(xù)。

格式:WAIT [“提示信息”] TO 內(nèi)存變量名

該命令與ACCEPT命令不同點(diǎn)在于只接收從鍵盤輸入的一個(gè)字符,用戶輸入一個(gè)字符后無須回車。該命令也可用在VFP表單程序的某個(gè)事件中,用于中斷該事件的執(zhí)行,讓屏幕顯示程序運(yùn)行的中間結(jié)果,按某個(gè)鍵或單擊鼠標(biāo)后再繼續(xù)執(zhí)行。

12.GET

意義:格式化輸入數(shù)據(jù),給內(nèi)存變量賦值或修改表中當(dāng)前記錄字段內(nèi)容。

格式:@ 行號(hào),列號(hào) GET 內(nèi)存變量名或字段名

[FUNCTION功能代碼][PICTURE格式代碼][DEFAULT表達(dá)式][MESSAGE提示信息]

[RANGE輸入值范圍下限,輸入值范圍上限][SIZE文本框高度,文本框?qū)挾萞[VALID 條件表達(dá)式]

該命令可用于對(duì)內(nèi)存變量賦值,也可用于修改當(dāng)前打開表中當(dāng)前記錄中指定字段的內(nèi)容。如對(duì)內(nèi)存變量賦值且省略DEFAULT選項(xiàng),在使用此語句時(shí),必須已對(duì)該內(nèi)存變量賦值。否則按此選項(xiàng)中表達(dá)式對(duì)內(nèi)存變量初始化。

本命令執(zhí)行后只顯示內(nèi)存變量或字段當(dāng)前值,要到執(zhí)行命令“READ”時(shí),此語句方被激活,程序停止執(zhí)行,等待用戶從鍵盤輸入數(shù)據(jù),直待回車后才繼續(xù)執(zhí)行。行號(hào)、列號(hào)為當(dāng)前窗口中字符行和列的位置號(hào)。行號(hào)與列號(hào)允許是小數(shù)。FUNCTION選項(xiàng)用于對(duì)輸入內(nèi)容限制或變化。功能代碼:

A:只允許輸入內(nèi)容由字母字符組成,包括不允許空格和標(biāo)點(diǎn)符號(hào)。

B:數(shù)值數(shù)據(jù)左對(duì)齊,默認(rèn)格式為右對(duì)齊。

I:文本居中對(duì)齊。

J:文本右對(duì)齊,默認(rèn)為左對(duì)齊。

Sn:限定文本框中字符個(gè)數(shù)為n。如S20。

T:去掉前導(dǎo)和后綴空格。

Z:當(dāng)數(shù)值數(shù)據(jù)值為0時(shí)顯示空格。

!:把字母字符轉(zhuǎn)換為大寫。

PICTURE選項(xiàng)用于限定輸入數(shù)據(jù)的字符類型及大小。功能代碼例:

A:該位為字母或數(shù)字

L:只允許邏輯數(shù)據(jù)。

N:該位為字符或數(shù)字。

X:任何字符。

I:該位為數(shù)字,或數(shù)值數(shù)據(jù)中的符號(hào)。

-:標(biāo)明小數(shù)點(diǎn)位置。,:用逗號(hào)分隔左右數(shù)字。

!:將小寫字母轉(zhuǎn)換為大寫字符。

例:@3,10 GET x1 DEFAULT 0 PICTURE“9999.99”

此時(shí)在屏幕第3行的第10列位置顯示方框,其中內(nèi)容為DEFAULT規(guī)定的初始值0.00,如再發(fā)出命令:READ,將光標(biāo)落在尚未激活的第一個(gè)方框上等待輸入,只能輸入數(shù)字和符號(hào),且整數(shù)部分不多于4位,小數(shù)部分不多于2位,否則將提示“請(qǐng)您重新輸入”。

RANGE、VALID兩個(gè)選項(xiàng)用于保證數(shù)據(jù)完整性,輸入數(shù)據(jù)必須在預(yù)定范圍內(nèi),滿足條件表達(dá)式要求時(shí),才可完成賦值操作。本語句還有設(shè)置字體、字形和顏色的選項(xiàng)。

在VFP中,綜合上述人機(jī)交互命令尤其是@? GET命令的功能和特性,設(shè)計(jì)了文本框、編輯框等類和控件,便之應(yīng)用更加方便、簡(jiǎn)單,我們將在下一章中介紹。

程序運(yùn)行結(jié)果一般由輸出語句使其顯示在屏幕上或輸出到其他地方,輸出語句可將數(shù)據(jù)輸出到屏幕上顯示也可傳送給打印機(jī)或傳送存入到其他文件中。屏幕顯示語句在VFP中一般用在主控程序或調(diào)試程序時(shí)使用。在表單程序中使用各種控件、消息框代替它們。

13.?|??

意義:計(jì)算<表達(dá)式表>所指定的各表達(dá)式的值,并顯示在屏幕上。

格式:?表達(dá)式1[,表達(dá)式2]?

用?時(shí),從下一行第一列起顯示結(jié)果。用??時(shí),從當(dāng)前行當(dāng)前列起顯示結(jié)果。

14.SAY

意義:格式化輸出語句。

格式:@行號(hào),列號(hào) SAY表達(dá)式[FUNCTION功能代碼] [PICTURE格式代碼][SIZE高度,寬度]

有關(guān)選項(xiàng)的意義與@?GET命令相似,此外還有關(guān)于字體,顏色設(shè)置的選項(xiàng)。若發(fā)出有SET DEVICE TO PRINTER命令,輸出到打印機(jī),否則輸出至屏幕上顯示。

本語句常與@? GET語句合用,合用時(shí),行號(hào)、列號(hào)指SAY內(nèi)容顯示所在行、列號(hào),GET變量?jī)?nèi)容框?qū)⒎胖迷赟AY內(nèi)容之后。二.程序控制命令

1.IF?ENDIF命令

意義:分支條件語句,根據(jù)邏輯表達(dá)式的值,有選擇的執(zhí)行一組命令。根據(jù)條件表達(dá)式的值是.T.還是.F.控制程序流向。

格式:

IF 條件表達(dá)式

語句序列1

[ELSE

語句序列2]

ENDIF

IF條件表達(dá)式語句是條件語句的開始,ENDIF語句是條件語句的終止。語句序列是若干條順序執(zhí)行的語句。執(zhí)行時(shí)首先計(jì)算條件表達(dá)式的值,如結(jié)果為“真”(.T.)則執(zhí)行語句序列l(wèi),執(zhí)行完后退出該語句。如條件表達(dá)式不滿足,且有ELSE語句和語句序列2,則執(zhí)行語句序列2。其程序流程圖如圖5.5所示。

圖5.5 分支結(jié)構(gòu)程序流程圖

圖5.6 主控模塊程序流程圖

在一個(gè)分支控制語句塊中可以嵌套另一個(gè)IF?ENDIF語句塊。【例5.7】主控模塊的程序

程序流程圖如圖5.6所示。編寫程序清單如下: CLEAR &&清屏幕

@ 5,27 SAY “設(shè)備管理系統(tǒng)” @ 7,36 SAY “主菜單”

@10,21 PROMPT “1.各種查詢、屏幕修改”+SPAC(16)@11,21 PROMPT “2.數(shù)據(jù)編輯”+SPAC(26)@12,21 PROMPT “3.資產(chǎn)統(tǒng)計(jì)”+SPAC(26)@13,21 PROMPT “4.報(bào)表打印”+SPAC(26)@14,21 PROMPT “5.系統(tǒng)維護(hù)”+SPAC(26)MENU TO m_choic &&等待用戶輸入

IF LASTKEY()=27 &&按Esc鍵返回VFP

RETURN ENDIF

IF m_choic=1

DO sbcx_sc.spr

ELSE

IF m_choic=2

DO sjbj_sc.spr

ELSE

IF m_choic=3

DO zctj_sc.spr

ELSE

IF m_choic=4

DO bbdy_sc.spr

ELSE

IF m_choic=5

DO xtwh_pg

ENDIF

ENDIF

ENDIF

ENDIF ENDIF RETURN

2.CASE

意義:分情況語句,當(dāng)求解一個(gè)問題存在多種情況,如要求對(duì)不同選擇執(zhí)行不同的語句序列,可采用分情況語句。該語句一句中列出許多語句成分,每個(gè)語句成分給出一個(gè)條件表達(dá)式,每次只根據(jù)具體條件找出第一個(gè)條件表達(dá)式值為.T.的語句成分,執(zhí)行該成分語句中的語句序列后退出該語句。

命令格式:

DO CASE

CASE條件表達(dá)式1

語句序列1

CASE條件表達(dá)式2

語句序列2

?

CASE條件表達(dá)式n

語句序列n

[OTHERWISE

語句序列n+1]

END CASE

執(zhí)行該語句時(shí),系統(tǒng)逐一計(jì)算條件表達(dá)式1的值,條件表達(dá)式2的值?只要有一個(gè)條件表達(dá)式的值為.T.則執(zhí)行其后語句序列,執(zhí)行它后退出本分情況語句。

如到條件表達(dá)式n的值仍均為.F.又有OTHERWISE成分,則執(zhí)行語句序列n+l,其程序流程圖如圖5.7所示。

仍如上面主控程序的例子,程序可設(shè)計(jì)為:

CLEAR &&清屏幕

@ 5,27 SAY “設(shè)備管理系統(tǒng)”

@ 7,36 SAY “主菜單”

@10,21 PROMPT “1.各種查詢、屏幕修改”+SPAC(16)

@11,21 PROMPT “2.數(shù)據(jù)編輯”+SPAC(26)

@12,21 PROMPT “3.資產(chǎn)統(tǒng)計(jì)”+SPAC(26)

@13,21 PROMPT “4.明細(xì)報(bào)表打印”+SPAC(22)@14,21 PROMPT “5.系統(tǒng)維護(hù)”+SPAC(26)MENU TO m_choic &&等待用戶輸入

IF LASTKEY()=27 &&按Esc鍵返回VFP

RETURN ENDIF

DO CASE

CASE m_choic=1

DO sbcx_sc.spr

CASE m_choic=2

DO sjbj_sc.spr

CASE m_choic=3

DO zctj_sc.spr

CASE m_choic=4

DO bbdy_sc.spr

CASE m_choic=5

DO xtwh_pg

ENDCASE

RETURN

圖5.7 CASE結(jié)構(gòu)程序流程圖

從上面兩段程序可見,對(duì)于同一個(gè)問題,用DO CASE ?ENDCASE 語句比IF?ENDIF語句要簡(jiǎn)潔了并且邏輯關(guān)系清晰,因此不容易出錯(cuò)。在分情況語句中也可嵌入分支條件語句及分情況。它本身也可嵌入到分支條件語句中去使用。

在對(duì)數(shù)據(jù)表中數(shù)據(jù)時(shí),常常每條記錄被處理的過程是一樣的,處理語句也就大體相同,如果表中有多少記錄就寫多少條語句是十分困難的,為避免重復(fù)書寫,可使用循環(huán)。

3.DO WHILE?.ENDDO

意義:循環(huán)語句,可使多次重復(fù)執(zhí)行同一組語句。格式:

DO WHILE條件表達(dá)式

語句序列

[LOOP]

[EXIT]

ENDDO

其中“DO WHILE條件表達(dá)式”語句稱為循環(huán)起始語句,“ENDDO”語句稱為循環(huán)結(jié)束語句,進(jìn)入此命令時(shí)首先檢查條件表達(dá)式的值是否為真(.T.)。如果是真,則執(zhí)行語句序列,然后再判斷條件表達(dá)式的結(jié)果,如仍為真,則繼續(xù)下去。如果為假(.F.)則退出循環(huán),執(zhí)行ENDDO后面的語句。如果進(jìn)入本命令一開始,條件表達(dá)式的值為假,則語句序列一次也不執(zhí)行,就直接轉(zhuǎn)入執(zhí)行ENDDO后面的語句。其中LOOP意義為結(jié)束本次循環(huán),返回循環(huán)體開始。EXIT意義為結(jié)束循環(huán),轉(zhuǎn)入執(zhí)行ENDDO后面的語句。

LOOP語句和EXIT語句一般用在分支條件語句中,因而語句格式為:

DO WHILE 條件表達(dá)式1

語句序列1

[IF條件表達(dá)式2

LOOP

ELSE

語句序列2

ENDIF]

[IF條件表達(dá)式3

EXIT

ELSE

語句序列3

ENDIF]

ENDDO

其程序流程圖如圖5.8所示。

在使用時(shí)必須保證經(jīng)有限次循環(huán)后條件表達(dá)式1應(yīng)變?yōu)榧倩驐l件表達(dá)式3的值應(yīng)變?yōu)檎妫雇顺鲅h(huán)。否則就可能成為死循環(huán)。在條件表達(dá)式中的變量稱循環(huán)變量,在數(shù)據(jù)庫中循環(huán)變量可能是內(nèi)存變量,也可能是表中的指針。必須注意在每次循環(huán)過后,循環(huán)變量的值都要改變并且是向最終使條件表達(dá)式1的值為假或條件表達(dá)式3的值變真的方向變化,否則就無法滿足前述退出條件。在VFP中有兩類特殊用法。

(1)循環(huán)變量是指針。該用法中有兩種結(jié)構(gòu)①指針首先指向第一條的DO WHILE結(jié)構(gòu)如圖5.9所示。②指向滿足條件記錄的第一條的DO WHILE結(jié)構(gòu)如圖5.10所示。

圖5.8 DO WHILE?ENDDO結(jié)構(gòu)程序流程圖

圖5.9 指針做循環(huán)變量開始指向第一條時(shí)的DO WHILE結(jié)構(gòu)流程圖

圖5.10 指針做循環(huán)變量開始指向滿足條件記錄的第一條時(shí) 的DO WHILE結(jié)構(gòu)流程圖

格式1:圖5.9實(shí)現(xiàn)的語句。

USE(表名)

SELECT工作區(qū)別名

GO TOP

DO WHILE NOT EOF()

語句序列

SKIP

ENDDO

在本格式中,循環(huán)變量是表中指針,首先讓指針指向表的第一條記錄,如果不是文件尾,則執(zhí)行語句序列之后讓指針下移一條,再返回判斷指針是否指向文件尾。這樣一直繼續(xù)下去直到指針指到最后一條記錄的后面,循環(huán)結(jié)束。

【例5.8】在學(xué)生表中有少數(shù)學(xué)生更換了班級(jí),現(xiàn)要求在屏幕上一屏一屏地顯示每個(gè)學(xué)生的數(shù)據(jù),并提問是否修改班級(jí)名稱,如回答“Y”,則提供修改框。

SET TALK OFF

USE學(xué)生

KEY=“Y”

GO TOP

DO WHILE NOT EOF()

@3,10 SAY“姓名:”+姓名

@5,10 SAY“班級(jí):”+班級(jí)

@7,10 SAY“出生日期:”+DTOC(出生日期)

@9,10 SAY“是否修改,Y/N?’GET KEY

READ

IF UPPER(KEY)=“Y”

@11,10 SAY“請(qǐng)輸入改后班級(jí)名稱” GET 班級(jí)

READ

ENDIF

SKIP

ENDDO

USE

SET TALK ON

格式2:如果只按某個(gè)條件查看記錄,則可用查找語句開始。圖5.10實(shí)現(xiàn)語句:

LOCATE FOR條件表達(dá)式

DO WHILE NOT EOF()

語句序列

CONTINUE

ENDDO

例5.8中如只查99級(jí)學(xué)生,顯示其姓名則:

LOCATE FOR “99”$班級(jí)

DO WHILE NOT EOF()

?姓名

CONTINUE

ENDDO

(2)當(dāng)于DO UNTIL的循環(huán)結(jié)構(gòu)。

有些循環(huán)要在執(zhí)行部分語句之后再根據(jù)一個(gè)條件表達(dá)式判斷是否結(jié)束,此時(shí)循環(huán)條件可用常量.T.,見圖5.11所示。

圖5.11 DO UNTIL結(jié)構(gòu)程序流程圖

語句格式: DO WHILE.T.語句序列

IF 條件表達(dá)式

EXIT ENDIF

ENDDO

【例5.9】求編寫學(xué)生表錄入新數(shù)據(jù)的程序,每次錄入一條記錄,之后提問是否繼續(xù),如回答不是“Y”,就停止錄入。

SET TALK OFF

USE 學(xué)生

KEY=“ ”

DO WHILE.T.APPEND BLANK

@3,10 SAY“姓名:” GET 姓名

@5,10 SAY“班級(jí):” GET 班級(jí)

@7,10 SAY“出生日期:”GET 出生日期

READ

@9,10 SAY“否繼續(xù)?Y/N?” GET KEY

READ

IF UPPER(KEY)<>“Y”

EXIT

ENDIF

ENDDO

USE

SET TALK ON

此語句由用戶輸入Y或N控制程序結(jié)束。

上述第一、二兩種格式可以用等價(jià)的SCAN循環(huán)取代。

4.SCAN?ENDSCAN循環(huán)語句

意義:在數(shù)據(jù)表中循環(huán)檢查或處理一條條記錄。

命令格式一:

SCAN

語句序列

ENDSCAN

此句等價(jià)于前述格式1的語句。

命令格式二:

SCAN FOR條件表達(dá)式

語句序列

ENDSCAN

本語序等價(jià)于前述格式2的語句。有一些循環(huán)次數(shù)是一定的,或者循環(huán)變量的值在每次循環(huán)中增加的量是相同的,則可應(yīng)用FOR循環(huán)。

5.FOR?ENDFOR循環(huán)語句

命令格式:

FOR內(nèi)存變量=初始值 TO 終了值[STEP 增量]

語句序列

ENDFOR

此循環(huán)以某個(gè)內(nèi)存變量為循環(huán)變量,進(jìn)入循環(huán)時(shí)首先給它賦初始數(shù)值,只要不超過終了值,則執(zhí)行語句序列。STEP語句為可選項(xiàng),指示在每次循環(huán)后循環(huán)變量的增加量。前面執(zhí)行語句序列之后,將循環(huán)變量值增加增量的值,再判斷是否超過終了值,這樣繼續(xù)下去直到超過終了值。增量可為正值也可為負(fù)值,省略時(shí)默認(rèn)值是1。如增量為正,則當(dāng)循環(huán)變量大于終了值時(shí),循環(huán)結(jié)柬。如增量為負(fù),則每循環(huán)一次,循環(huán)變量均減小,減少到小于終了值時(shí)循環(huán)結(jié)束。

例5.8中修改班級(jí)名的程序也可寫為:

SET TALK OFF

USE 學(xué)生

KEY=“ ”

N=RECCOUNT()&&記錄總條數(shù)

FOR I=1 TO N

@3,10 SAY“姓名:”十姓名

@5,10 SAY“班級(jí):”十班級(jí)

@7,10 SAY“出生日期:”+DTOC(出生日期)

9、10 SAY“是否修改班級(jí)名,Y/N?” GET KEY

READ

IF UPPER(KEY)=“Y”

@11,10 SAY“請(qǐng)輸入改后班級(jí)名稱” GET 班級(jí)

READ

ENDIF

ENDFOR

USE

SET TALK ON

使用相對(duì)指針,如果打開索引,或某些錄入、修改、查詢操作使當(dāng)前指針位置改變都可能引起錯(cuò)誤。不如本例中采用物理地址,比較可靠。

【例5.10】要求輸入N個(gè)學(xué)生的總分X,按總分分成優(yōu)、良、及格、不及格四個(gè)等級(jí),統(tǒng)計(jì)每個(gè)等級(jí)的人數(shù)。等級(jí)劃分標(biāo)準(zhǔn)為:90-100分為優(yōu),75-89分為良,60-74分為及格,59分及以下為不及格。

SET TALK OFF

DIMENSION M(4)&&定義數(shù)組

STORE 0 TO M&&M所有元素初值設(shè)為0

x=0

INPUT“學(xué)生人數(shù) N=?” TO N&&計(jì)數(shù)循環(huán)

FOR I=1 TO N

?“請(qǐng)輸入第”,I,“人的成績(jī)”

@ROW(),20 SAY “X=?” GET X

READ

DO CASE

CASE x>=90

M(l)=M(1)+1&&統(tǒng)計(jì)優(yōu)秀生人數(shù)

CASE x>=75

M(2)=M(2)+1

CASE x>=60

M(3)=M(3)+l

CASE x<60 AND x>=0

M(4)=M(4)+1

OTHERWISE

?“輸入數(shù)據(jù)有錯(cuò),請(qǐng)重輸”

I=I-1

ENDCASE

ENDFOR

?“優(yōu)、良、及格、不及格人數(shù)各為”,M(1),M(2),M(3),M(4)SET TALK ON

【例5.11】設(shè)有商品表,結(jié)構(gòu)為商品(商品代碼,品名,單價(jià),數(shù)量,金額),欲對(duì)其中部分商品調(diào)動(dòng)單價(jià),為此建立一個(gè)調(diào)價(jià)表,其結(jié)構(gòu)為調(diào)價(jià)(商品代碼,原單價(jià),新單價(jià)),編寫程序用調(diào)價(jià)表中新單價(jià)數(shù)據(jù)修改商品表中單價(jià)與金額。

SET TALK OFF

SELE 1

USE商品

SELE 2

USE 調(diào)價(jià)

SCAN

代碼1=商品代碼

SELE 1

LOCATE FOR商品代碼=代碼1

IF NOT EOF()

REPL 單價(jià) WITH 調(diào)價(jià).新單價(jià)、金額 WITH 單價(jià)*數(shù)量

ENDIF

SELE 2

ENDSCAN

CLOSE ALL

SET TALK ON

本例中設(shè)置二個(gè)工作區(qū),分別打開二個(gè)表,首先在工作區(qū)2上利用SCAN循環(huán)遍歷調(diào)價(jià)所有記錄,對(duì)每一記錄在商品表中查找有無商品代碼標(biāo)識(shí)相同的記錄,如有,則用新單價(jià)更新原單價(jià),并修改金額。由于在非當(dāng)前工作區(qū)中不能移動(dòng)指針,不能查詢,不能修改數(shù)據(jù),因而在轉(zhuǎn)到商品表中查詢之前要將商品表所在工作區(qū)1設(shè)為當(dāng)前工作區(qū),更新以后又轉(zhuǎn)到工作區(qū)2將調(diào)價(jià)表中指針指向下一條,再準(zhǔn)備按第二個(gè)品種調(diào)價(jià)。

在當(dāng)前工作區(qū)中可讀取非當(dāng)前工作區(qū)中數(shù)據(jù),如本例中用 “調(diào)價(jià).單價(jià)”這樣的格式從工作區(qū)2的調(diào)價(jià)表中讀取其中指針?biāo)赣涗浀膯蝺r(jià),這種方式稱為聯(lián)訪。如此對(duì)多個(gè)數(shù)據(jù)表操作十分麻煩,可采用預(yù)先建立關(guān)聯(lián)的辦法,在一個(gè)表中移動(dòng)指針時(shí),第二個(gè)表中指針按關(guān)鍵字保持一致的方式跟著移動(dòng)。

三.其他常用命令

1.SET RELATION

意義:將當(dāng)前數(shù)據(jù)庫和“別名”工作區(qū)中的表文件關(guān)聯(lián)在一起,當(dāng)前表文件稱為主動(dòng)表文件,“別名”工作區(qū)中的表文件稱為被關(guān)聯(lián)表文件,每當(dāng)主動(dòng)表文件中指針移動(dòng)時(shí),被關(guān)聯(lián)表文件中指針也相應(yīng)移動(dòng)。

命令格式:SET RELATION TO 字段名 INTO 別名[ADDITIVE]

命令中選用的“字段名”必須同時(shí)包含在兩個(gè)表文件中,且被關(guān)聯(lián)表必須以該字段建立索引文件并打開為主索引文件。每當(dāng)主動(dòng)表文件中記錄指針移動(dòng)時(shí),被關(guān)聯(lián)表中記錄指針根據(jù)主索引文件指引指向與之相匹配(索引字段值等于主動(dòng)表當(dāng)前記錄該字段的值)的第一條記錄。若找不到匹配記錄,則指針將指向文件尾,EOF()為真(.T.)

如命令無ADDITIVE選項(xiàng),在建立關(guān)聯(lián)時(shí)將取消當(dāng)前數(shù)據(jù)庫與其他數(shù)據(jù)庫的任何關(guān)聯(lián),僅保留一個(gè)新關(guān)聯(lián)。而選了此選項(xiàng),則原有關(guān)聯(lián)均保留,增加一個(gè)新關(guān)聯(lián)。

要注意的是,如果對(duì)應(yīng)主動(dòng)表中某記錄在被關(guān)聯(lián)表中找不到匹配記錄時(shí),主動(dòng)表中數(shù)據(jù)被改為0。例5.11中如果調(diào)價(jià)表中商品包括商品表中全部商品,利用此命令程序可修改為:

USE 調(diào)價(jià)&&第一個(gè)打開表默認(rèn)置于1號(hào)工作區(qū)

INDEX ON 商品代碼 TO INDEX1

SELECT 2

USE 商品

SET RELATION TO 商品代碼 INTO 調(diào)價(jià)

SCAN

REPLACE 單價(jià) WITH 調(diào)價(jià).新單價(jià),金額 WITH 單價(jià)*數(shù)量

ENDSCAN

本例中關(guān)于被關(guān)聯(lián)表中字段名也可用“區(qū)號(hào).字段名”形式對(duì)之訪問。

不過使用本程序要求兩表中內(nèi)容必須匹配,例如例5.11中如商品只有部分調(diào)價(jià),在調(diào)價(jià)表中只有商品表中部分商品,那么該程序?qū)⑹股唐繁碇胁徽{(diào)價(jià)商品單價(jià)均變?yōu)?。

一般在涉及利用一個(gè)表數(shù)據(jù)修改另一個(gè)表數(shù)據(jù)時(shí),我們以采用SQL語言中修改命令UPDATE比較好。也可采用全聯(lián)結(jié)視圖再對(duì)之操作。”

2.RUN

意義:在VFP環(huán)境中調(diào)用DOS命令。·

命令格式:RUN DOS命令或!DOS命令

3.LOAD命令

意義:把匯編或C語言編寫并編譯的二進(jìn)制文件調(diào)入內(nèi)存命令。

命令格式:LOAD 二進(jìn)制文件名

4.CALL命令

意義:執(zhí)行由LOAD裝入內(nèi)存的二進(jìn)制代碼文件命令。命令格式:CALL 文件名[WITH 字符表達(dá)式/內(nèi)存變量] 其中WITH選項(xiàng)用于向調(diào)用程序傳遞參數(shù)。

5.ON ERROR

意義:當(dāng)出現(xiàn)錯(cuò)誤時(shí)執(zhí)行的命令。

命令格式:ON ERROR 命令

其中命令可為任何VFP語句。在程序調(diào)試過程中,可在程序中加入此命令,并設(shè)計(jì)命令處理程序,在其中可加入顯示ERROR(),MESSAGE(),LINENO()和PROGRAM()的語句,將錯(cuò)誤代碼、錯(cuò)誤消息、錯(cuò)誤行號(hào)及程序名稱顯示出來,以幫助發(fā)現(xiàn)錯(cuò)誤所在,方便糾正錯(cuò)誤。在應(yīng)用程序中,有時(shí)可能出現(xiàn)一些不影響最終結(jié)果的錯(cuò)誤,我們也可在程序中加入這類錯(cuò)誤陷阱,所指定的命令可以是一條無效語句,不讓錯(cuò)誤影響程序運(yùn)行。

【例5.12】程序出錯(cuò)時(shí)的處理程序及調(diào)用方法 主程序:

*---Set system enviroment------

clos data

clea

on erro do showerro with prog(),lineno(),erro(),mess()&&調(diào)用出錯(cuò)程序showerro

語句序列

程序出錯(cuò)時(shí)的處理程序:

para m_prog,m_line,m_num,m_mess&&傳遞參數(shù)

priv m_odcons&&定義局部變量

m_odcons=set('cons')

set cons off

defi wind erro_win from 0,0 to 14,49;

titl ' 系統(tǒng)錯(cuò)誤 ';

colo gr+/b;

shad doub;

in desktop

move wind erro_win cent

acti wind erro_win

@1,4 say ' 錯(cuò)誤警告' colo gr+/b

@3,8 say '當(dāng)前程序無法繼續(xù),按<確定>將返回主調(diào)!' colo w+/b

@4,4 say '程序建議:稍后再試或與軟件供應(yīng)商聯(lián)系.' colo w+/b

@6,4 say '出錯(cuò)程序:'+m_prog colo w+/b

@7,4 say '出 錯(cuò) 行:'+allt(str(m_line))colo w+/b

@8,4 say '錯(cuò)誤代碼:'+allt(str(m_num))colo w+/b

@9,4 say '錯(cuò)誤內(nèi)容:'+iif(len(m_mess)<=28,m_mess,subs(m_mess,1,28)+'...')colo w+/b

@2,3 to 2,wcol()-4 colo w/b

@5,3 to 10,wcol()-4 colo w/b

=opendbf('errosave','errosave','shar')&&存放錯(cuò)誤情況

inse into;

dbferrosave(errodate,errotime,erroprog,erroline,errocode,erromess);

valu(date(),time(),m_prog,m_line,m_num,m_mess)

use in errosave

m_readkey=20

m_cnt=1

do while m_readkey=20

if mod(m_cnt,2)=0

@1,6 say ' 錯(cuò)誤警告' colo b/b

else

@1,6 say ' 錯(cuò)誤警告' colo gr+/b

endi

@wrow()-2,wcol()/2-2 get mb_isee func '*th 確定' defa 1 &&colo sche 13

read cycl modal time 0.4

m_readkey=readkey()

m_cnt=m_cnt+1

endd

set cons &m_odcons

clea wind

close data

clea

retu to master&&返回主程序

6.顯示文件目錄命令

格式:DIR [<驅(qū)動(dòng)器>][<路徑>][<文件名>] 功能:顯示指定的磁盤驅(qū)動(dòng)器上的文件名

說明:<文件名>中可帶通配符;命令中不指定文件名,則僅僅顯示指定目錄下的數(shù)據(jù)表文件名。7.清屏命令CLEAR 格式:CLEAR 功能:清除屏幕 8.總清命令CLEAR ALL 格式:CLEAR ALL 功能:關(guān)閉所有打開的數(shù)據(jù)表文件、索引文件和其他各種文件,清除已有的內(nèi)存變量 9.SET TALK ON/OFF

四.程序設(shè)計(jì)基礎(chǔ)

程序的概念

命令執(zhí)行方式:通過命令菜單或直接在命令窗口輸命令來執(zhí)行,執(zhí)行的結(jié)果顯示在屏幕上。程序執(zhí)行方式:以程序的方式來執(zhí)行。

程序是能夠完成一定任務(wù)的命令的有序集合,這組命令存放在程序文件(*.prg)中,執(zhí)行程序時(shí),系統(tǒng)按一定的次序自動(dòng)執(zhí)行包含在程序文件中的命令。

程序的特點(diǎn)

可以利用編輯器,方便地輸入、修改和保存程序。可以利用多種方式、多次運(yùn)行程序。可以在一個(gè)程序中調(diào)用另一個(gè)程序。

程序的基本要求

正確性,能實(shí)現(xiàn)算法的各個(gè)步驟,邏輯上正確,對(duì)輸入產(chǎn)生的錯(cuò)誤有檢測(cè)措施。通用性,不能只解決一個(gè)問題,還考慮解決一類問題。高效率性,編寫執(zhí)行時(shí)間短,占用存儲(chǔ)空間少的程序。可維護(hù)性,程序應(yīng)易讀、易懂、易修改。安全性,必須確保安全、可靠。

程序文件的建立

在項(xiàng)目管理器中和菜單中建立

用命令方式:modify command <文件名>

程序的執(zhí)行

從“ 程序” 菜單中選擇“ 運(yùn)行” 命令方式:do < 文件名> <文件名>中如果沒有指定擴(kuò)展名,系統(tǒng)將按下列順序?qū)ふ页绦蛭募?zhí)行:.exe-->.app(應(yīng)用程序)-->.fxp(編譯程序)-->.prg

當(dāng)程序文件被執(zhí)行時(shí),文件中包含的命令將被依次執(zhí)行,直到所有的命令被執(zhí)行完畢中,或者執(zhí)行到以下命令:

cancel(終止程序執(zhí)行,返回命令窗口)do(轉(zhuǎn)去執(zhí)行另一個(gè)程序)return(結(jié)束當(dāng)前程序,返回到上級(jí)程序,若無上級(jí)程序則返回到命令窗口)quit(退出VFP 系統(tǒng),返回到操作系統(tǒng))

程序結(jié)構(gòu)

(1)每個(gè)程序都必須有1個(gè)文件名,文件名由字符、數(shù)字或下劃線組成,第一個(gè)字符必須是字母或漢字,程序擴(kuò)展名為.PRG(2)程序由若干行數(shù)據(jù)庫命令組成,每行最多寫2048個(gè)字符,1行只能寫1條命令,若把一個(gè)命令寫成若干行,需在該命令的第1行及中間各行的行尾寫“;”號(hào),但最后一行不寫。(3)注釋行由“*”開頭,用以說明程序的名稱、功能及其他需要說明的問題,“*”是注釋命令,是非執(zhí)行語句,可以寫在程序任一位置。

(4)以“set”開頭的命令為環(huán)境設(shè)置命令,一般出現(xiàn)在可執(zhí)行語句的前面。(5)每行程序的后部可以寫由“&&”號(hào)引導(dǎo)的注釋。(6)“return”命令是返回命令,表示程序結(jié)束。

編寫程序的步驟

舉例:編寫一個(gè)簡(jiǎn)單的程序:給出一個(gè)整數(shù),判斷是奇數(shù)還是偶數(shù)。(1)分析任務(wù),確定方法;(2)分解任務(wù),描述算法;(3)編寫程序,認(rèn)真檢查;(4)上機(jī)調(diào)試,糾正錯(cuò)誤

流程圖

流程圖符號(hào)的使用規(guī)則: 流程線的方向是從左到右,自上而下,非標(biāo)準(zhǔn)流向的流程線要用箭頭表示。流程線就盡量避免交叉。

流程圖符號(hào)內(nèi)的文字一律從左到右,自上而下書寫。流程圖符號(hào)的注釋應(yīng)寫在符號(hào)右側(cè)。

出入口處的連接符應(yīng)使用相同名稱,表示把它們連接起來。

子程序、過程和自定義函數(shù)

模塊化:按適當(dāng)?shù)脑瓌t把一個(gè)情況復(fù)雜、規(guī)模較大的程序系統(tǒng)劃分為一個(gè)個(gè)較小的、功能相關(guān)而又相對(duì)獨(dú)立的模塊的過程。

模塊:一個(gè)在結(jié)構(gòu)上相對(duì)獨(dú)立的程序段。可以是子程序、過程或自定義函數(shù)。

子程序的基本概念

子程序:總被其它程序調(diào)用的,一般不單獨(dú)運(yùn)行的一個(gè)程序段。

子程序與主程序的關(guān)系:是一種調(diào)用和被調(diào)用的關(guān)系。主程序是能調(diào)用其他子程序,而不被其他程序調(diào)用的程序,凡能被調(diào)用的程序都稱為子程序。程序中至少應(yīng)有一個(gè)主程序,可以有一個(gè)或若干個(gè)子程序。子程序的使用

①使用模塊化程序設(shè)計(jì)方法編寫程序時(shí),把各個(gè)功能劃分成若干個(gè)功能子模塊,把子模塊寫成一個(gè)子程序。

②需要反復(fù)調(diào)用的情況下,可以寫成一個(gè)子程序,以節(jié)省存儲(chǔ)空間。

編寫子程序

調(diào)用子程序命令格式:

do <子程序名>[ WITH<參數(shù)表>] 子程序返回命令

return [ to master ] 表示返回到上一級(jí)子程序或主程序。帶參數(shù)to master表示無論在哪級(jí)子程序上,均立即返回主程序。

1、對(duì)任意給的正整數(shù)A、B、C,編寫程序計(jì)算S=A!+(3/5)B!+(C!/2)調(diào)試子程序 聯(lián)合調(diào)試:當(dāng)主程序和子程序分別編輯完成之后,直接運(yùn)行主程序。若主程序或子程序有錯(cuò),再進(jìn)行編輯、調(diào)試、重新運(yùn)行,直到輸出正確結(jié)果為止。單獨(dú)調(diào)試:編輯一個(gè)模塊,調(diào)試一個(gè)模塊,各個(gè)模塊都調(diào)試成功后,加入主程序聯(lián)調(diào)。例

2、根據(jù)數(shù)據(jù)庫student.dbf編寫一個(gè)菜單程序main.prg,完成對(duì)數(shù)據(jù)庫查詢程序cx.prg和刪除程序sc.prg的調(diào)用

過程與過程文件

過程是一段程序,它與子程序不同之處在于,子程序是一個(gè)獨(dú)立文件,而過程是過程文件的一個(gè)組成部分,可以把多個(gè)過程寫在一個(gè)過程文件中。過程的結(jié)構(gòu):

procedure <過程名> <過程體> return [to master/to <程序名>] 過程名由用戶定義,供調(diào)用過程時(shí)使用,過程體是一個(gè)語句序列,是過程的核心部分,選擇to <程序名>表示返回到“程序名”指定的程序。過程文件的結(jié)構(gòu)

procedure <過程名1> <過程體1> return [to master/to <程序名>] procedure <過程名2> <過程體2> return [to master/to <程序名>] ??

procedure <過程名n> <過程體n> return [to master/to <程序名>] 過程文件的調(diào)用

在主程序中,調(diào)用過程前,首先要打開過程文件。

命令格式:set proc to <過程文件名>

調(diào)用后,要關(guān)閉過程文件。

命令格式:set procedure to 或 close procedure 過程的調(diào)用

格式:do <過程名> 例

3、根據(jù)數(shù)據(jù)庫student.dbf編寫一個(gè)菜單程序gczxc.prg,用過程形式完成對(duì)數(shù)據(jù)庫查詢程序cx.prg和刪除程序sc.prg的調(diào)用。

自定義函數(shù)命令

命令格式:(1)function <函數(shù)名>(2)return <表達(dá)式> 基本格式:

function<函數(shù)名> parameters <參數(shù)表> <語句序列>

return <表達(dá)式>

主程序與自定義函數(shù)的組織形式:

舉例計(jì)算組合數(shù)的值

編寫K!的函數(shù)。作業(yè)

1、從鍵盤輸入五個(gè)數(shù)組,每組有六個(gè)數(shù)據(jù),分別用子程序、過程、自定義函數(shù)的方法,輸出每組數(shù)的最大值和最小值。

2、用子程序、過程、自定義函數(shù)三種不同形式對(duì)student.dbf數(shù)據(jù)庫編寫一個(gè)菜單程序:

系統(tǒng)主菜單

1??追加記錄

2??修改記錄

3??插入記錄

4??刪除記錄

5??輸出記錄

6??退

下載VFP常用命令小結(jié)word格式文檔
下載VFP常用命令小結(jié).doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    Shell命令文本操作命令小結(jié)

    Shell命令文件操作命令小結(jié) 顯示文本文檔中某幾行: 顯示第n行: sed -n 'np' test.txt 或 head -n test.txt |tail -1 顯示第m到第n行: sed -n 'm,np' test.txt 或 head -n test......

    諾西—常用BSC命令小結(jié)

    諾西 常用BSC命令小結(jié)(多用逗號(hào),少用分號(hào),檢查命令沒有問題后再執(zhí)行這條語句) ZEEI: 看狀態(tài) ZEFS:BCF號(hào):L/U;對(duì)BCF重新啟動(dòng) ZEQS:BTS=BTS號(hào):L/U;對(duì)BTS重新啟動(dòng) ZERS:BTS=BTS號(hào),TRX=TRX......

    linux基礎(chǔ)命令小結(jié)2范文

    linux基礎(chǔ)命令小結(jié) 1.文件查看命令 cat命令 這條命令適用于最簡(jiǎn)單的文本查看,它在顯示文件內(nèi)容的時(shí)候是以第一行開始,在顯示過程中沒有停頓,文件較長(zhǎng)的話,只能看到最后一頁內(nèi)容......

    諾西—常用BSC命令小結(jié)

    諾西諾西諾西諾西常用常用常用常用BSC命令小結(jié)命令小結(jié)命令小結(jié)命令小結(jié)(多用逗號(hào),少用分號(hào),檢查命令沒有問題后再執(zhí)行這條語句) ZEEI: 看狀態(tài) ZEFS:BCF號(hào):L/U;對(duì)BCF重新啟動(dòng) ZEQS:B......

    VFP常用函數(shù)大全整理范文

    VFP常用函數(shù)大全整理 一.字符及字符串處理函數(shù):字符及字符串處理函數(shù)的處理對(duì)象均為字符型數(shù)據(jù),但其返回值類型各異. 1.取子串函數(shù): 格式:substr(c,n1,n2) 功能:取字符串C......

    NSLookUP命令小結(jié)及附帶DNS名詞解釋

    [原創(chuàng)]NSLookUP命令小結(jié)及附帶DNS名詞解釋 NSLookUP命令小結(jié)及附帶DNS名詞解釋 閱讀本文的基本要求: 1. 對(duì)cmd命令的使用有一定基礎(chǔ) 2. 對(duì)DNS的基本原理及常見概念有一定的了......

    十個(gè)節(jié)省時(shí)間的MySQL命令小結(jié)

    十個(gè)節(jié)省時(shí)間的MySQL命令小結(jié) 編者在工作中積累起來了一些MySQL命令行客戶端技巧,這些技巧或多或少會(huì)幫助您節(jié)省大量的時(shí)間。 雖然有許多基于GUI的MySQL客戶端存在,如著名的p......

    linux環(huán)境中Shell命令文本操作命令小結(jié)范文

    Linux環(huán)境中Shell命令文件操作命令小結(jié) Linux下通過命令行操作文件,幾個(gè)常用命令行操作總結(jié): 顯示文本文檔中某幾行: 顯示第n行:sed -n 'np' test.txt 或 head -n test.txt |ta......

主站蜘蛛池模板: 亚洲sm另类一区二区三区| 成人无码a∨电影免费| 《人妻大乳被揉2》| 成人无码男男gv在线观看网站| 日日摸处处碰夜夜爽| 国产一区二区三区美女| 国产精品一在线观看| 无码av免费精品一区二区三区| 国产精品毛片a∨一区二区三区| 国产做无码视频在线观看浪潮| 99久久综合狠狠综合久久aⅴ| 亚洲中文精品久久久久久不卡| 亚洲aⅴ无码成人网站国产app| 久久理论片午夜琪琪电影院| 老熟妇乱子交视频一区| 狠狠干狠狠爱| 亚洲色欲久久久久综合网| 国产特级毛片aaaaaa| 成人精品国产区在线观看| 无码专区一ⅴa亚洲v天堂| 久久婷婷五月综合97色| 日本无码一区二区三区不卡免费| 久久se精品一区精品二区国产| 无码人妻人妻经典| 在线观看国产精品va| 八个少妇沟厕小便漂亮各种大屁股| 亚洲永久网址在线观看| 亚洲国产成人av毛片大全| 久久久久99精品成人片三人毛片| 99精品视频一区在线观看| 狠狠的干性视频| 色偷偷久久一区二区三区| av男人的天堂在线观看国产| 成在人线av无码免费看网站| 日韩精品内射视频免费观看| 国产午夜福利精品久久不卡| 97久久综合区小说区图片区| 亚洲视频在线观看| 欧美成人看片一区二区| 久久精品国产99国产精品最新| 日本中文字幕一区二区有码在线|