




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本文格式為Word版,下載可任意編輯 與高級(jí)語言程序的數(shù)據(jù)共享及混合編程 1.引言 數(shù)據(jù)庫管理系統(tǒng)FOXBASE目前在我國(guó)各個(gè)領(lǐng)域的管理和辦公自動(dòng)化中得到分外廣泛的應(yīng)用,尤其是在管理信息系統(tǒng)(MIS)與決策技持系統(tǒng)(DSS)中,數(shù)據(jù)庫的數(shù)據(jù)不僅是供低層管理作統(tǒng)計(jì)、匯總、查詢、報(bào)表輸出等使用,更重要的是對(duì)數(shù)據(jù)舉行分析、提煉,利用一些數(shù)學(xué)模型的計(jì)算,為中、高層管理供給輔佐決策的依據(jù)。但由于FOXBASE+系統(tǒng)的運(yùn)算功能較弱,對(duì)于決策中的大量線性規(guī)劃、運(yùn)籌學(xué)、統(tǒng)計(jì)學(xué)等問題的計(jì)算、繪圖等要求難以得志,而這類問題又是一些高級(jí)語言如BASIC、FORTRAN、PASCAL、C語言或匯編語言等較為輕易解決的
2、。因此,隨著我國(guó)計(jì)算機(jī)應(yīng)用的越來越深入普及,應(yīng)用水平越來越提高,解決數(shù)據(jù)庫系統(tǒng)與其它語言程序之間的數(shù)據(jù)傳輸、數(shù)據(jù)共享以及混合編程的問題就顯得越來越重要,而這個(gè)問題往往又是學(xué)生或編程人員在學(xué)習(xí)或編程中的難點(diǎn)。下面是筆者根據(jù)在教學(xué)和科研實(shí)踐中的點(diǎn)滴閱歷,談?wù)剶?shù)據(jù)庫系統(tǒng)FOXBASE+2.1與其它程序語言之間的接口和混 合編程問題的一些體會(huì)。 2.FOXBASE+與高級(jí)語言舉行數(shù)據(jù)傳輸?shù)慕涌?FOXBASE+系統(tǒng)供給了兩條轉(zhuǎn)換文件格式的命令作為數(shù)據(jù)庫與高級(jí)語言程序之間傳輸數(shù)據(jù)的橋梁。其概括做法是先用COPY命令把數(shù)據(jù)庫文件(.DBF)復(fù)制成文本文件(.TXT),再供給給高級(jí)語言程序舉行訪問,或者是用
3、APPEND FROM命令舉行反問轉(zhuǎn)換和傳輸,即把高級(jí)語言程序中生成的文本文件(.TXT),傳輸?shù)綌?shù)據(jù)庫文件(.DBF)中,如下圖: FOXBASE+用于.DBF文件與.TXT文件之間轉(zhuǎn)換的兩個(gè)命令的概括格式和功能如下: 2.1 生成文本文件 命令格式:COPY TOFIELDSFOR/WHILESDF/DELIMITESWITH BLANK/ 該命令的功能是將當(dāng)前庫文件的片面或全部記錄,按指定的格式復(fù)制給定文件名的文本文件中,文本文件的擴(kuò)展名.TXT由系統(tǒng)自動(dòng)加上。其中的SDF和DELIMITED是規(guī)定文本文件格式的,要必選其一,否那么無法生成文本文件。 若在該命令中使用了選項(xiàng)SDF,那么生
4、成的文本文件是SDF格式,稱為標(biāo)準(zhǔn)格式或系統(tǒng)數(shù)據(jù)格式。這種格式規(guī)定各記錄的長(zhǎng)度一致,嚴(yán)格限定各數(shù)據(jù)項(xiàng)(字段)長(zhǎng)度、類型和存放依次。字段中存放的數(shù)據(jù)缺乏,應(yīng)以空格填滿。字符型字段按左對(duì)齊存放,數(shù)字型字段按右對(duì)齊存放。各字段之間無分隔符,以回車換行作符作為一條記錄終止的標(biāo)志。 例如將FOXBASE+中的數(shù)據(jù)文件NLK.DBF轉(zhuǎn)換成高級(jí)高言的SDF格式文本文件WJ1.TXT,其轉(zhuǎn)換前后的文件內(nèi)容分別如下: .use ZLK .Iist 記錄號(hào)# 書名定價(jià)冊(cè)數(shù) 金額 1 P117計(jì)算機(jī)系統(tǒng)布局根基8.20 5 41.00 2 P145學(xué)識(shí)工程與學(xué)識(shí)處理系統(tǒng) 8.40 542.00 3 P110計(jì)算機(jī)綜
5、合應(yīng)用學(xué)識(shí) 19.50358.50 .COPY TO WJ1.TXT SDF .!TYPE WJ1.TXT P117計(jì)算機(jī)系統(tǒng)布局根基 8.20 541.00 P145學(xué)識(shí)工程與學(xué)識(shí)處理系統(tǒng) 8.40 542.00 P110計(jì)算機(jī)綜合應(yīng)用學(xué)識(shí) 19.50358.50 若在該命令中使用選項(xiàng)DELIMITES WITH,那么生成用戶定義定界符格式或緊湊格式的文本文件。這種格式存貯的文件記錄可以不定長(zhǎng)。各字段之間可以用逗號(hào)隔開,字符型、規(guī)律型字段用雙引號(hào)或其它符號(hào)(如空格或#號(hào))括起來,并刪去字型數(shù)據(jù)的尾部空格及數(shù)字中的前導(dǎo)0,仍用回車換行符作為一條記錄的終止標(biāo)志。例如用庫文件ZLK.DBF分別分別
6、生成用雙引號(hào)和#號(hào)作定界符的文本文件WJ2.TXT和WJ3.TXT。 .USE XLK .COPY TO WJ2.TXT-DELIMITES .!TYPE WJ2.TXT ”P117”, “計(jì)算機(jī)系統(tǒng)布局根基”,8.20,5,41.00 ”P145”, “學(xué)識(shí)工程與學(xué)識(shí)處理系統(tǒng)”,8.40,5,42.00 ”P110”, “計(jì)算機(jī)綜合應(yīng)用學(xué)識(shí)”,19.50,3,58.50 .COPY TO WJ3.TXT DELIMITES WITH# .!TYPY TO WJ3.TXT #P117#,#計(jì)算機(jī)系統(tǒng)布局根基#,8.20,5,41.00 #P145#,#學(xué)識(shí)工程與學(xué)識(shí)處理系統(tǒng)#,8.40,5,4
7、2.00 #P110#,#計(jì)算機(jī)綜合應(yīng)用學(xué)識(shí)#,19.50,3,58.50 2、由文本文件向數(shù)據(jù)庫傳輸數(shù)據(jù) 命令格式:APPEND FORMFORSDF/DELIMITED WITH BLANK/ 該命令功能是把文本文件中合符條件的記錄讀出來,逐個(gè)追加到當(dāng)前庫文件的尾部。若文本文件的擴(kuò)展名為.TXT,輸實(shí)時(shí)可省略。 選中用SDF選項(xiàng)時(shí),系統(tǒng)將根據(jù)當(dāng)前文件的字段依次及其長(zhǎng)度,把文本文件中的數(shù)據(jù)從左到右填入各字段之中,遇到回車換行符就終止該記錄并開頭追加下一條記錄,直至追加完全部記錄;選中用DELIMITED WITH項(xiàng)時(shí),系統(tǒng)將文本文件的數(shù)據(jù)從左往右依次填入庫文件的各個(gè)字段,每讀到一個(gè)逗號(hào),就終
8、止該字段的填入,開頭下一字段的填入。文本文件中對(duì)應(yīng)于字符型字段的數(shù)據(jù),務(wù)必用字界符括起來,當(dāng)系統(tǒng)讀到回車換行符時(shí)就終止一條記錄而開頭一下記錄的追加,直至讀完全部記錄。 假設(shè)某個(gè)高級(jí)語言程序生成了一個(gè)文本文件,就可以用此命令,把數(shù)據(jù)存入FOXBASE+的數(shù)據(jù)庫文件中。 例如:設(shè)文本文件BAS2.TXT是由某BASIC程序生成的SDF格式文件,其數(shù)據(jù)格式如下: P121多媒體計(jì)算機(jī)技術(shù) 8.80870.40 P406計(jì)算機(jī)圖形學(xué) 8.70869.60 P827計(jì)算機(jī)病毒防范與信息對(duì)抗技術(shù) 12.00 560.00 下面用APPEND FORM命令把BSA2.TXT的數(shù)據(jù)傳輸?shù)絑LK.DBFK: .
9、USE ZLK .APPEND FORM BAS2.TXT SDF .LIST 記錄號(hào)# 書名 定價(jià) 冊(cè)數(shù) 金額 1 P117 計(jì)算機(jī)系統(tǒng)布局根基8.205 41.00 2 P145 學(xué)識(shí)工程與學(xué)識(shí)處理系統(tǒng)8.405 42.00 3P110計(jì)算機(jī)綜合應(yīng)用學(xué)識(shí) 19.503 58.50 4P121多媒體計(jì)算機(jī)技術(shù) 8.80 870.40 5P406計(jì)算機(jī)圖形學(xué) 8.70 869.60 6P827 計(jì)算機(jī)病毒防范與信息對(duì)抗技術(shù)12.50 5 60.00 由此看出,通過上述兩種格式的命令,能正確地實(shí)現(xiàn)FOXBASE+與高級(jí)語言之間的數(shù)據(jù)共享與相互傳輸。 3. FOXBASE+與高級(jí)語言程序共享數(shù)據(jù)
10、FOXBASE+供給了RUN命令作為它的應(yīng)用程序與高級(jí)語言之間協(xié)同運(yùn)行的接口。也就是說FOXBASE+與其它高級(jí)語言共享數(shù)據(jù)是通過RUN命令為紐帶來連接的,這種相互連接運(yùn)行的過程如圖所錄。 3.1 數(shù)據(jù)庫文件數(shù)據(jù)傳輸給高級(jí)語言應(yīng)用程序 為了讓數(shù)據(jù)庫文件的數(shù)據(jù)能輸給高級(jí)語言應(yīng)用程序,首先務(wù)必在FOXBASE+環(huán)境下根據(jù)高級(jí)語言應(yīng)用程序的需要,選擇數(shù)據(jù)庫文件中的某些數(shù)據(jù)生成一個(gè)能被高級(jí)語言程序接收的文本文件,然后在應(yīng)用程序中加一段“接口程序”的編程方法。以下是FOXBASE+與BASIC程序之間數(shù)據(jù)傳輸與混合編程調(diào)用的實(shí)例。 程序BASI.BAS將已轉(zhuǎn)換成SDF格式的文本文件WJ1.TXT的數(shù)據(jù)讀
11、出并計(jì)算、打印資料的累計(jì)冊(cè)數(shù)、金額、總冊(cè)數(shù)、總金額。 10 DIM B(2) 15 OPENR,#1WJ1.TXT,49 20 FIELD#1,4AS AL$,30 AS A2$,5,AS A3$,2AS A4$,6,AS A5$ 25 X%-1 30 FOR 1=1 TO3 40 GET #1,X% 55 PRINT A1$;A2$;A3$;A4$;A5$ 60 B(1)=B(1)+VAL(A4$) 70 PRINT記錄號(hào):I,累計(jì)冊(cè)數(shù);1),累計(jì)金額: ;B(2) 80PRINT 90X%=X%+1 100 NEXT 1 110 PRINT合計(jì)冊(cè)數(shù):B(1),合計(jì)金額: ;B(2) 120
12、 STSTEM 從上例程序可看出,將SDF格式文件的數(shù)據(jù)傳輸給高級(jí)語言程序時(shí),編寫接口程序須留神:接收數(shù)據(jù)的各個(gè)變量務(wù)必定義為字符型變量,且其排列依次及長(zhǎng)度務(wù)必與文本文件記錄中的數(shù)據(jù)項(xiàng)的排列依次及長(zhǎng)度一致。使用開啟文件語句時(shí),定義記錄長(zhǎng)度務(wù)必把文本文件記錄未尾的回車換行兩個(gè)字符的長(zhǎng)度考虎進(jìn)去,即:記錄長(zhǎng)度=文本文件各數(shù)據(jù)長(zhǎng)度之和+2。高級(jí)語言接口程序可通過設(shè)置和變更代表記錄號(hào)的變量來選取文本文件中所城要的記錄。任何高級(jí)語言程序可根據(jù)需要,選擇其中的片面變量。例如55語句可改成打印某個(gè)變量的內(nèi)容。若要使用與文本文件數(shù)字型相應(yīng)的變量舉行算術(shù)運(yùn)算時(shí),務(wù)必通 VAL函數(shù)把它轉(zhuǎn)換為數(shù)字型方可舉行。 3.
13、2 高級(jí)語言程序傳輸數(shù)據(jù)給數(shù)據(jù)庫文件 要讓高級(jí)語言程序產(chǎn)生的數(shù)據(jù)追加到FOXBASE+的庫文件中,在高級(jí)語言程序中也務(wù)必有一個(gè)“接口程序”,以便建立一個(gè)能為FOXBASE+數(shù)據(jù)庫文件正確接收的文本文件。然后,在FOXBASE+環(huán)境下使用APPEND FORM命令把文本文件數(shù)據(jù)追加到數(shù)據(jù)庫文件中。 BAS2.BAS是以隨機(jī)輸入方式將數(shù)據(jù)組織成SDF格式文本文件的“接口程序”。程序如下: 10 DIM B(2) 15 OPENR,#1BAS2.TXT,49 20 FIELD#1,4AS AL$,30 AS A2$,5,AS A3$,2AS A4$,6,AS A5$ 2 AS CR$ 25 X%-1
14、 30 FOR 1=1 TO3 35 READ B1$,B2$,B3$,B4$ 38 B5$=STR$(VAL(B3$)*VAL(B4$) 40 RSET A1$=B1$ 45 RSET A2$=B2$ 50 RSET A3$=B3$ 55 RSET A4$=B4$ 60 RSET A5$=B5$ 70 RSET CR$=CHR$(13)+CHR$(10) 75 PRINT A1$,A2$,A3$,A4$,A5$ 80 PUT#1,X% 90 X%=X%+1 100 NEXT 1 110 CLOSE 120 DATAP121,“多媒體計(jì)算機(jī)技術(shù)”,8.80,8,70.40 130 DATAP4
15、06,“計(jì)算機(jī)圖形學(xué)”,8.70,8,69.60 145 DATAP827, “計(jì)算機(jī)病毒防范與信息對(duì)抗技術(shù)”,12.00,5,60.00 150 END 該程序是把要追加的數(shù)據(jù)(如120,130,140語句中的數(shù)據(jù))以隨機(jī)寫入的方式組織到SDF格式的文本文件BAS2.TXT中,為了簡(jiǎn)化程序,將DATA語句中的數(shù)據(jù)用字符串形式讀入,需要計(jì)算時(shí)再轉(zhuǎn)換成數(shù)字型(如38語句)。 運(yùn)行此程序后,便生成了文本文件BAS2.TXT在當(dāng)前盤上,該內(nèi)件內(nèi)容如下: .TYPE BAS2.TXT P121 多媒體計(jì)算機(jī)技術(shù)8.80870.40 P406 計(jì)算機(jī)圖形學(xué)8.70869.60 P827 計(jì)算機(jī)病毒防范與
16、信息對(duì)抗技術(shù) 12.00 5 60.00 之后在FOXBASE+環(huán)境下使用APPEND FORM命令把文本文件數(shù)據(jù)追加到數(shù)據(jù)庫文件中。例如: .USE ZLK .APPEND FROM BAS2.TXT SDF 從本例可看出,要建立一個(gè)SDF格式的文本文件,須留神:寫入文本文件的數(shù)據(jù)務(wù)必是ASCII碼,其變量務(wù)必都是寫符型變量。要根據(jù)被追加的數(shù)據(jù)庫文件記錄中字段排列的依次、長(zhǎng)序和個(gè)數(shù)來定義各變量。要寫入文本文件的變量個(gè)數(shù)可以少于數(shù)據(jù)庫文件記錄中的字段個(gè)數(shù),但務(wù)必是結(jié)果的幾個(gè)字段,前面字段的依次、長(zhǎng)度和類型務(wù)必一致。填入文體文件變量中的數(shù)據(jù),與庫文件的字符型字段相對(duì)應(yīng)的按左對(duì)齊填入,與數(shù)字型字段
17、相對(duì)的按右對(duì)齊填入。務(wù)必在文本文件每個(gè)記錄的未尾,填入回車換行兩個(gè)字符作為記錄的終止(如程序中的70語句) 3.3 調(diào)用高級(jí)語言程序 上面介紹的數(shù)據(jù)庫文件與高級(jí)語言之間的數(shù)據(jù)傳輸,還只能分別在FOXBASE+環(huán)境或高級(jí)語文程序環(huán)境下運(yùn)行。為了在FOXBASE+下直接運(yùn)行高級(jí)語言程序,須用RUN命令。 命令格式:/ 該命令可調(diào)用DOS命令或擴(kuò)展名為COM.EXE.BAT的文件,執(zhí)行完后回到FOXBAES+工作模式。其中DOS命令主要是諸如TYPE、DIR、ERNAME、DEL等內(nèi)部命令,而.EXE的文件主要是指高級(jí)語言經(jīng)過編譯和連接后生成的可執(zhí)行文件或DOS的一些外部命令文件。留神在使用RUN命
18、令時(shí),要器務(wù)必有足夠大的內(nèi)存容量,通常至少應(yīng)大于640KB。 例:在FOXBASE+狀態(tài)下執(zhí)行DOS命令TYPE。顯示A盤上的CONFIG.SYS文件的內(nèi)容。 輸入命令:.RUN TYPE A:CONFIG.STS 即在屏幕上顯示A盤CONEIG.SYS文件的內(nèi)容后,又返回點(diǎn)狀態(tài)。此外,使用此命令,還可在FOXBASE+應(yīng)用程序中調(diào)用高級(jí)語言程序,且執(zhí)行完高級(jí)語言程序后又返回持續(xù)執(zhí)行FOZBASE+程序。 例如在FOXBASE+的點(diǎn)狀態(tài)下運(yùn)行程序BAS1.BAS(該程序在GWBASIC.EXE下運(yùn)行通過)。只須鍵入命令:.RUN GWBASIC BAS1 即可將文件文件WJ1.TXT中的數(shù)據(jù)讀出、計(jì)算,并在屏幕上顯示。實(shí)現(xiàn)了FOXBASE+與高級(jí)語言BASIC程序之間的通訊。 若在FOXBASE+中用RUN命令調(diào)用源程序BAS2.BAS以生成文本文件BAS2.TXT,然后將其內(nèi)容追加到庫文件ZLK.DBF中,其調(diào)用BASIC程序的命令文件清單如下: .*HUHD.PRG SET TALK OFF CLEAR RUN GWBASIC BAS2.BAS USE SJK APPEND FORM BAS2.T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保管采購合同范例
- 眾籌開店合同范例
- 別墅裝飾裝修合同范例
- 借款續(xù)簽合同范例
- 會(huì)議物料合同范例
- 債權(quán)出質(zhì)擔(dān)保合同范例
- 健身房合同范例
- 農(nóng)村拆除合同范例
- 公對(duì)公茶葉合同范例
- 供熱施工合同范例
- CRRT治療原理、模式選擇
- 成都市2024屆高中畢業(yè)班第二次診斷性監(jiān)測(cè)-2024年全國(guó)各地高考語文模擬卷作文導(dǎo)寫講練
- 醫(yī)保統(tǒng)計(jì)信息管理制度
- 達(dá)格列凈治療心衰機(jī)制
- 2024年保育員(初級(jí))證考試題庫及答案
- 40篇英語短文搞定3500個(gè)單詞 正文
- 2024年度《冠心病》全套課件(完整版)
- 正面吊安全操作規(guī)程培訓(xùn)
- 2023年臺(tái)州市中考科學(xué)(正卷)和答案
- 經(jīng)典美味的宮保雞丁
- 孤獨(dú)癥兒童心智解讀能力
評(píng)論
0/150
提交評(píng)論