第5講 第4章表的基本操作_第1頁(yè)
第5講 第4章表的基本操作_第2頁(yè)
第5講 第4章表的基本操作_第3頁(yè)
第5講 第4章表的基本操作_第4頁(yè)
第5講 第4章表的基本操作_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Visual FoxproVisual Foxpro 程序設(shè)計(jì)教程程序設(shè)計(jì)教程第第4章章 表的基本操作表的基本操作第第4 4章章 表的基本操作表的基本操作n4.1 4.1 表的建立表的建立n4.2 4.2 表的顯示與維護(hù)表的顯示與維護(hù)n4.3 4.3 表的排序與索引表的排序與索引n4.4 4.4 表的統(tǒng)計(jì)與計(jì)算表的統(tǒng)計(jì)與計(jì)算n4.5 4.5 多個(gè)表的操作多個(gè)表的操作 4.2 4.2 表的顯示與維護(hù)表的顯示與維護(hù)n4.2.1 4.2.1 表的打開(kāi)與關(guān)閉表的打開(kāi)與關(guān)閉n4.2.2 4.2.2 表的顯示表的顯示n4.2.3 4.2.3 表的修改表的修改n4.2.4 4.2.4 表記錄指針的定位表記錄

2、指針的定位n4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n4.2.6 4.2.6 表的復(fù)制表的復(fù)制 4.2.3 4.2.3 表的修改表的修改n1.1.表結(jié)構(gòu)的修改表結(jié)構(gòu)的修改n要修改當(dāng)前表的結(jié)構(gòu),既可修改各字段的要修改當(dāng)前表的結(jié)構(gòu),既可修改各字段的名字、類(lèi)型、寬度、小數(shù)位數(shù),又可增加、名字、類(lèi)型、寬度、小數(shù)位數(shù),又可增加、刪除、移動(dòng)字段或者修改索引標(biāo)記。命令刪除、移動(dòng)字段或者修改索引標(biāo)記。命令格式是:格式是: MODIFY STRUCTUREMODIFY STRUCTURE4.2.3 4.2.3 表的修改表的修改n2.2.打開(kāi)瀏覽窗口打開(kāi)瀏覽窗口n打開(kāi)表后,在打開(kāi)表后,在“顯示

3、顯示”菜單中選擇菜單中選擇“瀏覽瀏覽”命令,則打開(kāi)瀏覽窗口,表的內(nèi)容將出現(xiàn)命令,則打開(kāi)瀏覽窗口,表的內(nèi)容將出現(xiàn)在瀏覽窗口中。也可以在打開(kāi)表后,輸入在瀏覽窗口中。也可以在打開(kāi)表后,輸入BROWSEBROWSE命令打開(kāi)瀏覽窗口。命令打開(kāi)瀏覽窗口。n可用鍵盤(pán)的光標(biāo)控制鍵可用鍵盤(pán)的光標(biāo)控制鍵PgUp、PgDn來(lái)查看。來(lái)查看。n對(duì)于備注型字段和通用型字段,若其中含有內(nèi)對(duì)于備注型字段和通用型字段,若其中含有內(nèi)容,則分別顯示為容,則分別顯示為Memo和和Gen,若字段中沒(méi),若字段中沒(méi)有內(nèi)容,則顯示為有內(nèi)容,則顯示為memo和和gen。雙擊。雙擊Gen和和Memo或亮條在其上面時(shí),按或亮條在其上面時(shí),按Ctr

4、l+PgDn鍵可鍵可看到其中的內(nèi)容??吹狡渲械膬?nèi)容。4.2.3 4.2.3 表的修改表的修改n2.2.打開(kāi)瀏覽窗口打開(kāi)瀏覽窗口n數(shù)據(jù)的兩種顯示方式。瀏覽窗口中的數(shù)據(jù)數(shù)據(jù)的兩種顯示方式。瀏覽窗口中的數(shù)據(jù)有有瀏覽瀏覽和和編輯編輯兩種顯示方式??稍趦煞N顯兩種顯示方式??稍趦煞N顯示方式之間切換。示方式之間切換。nBrowseBrowse窗口的分割與同步窗口的分割與同步瀏覽窗口的分割瀏覽窗口的分割4.2.3 4.2.3 表的修改表的修改n3.3.成批替換修改成批替換修改n命令格式是:命令格式是: REPLACE REPLACE WITH WITH 1 ADDITIVE,ADDITIVE, WITH WI

5、TH 2 ADDITIVE ,ADDITIVE , FOR FOR WHILE WHILE 該命令用一個(gè)表達(dá)式的值替換當(dāng)前表中一個(gè)該命令用一個(gè)表達(dá)式的值替換當(dāng)前表中一個(gè)字段的值。字段的值。4.2.3 4.2.3 表的修改表的修改n3.3.成批替換修改成批替換修改n若不選擇若不選擇 和和FORFOR子句或子句或WHILEWHILE子句,子句,則則默認(rèn)為當(dāng)前記錄默認(rèn)為當(dāng)前記錄。如果選擇了。如果選擇了FORFOR子句,子句,則則 默認(rèn)為默認(rèn)為ALLALL,選擇了,選擇了WHILEWHILE子句,子句,則則 默認(rèn)為默認(rèn)為RESTREST。n ADDITIVEADDITIVE只能在替換只能在替換備注型備

6、注型字段時(shí)使用。字段時(shí)使用。使用使用ADDITIVEADDITIVE,備注型字段的替換內(nèi)容將,備注型字段的替換內(nèi)容將附加到備注型字段原來(lái)內(nèi)容的后面,否則附加到備注型字段原來(lái)內(nèi)容的后面,否則用表達(dá)式的值改寫(xiě)原備注型字段內(nèi)容。用表達(dá)式的值改寫(xiě)原備注型字段內(nèi)容。例例 寫(xiě)出對(duì)學(xué)生表進(jìn)行如下操作的命令:寫(xiě)出對(duì)學(xué)生表進(jìn)行如下操作的命令: (1 1)將少數(shù)民族學(xué)生的入學(xué)成績(jī)?cè)黾樱⑸贁?shù)民族學(xué)生的入學(xué)成績(jī)?cè)黾?020分。分。 (2 2)將)將6 6號(hào)記錄的出生日期修改為號(hào)記錄的出生日期修改為19831983年年9 9月月7 7日日; 操作命令如下:操作命令如下: USE USE 學(xué)生學(xué)生 REPLACE RE

7、PLACE 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī) WITH WITH 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)+20 FOR +20 FOR 少數(shù)少數(shù)民族否民族否 GO 6 &GO 6 &將記錄指針定位到將記錄指針定位到6 6號(hào)記錄號(hào)記錄 REPLACE REPLACE 出生日期出生日期 WITH 1983-09-07WITH 1983-09-074.2.3 4.2.3 表的修改表的修改第第4 4章章 表的基本操作表的基本操作n4.1 4.1 表的建立表的建立n4.2 4.2 表的顯示與維護(hù)表的顯示與維護(hù)n4.3 4.3 表的排序與索引表的排序與索引n4.4 4.4 表的統(tǒng)計(jì)與計(jì)算表的統(tǒng)計(jì)與計(jì)算n4.5 4.5 多個(gè)表的

8、操作多個(gè)表的操作 4.2 4.2 表的顯示與維護(hù)表的顯示與維護(hù)n4.2.1 4.2.1 表的打開(kāi)與關(guān)閉表的打開(kāi)與關(guān)閉n4.2.2 4.2.2 表的顯示表的顯示n4.2.3 4.2.3 表的修改表的修改n4.2.4 4.2.4 表記錄指針的定位表記錄指針的定位n4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n4.2.6 4.2.6 表的復(fù)制表的復(fù)制 n1 1絕對(duì)定位絕對(duì)定位n絕對(duì)定位是將記錄指針定位到指定記錄。絕對(duì)定位是將記錄指針定位到指定記錄。n命令格式是:命令格式是: GOTO GOTO |TOP|BOTTOMTOP|BOTTOMn命令中記錄號(hào)的取值范圍是命令中記錄號(hào)的取值范圍

9、是1 1至當(dāng)前表中的最大記至當(dāng)前表中的最大記錄個(gè)數(shù),即函數(shù)錄個(gè)數(shù),即函數(shù)RECCOUNT()RECCOUNT()的值,否則出錯(cuò)。的值,否則出錯(cuò)。TOPTOP和和BOTTOMBOTTOM分別表示表的首、末記錄。分別表示表的首、末記錄。4.2.4 4.2.4 表記錄指針的定位表記錄指針的定位n2 2相對(duì)定位相對(duì)定位n相對(duì)定位是以當(dāng)前記錄位置為基準(zhǔn),向前或相對(duì)定位是以當(dāng)前記錄位置為基準(zhǔn),向前或向后移動(dòng)記錄指針。向后移動(dòng)記錄指針。n命令格式是:命令格式是: SKIP SKIP n利用利用BOF()BOF()和和EOF()EOF()這兩個(gè)函數(shù)可以掌握有關(guān)這兩個(gè)函數(shù)可以掌握有關(guān)記錄指針移動(dòng)的情況。記錄指針

10、移動(dòng)的情況。(P67)(P67)4.2.4 4.2.4 表記錄指針的定位表記錄指針的定位n3 3查詢(xún)定位查詢(xún)定位順序查詢(xún)的命令格式是:順序查詢(xún)的命令格式是:nLOCATE LOCATE FOR FOR |WHILE |WHILE n函數(shù)函數(shù)FOUND()FOUND()值為值為.T.T.或或.F.F.。n當(dāng)查找到第一個(gè)滿足條件的記錄后,如果當(dāng)查找到第一個(gè)滿足條件的記錄后,如果執(zhí)行執(zhí)行CONTINUECONTINUE命令,則繼續(xù)尋找滿足條件命令,則繼續(xù)尋找滿足條件的記錄,直到的記錄,直到 結(jié)束為止。結(jié)束為止。4.2.4 4.2.4 表記錄指針的定位表記錄指針的定位例例: :在學(xué)生表中查詢(xún)漢族男生的

11、姓名、入學(xué)成績(jī)和年齡。在學(xué)生表中查詢(xún)漢族男生的姓名、入學(xué)成績(jī)和年齡。操作命令如下:操作命令如下:USE USE 學(xué)生學(xué)生LOCAT FOR !LOCAT FOR !少數(shù)民族否少數(shù)民族否 AND AND 性別性別=男男 DISP DISP 姓名姓名, ,入學(xué)成績(jī)?nèi)雽W(xué)成績(jī), YEAR(DATE()-YEAR(, YEAR(DATE()-YEAR(出生日期出生日期) )CONTINUECONTINUE? RECNO(),? RECNO(),姓名姓名, ,入學(xué)成績(jī)?nèi)雽W(xué)成績(jī), YEAR(DATE()-YEAR(, YEAR(DATE()-YEAR(出生出生日期日期) )4.2.4 4.2.4 表記錄指針

12、的定位表記錄指針的定位注意:命令中范圍子句對(duì)記錄指針位置的影響n如果指定的范圍為當(dāng)前一條記錄,則指針位置不發(fā)生變化;n如果指定的范圍為某一條記錄(如RECORD n),則指針移到該條記錄;n如果指定的范圍為NEXT n,則當(dāng)有FOR短語(yǔ)或無(wú)條件短語(yǔ)時(shí),指針將停在此范圍中最下一條記錄,當(dāng)有WHILE條件短語(yǔ)時(shí),指針停在此范圍內(nèi)第一個(gè)不符合條件的記錄;n如果指定的范圍為ALL或REST,則只要不是WHILE條件未滿足的情況,最后指針都將停在文件尾,也就是使EOF()為.T.處,而不是最后一條記錄。4.2 4.2 表的顯示與維護(hù)表的顯示與維護(hù)n4.2.1 4.2.1 表的打開(kāi)與關(guān)閉表的打開(kāi)與關(guān)閉n4

13、.2.2 4.2.2 表的顯示表的顯示n4.2.3 4.2.3 表的修改表的修改n4.2.4 4.2.4 表記錄指針的定位表記錄指針的定位n4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n4.2.6 4.2.6 表的復(fù)制表的復(fù)制 4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n1.1.插入記錄插入記錄n命令格式是:命令格式是: INSERTINSERT BLANK BEFORE BLANK BEFOREn若給出若給出BLANKBLANK選項(xiàng),則插入一個(gè)空記錄。若不給選項(xiàng),則插入一個(gè)空記錄。若不給出此項(xiàng),則進(jìn)入全屏幕數(shù)據(jù)記錄輸入窗口。出此項(xiàng),則進(jìn)入全屏幕數(shù)據(jù)記錄輸入窗

14、口。n若給出若給出BEFOREBEFORE選項(xiàng),則在當(dāng)前記錄的前面插入選項(xiàng),則在當(dāng)前記錄的前面插入一個(gè)新記錄,即插入的新記錄成為當(dāng)前記錄,一個(gè)新記錄,即插入的新記錄成為當(dāng)前記錄,而原來(lái)的當(dāng)前記錄及其后面記錄的記錄號(hào)均加而原來(lái)的當(dāng)前記錄及其后面記錄的記錄號(hào)均加1 1。若不給出該選項(xiàng),則在當(dāng)前記錄的后面插入一若不給出該選項(xiàng),則在當(dāng)前記錄的后面插入一個(gè)新記錄。個(gè)新記錄。4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n1.1.插入記錄(續(xù))插入記錄(續(xù))n例例 對(duì)學(xué)生表增加對(duì)學(xué)生表增加6 6號(hào)和號(hào)和7 7號(hào)記錄。號(hào)記錄。nUSE USE 學(xué)生學(xué)生nGO 6GO 6 nINSERT BEF

15、OREINSERT BEFORE & &此時(shí)新增加的此時(shí)新增加的6 6號(hào)記號(hào)記錄變成當(dāng)前記錄錄變成當(dāng)前記錄nINSERTINSERT & &在在6 6號(hào)記錄之后插入一條新記號(hào)記錄之后插入一條新記 錄,即第錄,即第7 7號(hào)記錄號(hào)記錄4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n2.2.追加記錄追加記錄n命令格式是:命令格式是: APPENDAPPEND BLANK BLANKn該命令在當(dāng)前表的末尾追加一個(gè)新記錄。該命令在當(dāng)前表的末尾追加一個(gè)新記錄。n若選用若選用BLANKBLANK選項(xiàng),則追加一個(gè)空記錄到選項(xiàng),則追加一個(gè)空記錄到表的末尾。表的末尾。

16、nAPPENDAPPEND命令是在當(dāng)前表的末尾增加新記錄,命令是在當(dāng)前表的末尾增加新記錄,而而INSERTINSERT命令可以在指定位置上增加新記命令可以在指定位置上增加新記錄。兩條命令的屏幕操作方式是相同的。錄。兩條命令的屏幕操作方式是相同的。4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n2.2.追加記錄(續(xù))追加記錄(續(xù))n例例 在學(xué)生表末記錄后增加兩個(gè)記錄。在學(xué)生表末記錄后增加兩個(gè)記錄。nUSE USE 學(xué)生學(xué)生nAPPEND APPEND nAPPEND APPEND n顯然,顯然,APPENDAPPEND命令與下面兩條命令等價(jià):命令與下面兩條命令等價(jià):nGO BOTT

17、GO BOTTnINSERTINSERT4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n3.3.刪除記錄刪除記錄nVisual FoxProVisual FoxPro對(duì)部分記錄的刪除分兩步進(jìn)行:對(duì)部分記錄的刪除分兩步進(jìn)行:首先對(duì)想要?jiǎng)h除的記錄加上刪除標(biāo)志(首先對(duì)想要?jiǎng)h除的記錄加上刪除標(biāo)志(* *),這),這時(shí)被標(biāo)記的記錄并沒(méi)有真正被刪除,需要時(shí)仍時(shí)被標(biāo)記的記錄并沒(méi)有真正被刪除,需要時(shí)仍可以恢復(fù)。然后對(duì)加了刪除標(biāo)志的記錄真正地可以恢復(fù)。然后對(duì)加了刪除標(biāo)志的記錄真正地從表中刪除掉。從表中刪除掉。4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n3.3.刪除記錄(續(xù))刪除記

18、錄(續(xù))n(1 1)給記錄加刪除標(biāo)志)給記錄加刪除標(biāo)志n命令格式是:命令格式是:nDELETEDELETE FOR FOR WHILE WHILE n該命令給指定的記錄加上刪除標(biāo)志。若不該命令給指定的記錄加上刪除標(biāo)志。若不選擇可選項(xiàng),則僅對(duì)當(dāng)前記錄加上刪除標(biāo)選擇可選項(xiàng),則僅對(duì)當(dāng)前記錄加上刪除標(biāo)志。志。4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n3.3.刪除記錄(續(xù))刪除記錄(續(xù))n(2 2)取消刪除標(biāo)記)取消刪除標(biāo)記n命令格式是:命令格式是:nRECALL RECALL FOR FOR WHILE WHILEn該命令取消指定記錄上的刪除標(biāo)志,若不該命令取消指定記錄上的刪除標(biāo)志

19、,若不選擇可選項(xiàng),則僅取消當(dāng)前記錄的刪除標(biāo)選擇可選項(xiàng),則僅取消當(dāng)前記錄的刪除標(biāo)志。志。4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n3.3.刪除記錄(續(xù))刪除記錄(續(xù))n(3 3)真正刪除記錄)真正刪除記錄n命令格式是:命令格式是: PACKPACKn該命令清除所有帶刪除標(biāo)志的記錄。該命令清除所有帶刪除標(biāo)志的記錄。n例例: :刪除學(xué)生表中刪除學(xué)生表中5 51010之間的全部記錄。之間的全部記錄。nUSE USE 學(xué)生學(xué)生nGO 5GO 5nDELETE NEXT 6DELETE NEXT 6nPACKPACK4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n3.3.

20、刪除記錄(續(xù))刪除記錄(續(xù))n(4 4)刪除全部記錄)刪除全部記錄n命令格式是:命令格式是: ZAPZAPn該命令刪除當(dāng)前表的全部記錄,只留下表該命令刪除當(dāng)前表的全部記錄,只留下表結(jié)構(gòu)。結(jié)構(gòu)。4.2 4.2 表的顯示與維護(hù)表的顯示與維護(hù)n4.2.1 4.2.1 表的打開(kāi)與關(guān)閉表的打開(kāi)與關(guān)閉n4.2.2 4.2.2 表的顯示表的顯示n4.2.3 4.2.3 表的修改表的修改n4.2.4 4.2.4 表記錄指針的定位表記錄指針的定位n4.2.5 4.2.5 表記錄的增加與刪除表記錄的增加與刪除n4.2.6 4.2.6 表的復(fù)制表的復(fù)制 4.2.6 4.2.6 表的復(fù)制表的復(fù)制n1.1.復(fù)制表的結(jié)構(gòu)

21、復(fù)制表的結(jié)構(gòu)n命令格式是:命令格式是:n COPY STRUCTURE TO COPY STRUCTURE TO FIELDS FIELDS n該命令將當(dāng)前表的結(jié)構(gòu)復(fù)制到指定的表中。該命令將當(dāng)前表的結(jié)構(gòu)復(fù)制到指定的表中。僅復(fù)制當(dāng)前表的結(jié)構(gòu),其記錄數(shù)據(jù)不復(fù)制。僅復(fù)制當(dāng)前表的結(jié)構(gòu),其記錄數(shù)據(jù)不復(fù)制。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n2.2.復(fù)制表復(fù)制表n命令格式是:命令格式是: COPY TO COPY TO FIELDS FIELDS FOR FOR WHILE WHILE TYPE SDF|DELIMITED|XLS WITH TYPE SDF|DELIMITED|XLS WITH |

22、BLANK|BLANKn該命令將當(dāng)前表中的數(shù)據(jù)與結(jié)構(gòu)同時(shí)復(fù)制該命令將當(dāng)前表中的數(shù)據(jù)與結(jié)構(gòu)同時(shí)復(fù)制到指定的表中,即復(fù)制了一個(gè)新的表。此到指定的表中,即復(fù)制了一個(gè)新的表。此命令還可以將當(dāng)前表復(fù)制生成一個(gè)其他格命令還可以將當(dāng)前表復(fù)制生成一個(gè)其他格式的數(shù)據(jù)文件。式的數(shù)據(jù)文件。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n2.2.復(fù)制表復(fù)制表n復(fù)制含有備注型字段的表時(shí),如果指定要復(fù)制含有備注型字段的表時(shí),如果指定要復(fù)制該備注型字段,則在復(fù)制表的同時(shí),復(fù)制該備注型字段,則在復(fù)制表的同時(shí),復(fù)制相應(yīng)的備注文件。復(fù)制相應(yīng)的備注文件。n若選擇了若選擇了SDFSDF或或DELIMITEDDELIMITED,則將當(dāng)前表復(fù)

23、,則將當(dāng)前表復(fù)制成指定的文本文件,默認(rèn)擴(kuò)展名為制成指定的文本文件,默認(rèn)擴(kuò)展名為T(mén)XTTXT。其格式由其格式由SDFSDF和和DELIMITEDDELIMITED決定。決定。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n2.2.復(fù)制表復(fù)制表( (續(xù)續(xù)) )nSDFSDF為標(biāo)準(zhǔn)格式,記錄定長(zhǎng),不用分隔符為標(biāo)準(zhǔn)格式,記錄定長(zhǎng),不用分隔符和定界符,每個(gè)記錄均從頭部開(kāi)始存放,和定界符,每個(gè)記錄均從頭部開(kāi)始存放,均以回車(chē)符結(jié)束。均以回車(chē)符結(jié)束。nDELIMITEDDELIMITED為通用格式,記錄不等長(zhǎng),每為通用格式,記錄不等長(zhǎng),每個(gè)記錄均以回車(chē)符結(jié)束。個(gè)記錄均以回車(chē)符結(jié)束。n若選用若選用BLANKBLANK

24、,字段之間用一個(gè)空格分隔,字段之間用一個(gè)空格分隔,否則用一個(gè)逗號(hào)分隔。否則用一個(gè)逗號(hào)分隔。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n2.2.復(fù)制表復(fù)制表( (續(xù)續(xù)) )n若選用若選用 ,字符型數(shù)據(jù)用指定的,字符型數(shù)據(jù)用指定的 括起來(lái),否則用雙引號(hào)括起來(lái)。括起來(lái),否則用雙引號(hào)括起來(lái)。n若選擇了若選擇了XLSXLS,則得到一個(gè),則得到一個(gè)ExcelExcel文件,該文件,該文件只能在文件只能在ExcelExcel中打開(kāi)。中打開(kāi)。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n2.2.復(fù)制表復(fù)制表( (續(xù)續(xù)) )n例例 對(duì)學(xué)生表進(jìn)行復(fù)制操作,并分析目標(biāo)對(duì)學(xué)生表進(jìn)行復(fù)制操作,并分析目標(biāo)文件的類(lèi)型。文件的類(lèi)型

25、。 (1 1)將入學(xué)成績(jī)大于)將入學(xué)成績(jī)大于600600分的記錄復(fù)制分的記錄復(fù)制到到new.dbfnew.dbf中。中。 (2 2)分別生成標(biāo)準(zhǔn)格式和通用格式的文)分別生成標(biāo)準(zhǔn)格式和通用格式的文本文件本文件new1.txtnew1.txt和和new2.txtnew2.txt。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n2.2.復(fù)制表復(fù)制表( (續(xù)續(xù)) )n操作命令如下:操作命令如下:nUSE 學(xué)生學(xué)生nCOPY TO new1 FOR 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)600nUSE new1 &查看新表的記錄查看新表的記錄nLIST nCOPY TO new1 SDFnTYPE new1.txt &am

26、p;查看新文本文件的內(nèi)容查看新文本文件的內(nèi)容nCOPY TO new2 DELIMITEDnTYPE new2.txt &注意和注意和new1.txt文件格式上的文件格式上的差異。差異。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n3.3.從其他文件向表添加數(shù)據(jù)從其他文件向表添加數(shù)據(jù)n命令格式是:命令格式是:APPEND FROM APPEND FROM FIELDS FIELDS FOR FOR WHILE WHILE TYPE TYPE n該命令將指定文件(源文件)中的數(shù)據(jù)添加到該命令將指定文件(源文件)中的數(shù)據(jù)添加到當(dāng)前表的尾部。當(dāng)前表的尾部。n選選SDF或或DELIMITED,取決

27、于源,取決于源文件的格式。文件的格式。n要注意源文件中的數(shù)據(jù)與當(dāng)前表字段類(lèi)型、順要注意源文件中的數(shù)據(jù)與當(dāng)前表字段類(lèi)型、順序和長(zhǎng)度要匹配。序和長(zhǎng)度要匹配。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n4 4表與數(shù)組間的數(shù)據(jù)傳送表與數(shù)組間的數(shù)據(jù)傳送n表與數(shù)組間的數(shù)據(jù)傳送是指可將表的記錄表與數(shù)組間的數(shù)據(jù)傳送是指可將表的記錄數(shù)據(jù)傳送到數(shù)組中而成為數(shù)組元素,反過(guò)數(shù)據(jù)傳送到數(shù)組中而成為數(shù)組元素,反過(guò)來(lái)也可以將數(shù)組元素值傳送到表而成為記來(lái)也可以將數(shù)組元素值傳送到表而成為記錄數(shù)據(jù)。錄數(shù)據(jù)。n (1)(1)將表的記錄數(shù)據(jù)傳送到數(shù)組將表的記錄數(shù)據(jù)傳送到數(shù)組n命令格式是:命令格式是: SCATTER FIELDS SC

28、ATTER FIELDS TO TO MEMO MEMO4.2.6 4.2.6 表的復(fù)制表的復(fù)制n4 4表與數(shù)組間的數(shù)據(jù)傳送(續(xù))表與數(shù)組間的數(shù)據(jù)傳送(續(xù))n命令按順序?qū)?dāng)前表當(dāng)前記錄指定字段的內(nèi)容命令按順序?qū)?dāng)前表當(dāng)前記錄指定字段的內(nèi)容依次存入數(shù)組。第一個(gè)字段存入數(shù)組的第一個(gè)依次存入數(shù)組。第一個(gè)字段存入數(shù)組的第一個(gè)元素中,第二個(gè)字段存入數(shù)組的第二個(gè)元素中,元素中,第二個(gè)字段存入數(shù)組的第二個(gè)元素中,依次類(lèi)推。依次類(lèi)推。n如果未指定如果未指定FIELDS ,則將除備注,則將除備注型字段以外所有的字段存入數(shù)組中。如果要對(duì)型字段以外所有的字段存入數(shù)組中。如果要對(duì)備注型字段同樣處理,就需在命令中加上備

29、注型字段同樣處理,就需在命令中加上MEMO選項(xiàng)。選項(xiàng)。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n4 4表與數(shù)組間的數(shù)據(jù)傳送(續(xù))表與數(shù)組間的數(shù)據(jù)傳送(續(xù))n如果數(shù)組元素個(gè)數(shù)比字段個(gè)數(shù)多,則多余的數(shù)如果數(shù)組元素個(gè)數(shù)比字段個(gè)數(shù)多,則多余的數(shù)組元素內(nèi)容仍保留;如果數(shù)組元素個(gè)數(shù)比字段組元素內(nèi)容仍保留;如果數(shù)組元素個(gè)數(shù)比字段個(gè)數(shù)少,則系統(tǒng)自動(dòng)重新建立數(shù)組。個(gè)數(shù)少,則系統(tǒng)自動(dòng)重新建立數(shù)組。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n4 4表與數(shù)組間的數(shù)據(jù)傳送(續(xù))表與數(shù)組間的數(shù)據(jù)傳送(續(xù))n例例 分析下列命令執(zhí)行后,數(shù)組元素值的變化。分析下列命令執(zhí)行后,數(shù)組元素值的變化。nCLEAR MEMORYCLEAR

30、 MEMORYnUSE USE 學(xué)生學(xué)生nDIMENSION y(5)DIMENSION y(5)nSTORE 7645 TO y(5)STORE 7645 TO y(5)nGO 4GO 4nSCATTER FIELDS SCATTER FIELDS 姓名姓名, ,出生日期出生日期, ,少數(shù)民族否少數(shù)民族否, ,籍貫籍貫 TO yTO ynLIST MEMORY LIKE y?LIST MEMORY LIKE y?4.2.6 4.2.6 表的復(fù)制表的復(fù)制n4 4表與數(shù)組間的數(shù)據(jù)傳送(續(xù))表與數(shù)組間的數(shù)據(jù)傳送(續(xù))n(2)(2)將數(shù)組數(shù)據(jù)傳送到表記錄將數(shù)組數(shù)據(jù)傳送到表記錄n命令格式:命令格式:

31、GATHER FROM GATHER FROM FIELDS FIELDS MEMO MEMOn命令將數(shù)組中的數(shù)據(jù)作為一個(gè)記錄傳送到命令將數(shù)組中的數(shù)據(jù)作為一個(gè)記錄傳送到當(dāng)前打開(kāi)的表中的當(dāng)前記錄。當(dāng)前打開(kāi)的表中的當(dāng)前記錄。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n4 4表與數(shù)組間的數(shù)據(jù)傳送(續(xù))表與數(shù)組間的數(shù)據(jù)傳送(續(xù))n將將如果指定如果指定FIELDS 短語(yǔ),則只向短語(yǔ),則只向指定的字段填加數(shù)據(jù),其他字段填空。如果未指定的字段填加數(shù)據(jù),其他字段填空。如果未指定指定FIELDS 短語(yǔ),則按字段順序短語(yǔ),則按字段順序填加數(shù)據(jù)。填加數(shù)據(jù)。n當(dāng)省略當(dāng)省略MEMO 選項(xiàng)時(shí)將忽略備注型字段。選項(xiàng)時(shí)將忽略備

32、注型字段。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n4 4表與數(shù)組間的數(shù)據(jù)傳送(續(xù))表與數(shù)組間的數(shù)據(jù)傳送(續(xù))n如果數(shù)組元素個(gè)數(shù)少于指定字段個(gè)數(shù),則多余如果數(shù)組元素個(gè)數(shù)少于指定字段個(gè)數(shù),則多余的字段填空;如果數(shù)組元素個(gè)數(shù)多于指定字段的字段填空;如果數(shù)組元素個(gè)數(shù)多于指定字段個(gè)數(shù),則忽略多余的數(shù)組元素。個(gè)數(shù),則忽略多余的數(shù)組元素。n當(dāng)數(shù)組元素的數(shù)據(jù)類(lèi)型與表相應(yīng)字段類(lèi)型不同當(dāng)數(shù)組元素的數(shù)據(jù)類(lèi)型與表相應(yīng)字段類(lèi)型不同且不兼容且不兼容( 如數(shù)值型數(shù)組元素仍能被傳送到字如數(shù)值型數(shù)組元素仍能被傳送到字符型字段之中,它們雖類(lèi)型不同卻是兼容的符型字段之中,它們雖類(lèi)型不同卻是兼容的)時(shí),時(shí), 該字段將自動(dòng)被初始化為

33、空值。字符型與數(shù)該字段將自動(dòng)被初始化為空值。字符型與數(shù)值型的默認(rèn)空值分別是空格與值型的默認(rèn)空值分別是空格與0,日期型與邏輯,日期型與邏輯型的默認(rèn)空值為型的默認(rèn)空值為 / / 與與.F.。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n4 4表與數(shù)組間的數(shù)據(jù)傳送(續(xù))表與數(shù)組間的數(shù)據(jù)傳送(續(xù))n例例 通過(guò)數(shù)組通過(guò)數(shù)組y向?qū)W生表添加記錄。向?qū)W生表添加記錄。nUSE 學(xué)生學(xué)生nAPPE BLANnDIMENSION y(5)nY(1)=100100nSTORE 鄧杰輝鄧杰輝 TO y(2)ny(3)=女女“ny(4)=1986-07-23nSTORE .T. TO y(5)nGATHER FROM ynG

34、O BOTTnDISP4.2.6 4.2.6 表的復(fù)制表的復(fù)制n4 4表與數(shù)組間的數(shù)據(jù)傳送(續(xù))表與數(shù)組間的數(shù)據(jù)傳送(續(xù))n(3)(3)把表的一批記錄同時(shí)復(fù)制到數(shù)組把表的一批記錄同時(shí)復(fù)制到數(shù)組n命令格式:命令格式: COPY TO ARRAY COPY TO ARRAY FIELDS FIELDS FOR FOR WHILEWHILEn命令將當(dāng)前表指定記錄中指定字段的數(shù)據(jù)命令將當(dāng)前表指定記錄中指定字段的數(shù)據(jù)復(fù)制到指定的數(shù)組之中。復(fù)制到指定的數(shù)組之中。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n4 4表與數(shù)組間的數(shù)據(jù)傳送(續(xù))表與數(shù)組間的數(shù)據(jù)傳送(續(xù))n若可選項(xiàng)都缺省,則復(fù)制除備注型字段以若可選項(xiàng)

35、都缺省,則復(fù)制除備注型字段以外的全部記錄數(shù)據(jù)。命令中指定的數(shù)組如外的全部記錄數(shù)據(jù)。命令中指定的數(shù)組如不存在。不存在。nVisual FoxProVisual FoxPro會(huì)根據(jù)需要自動(dòng)建立此數(shù)會(huì)根據(jù)需要自動(dòng)建立此數(shù)組,若數(shù)組已事先定義好,該命令將不會(huì)組,若數(shù)組已事先定義好,該命令將不會(huì)自動(dòng)調(diào)整數(shù)組的大小以滿足要求??梢詮?fù)自動(dòng)調(diào)整數(shù)組的大小以滿足要求??梢詮?fù)制表的單個(gè)記錄的數(shù)據(jù)到一個(gè)一維數(shù)組中,制表的單個(gè)記錄的數(shù)據(jù)到一個(gè)一維數(shù)組中,但與但與SCATTERSCATTER命令不同的是該命令不能把命令不同的是該命令不能把備注型字段的數(shù)據(jù)復(fù)制到數(shù)據(jù)中。備注型字段的數(shù)據(jù)復(fù)制到數(shù)據(jù)中。4.2.6 4.2.6 表的復(fù)制表的復(fù)制n4 4表與數(shù)組間的數(shù)據(jù)傳送(續(xù))表與數(shù)組間的數(shù)據(jù)傳送(續(xù))nCOPY TO ARRAYCOPY TO ARRAY命令能夠一次把當(dāng)前表中命令能夠一次把當(dāng)前表中的多個(gè)記錄同時(shí)復(fù)制到指定二維數(shù)組中,的多個(gè)記錄同時(shí)復(fù)制到指定二維數(shù)組中,一個(gè)記錄的數(shù)據(jù)送入數(shù)組的同一行中,即一個(gè)記錄的數(shù)據(jù)送入數(shù)組的同一行中,即第一個(gè)字段數(shù)據(jù)送到該行的第一列,第二第一個(gè)字段數(shù)據(jù)送到該行的第一列,第二個(gè)字段數(shù)據(jù)被送到該行的第二列,依此類(lèi)個(gè)字段數(shù)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論