FOXBASE與高級語言程序的數(shù)據(jù)共享及混合編程_第1頁
FOXBASE與高級語言程序的數(shù)據(jù)共享及混合編程_第2頁
FOXBASE與高級語言程序的數(shù)據(jù)共享及混合編程_第3頁
FOXBASE與高級語言程序的數(shù)據(jù)共享及混合編程_第4頁
FOXBASE與高級語言程序的數(shù)據(jù)共享及混合編程_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本文格式為Word版,下載可任意編輯 與高級語言程序的數(shù)據(jù)共享及混合編程 1.引言 數(shù)據(jù)庫管理系統(tǒng)FOXBASE目前在我國各個領(lǐng)域的管理和辦公自動化中得到分外廣泛的應(yīng)用,尤其是在管理信息系統(tǒng)(MIS)與決策技持系統(tǒng)(DSS)中,數(shù)據(jù)庫的數(shù)據(jù)不僅是供低層管理作統(tǒng)計、匯總、查詢、報表輸出等使用,更重要的是對數(shù)據(jù)舉行分析、提煉,利用一些數(shù)學模型的計算,為中、高層管理供給輔佐決策的依據(jù)。但由于FOXBASE+系統(tǒng)的運算功能較弱,對于決策中的大量線性規(guī)劃、運籌學、統(tǒng)計學等問題的計算、繪圖等要求難以得志,而這類問題又是一些高級語言如BASIC、FORTRAN、PASCAL、C語言或匯編語言等較為輕易解決的

2、。因此,隨著我國計算機應(yīng)用的越來越深入普及,應(yīng)用水平越來越提高,解決數(shù)據(jù)庫系統(tǒng)與其它語言程序之間的數(shù)據(jù)傳輸、數(shù)據(jù)共享以及混合編程的問題就顯得越來越重要,而這個問題往往又是學生或編程人員在學習或編程中的難點。下面是筆者根據(jù)在教學和科研實踐中的點滴閱歷,談?wù)剶?shù)據(jù)庫系統(tǒng)FOXBASE+2.1與其它程序語言之間的接口和混 合編程問題的一些體會。 2.FOXBASE+與高級語言舉行數(shù)據(jù)傳輸?shù)慕涌?FOXBASE+系統(tǒng)供給了兩條轉(zhuǎn)換文件格式的命令作為數(shù)據(jù)庫與高級語言程序之間傳輸數(shù)據(jù)的橋梁。其概括做法是先用COPY命令把數(shù)據(jù)庫文件(.DBF)復(fù)制成文本文件(.TXT),再供給給高級語言程序舉行訪問,或者是用

3、APPEND FROM命令舉行反問轉(zhuǎn)換和傳輸,即把高級語言程序中生成的文本文件(.TXT),傳輸?shù)綌?shù)據(jù)庫文件(.DBF)中,如下圖: FOXBASE+用于.DBF文件與.TXT文件之間轉(zhuǎn)換的兩個命令的概括格式和功能如下: 2.1 生成文本文件 命令格式:COPY TOFIELDSFOR/WHILESDF/DELIMITESWITH BLANK/ 該命令的功能是將當前庫文件的片面或全部記錄,按指定的格式復(fù)制給定文件名的文本文件中,文本文件的擴展名.TXT由系統(tǒng)自動加上。其中的SDF和DELIMITED是規(guī)定文本文件格式的,要必選其一,否那么無法生成文本文件。 若在該命令中使用了選項SDF,那么生

4、成的文本文件是SDF格式,稱為標準格式或系統(tǒng)數(shù)據(jù)格式。這種格式規(guī)定各記錄的長度一致,嚴格限定各數(shù)據(jù)項(字段)長度、類型和存放依次。字段中存放的數(shù)據(jù)缺乏,應(yīng)以空格填滿。字符型字段按左對齊存放,數(shù)字型字段按右對齊存放。各字段之間無分隔符,以回車換行作符作為一條記錄終止的標志。 例如將FOXBASE+中的數(shù)據(jù)文件NLK.DBF轉(zhuǎn)換成高級高言的SDF格式文本文件WJ1.TXT,其轉(zhuǎn)換前后的文件內(nèi)容分別如下: .use ZLK .Iist 記錄號# 書名定價冊數(shù) 金額 1 P117計算機系統(tǒng)布局根基8.20 5 41.00 2 P145學識工程與學識處理系統(tǒng) 8.40 542.00 3 P110計算機綜

5、合應(yīng)用學識 19.50358.50 .COPY TO WJ1.TXT SDF .!TYPE WJ1.TXT P117計算機系統(tǒng)布局根基 8.20 541.00 P145學識工程與學識處理系統(tǒng) 8.40 542.00 P110計算機綜合應(yīng)用學識 19.50358.50 若在該命令中使用選項DELIMITES WITH,那么生成用戶定義定界符格式或緊湊格式的文本文件。這種格式存貯的文件記錄可以不定長。各字段之間可以用逗號隔開,字符型、規(guī)律型字段用雙引號或其它符號(如空格或#號)括起來,并刪去字型數(shù)據(jù)的尾部空格及數(shù)字中的前導(dǎo)0,仍用回車換行符作為一條記錄的終止標志。例如用庫文件ZLK.DBF分別分別

6、生成用雙引號和#號作定界符的文本文件WJ2.TXT和WJ3.TXT。 .USE XLK .COPY TO WJ2.TXT-DELIMITES .!TYPE WJ2.TXT ”P117”, “計算機系統(tǒng)布局根基”,8.20,5,41.00 ”P145”, “學識工程與學識處理系統(tǒng)”,8.40,5,42.00 ”P110”, “計算機綜合應(yīng)用學識”,19.50,3,58.50 .COPY TO WJ3.TXT DELIMITES WITH# .!TYPY TO WJ3.TXT #P117#,#計算機系統(tǒng)布局根基#,8.20,5,41.00 #P145#,#學識工程與學識處理系統(tǒng)#,8.40,5,4

7、2.00 #P110#,#計算機綜合應(yīng)用學識#,19.50,3,58.50 2、由文本文件向數(shù)據(jù)庫傳輸數(shù)據(jù) 命令格式:APPEND FORMFORSDF/DELIMITED WITH BLANK/ 該命令功能是把文本文件中合符條件的記錄讀出來,逐個追加到當前庫文件的尾部。若文本文件的擴展名為.TXT,輸實時可省略。 選中用SDF選項時,系統(tǒng)將根據(jù)當前文件的字段依次及其長度,把文本文件中的數(shù)據(jù)從左到右填入各字段之中,遇到回車換行符就終止該記錄并開頭追加下一條記錄,直至追加完全部記錄;選中用DELIMITED WITH項時,系統(tǒng)將文本文件的數(shù)據(jù)從左往右依次填入庫文件的各個字段,每讀到一個逗號,就終

8、止該字段的填入,開頭下一字段的填入。文本文件中對應(yīng)于字符型字段的數(shù)據(jù),務(wù)必用字界符括起來,當系統(tǒng)讀到回車換行符時就終止一條記錄而開頭一下記錄的追加,直至讀完全部記錄。 假設(shè)某個高級語言程序生成了一個文本文件,就可以用此命令,把數(shù)據(jù)存入FOXBASE+的數(shù)據(jù)庫文件中。 例如:設(shè)文本文件BAS2.TXT是由某BASIC程序生成的SDF格式文件,其數(shù)據(jù)格式如下: P121多媒體計算機技術(shù) 8.80870.40 P406計算機圖形學 8.70869.60 P827計算機病毒防范與信息對抗技術(shù) 12.00 560.00 下面用APPEND FORM命令把BSA2.TXT的數(shù)據(jù)傳輸?shù)絑LK.DBFK: .

9、USE ZLK .APPEND FORM BAS2.TXT SDF .LIST 記錄號# 書名 定價 冊數(shù) 金額 1 P117 計算機系統(tǒng)布局根基8.205 41.00 2 P145 學識工程與學識處理系統(tǒng)8.405 42.00 3P110計算機綜合應(yīng)用學識 19.503 58.50 4P121多媒體計算機技術(shù) 8.80 870.40 5P406計算機圖形學 8.70 869.60 6P827 計算機病毒防范與信息對抗技術(shù)12.50 5 60.00 由此看出,通過上述兩種格式的命令,能正確地實現(xiàn)FOXBASE+與高級語言之間的數(shù)據(jù)共享與相互傳輸。 3. FOXBASE+與高級語言程序共享數(shù)據(jù)

10、FOXBASE+供給了RUN命令作為它的應(yīng)用程序與高級語言之間協(xié)同運行的接口。也就是說FOXBASE+與其它高級語言共享數(shù)據(jù)是通過RUN命令為紐帶來連接的,這種相互連接運行的過程如圖所錄。 3.1 數(shù)據(jù)庫文件數(shù)據(jù)傳輸給高級語言應(yīng)用程序 為了讓數(shù)據(jù)庫文件的數(shù)據(jù)能輸給高級語言應(yīng)用程序,首先務(wù)必在FOXBASE+環(huán)境下根據(jù)高級語言應(yīng)用程序的需要,選擇數(shù)據(jù)庫文件中的某些數(shù)據(jù)生成一個能被高級語言程序接收的文本文件,然后在應(yīng)用程序中加一段“接口程序”的編程方法。以下是FOXBASE+與BASIC程序之間數(shù)據(jù)傳輸與混合編程調(diào)用的實例。 程序BASI.BAS將已轉(zhuǎn)換成SDF格式的文本文件WJ1.TXT的數(shù)據(jù)讀

11、出并計算、打印資料的累計冊數(shù)、金額、總冊數(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記錄號:I,累計冊數(shù);1),累計金額: ;B(2) 80PRINT 90X%=X%+1 100 NEXT 1 110 PRINT合計冊數(shù):B(1),合計金額: ;B(2) 120

12、 STSTEM 從上例程序可看出,將SDF格式文件的數(shù)據(jù)傳輸給高級語言程序時,編寫接口程序須留神:接收數(shù)據(jù)的各個變量務(wù)必定義為字符型變量,且其排列依次及長度務(wù)必與文本文件記錄中的數(shù)據(jù)項的排列依次及長度一致。使用開啟文件語句時,定義記錄長度務(wù)必把文本文件記錄未尾的回車換行兩個字符的長度考虎進去,即:記錄長度=文本文件各數(shù)據(jù)長度之和+2。高級語言接口程序可通過設(shè)置和變更代表記錄號的變量來選取文本文件中所城要的記錄。任何高級語言程序可根據(jù)需要,選擇其中的片面變量。例如55語句可改成打印某個變量的內(nèi)容。若要使用與文本文件數(shù)字型相應(yīng)的變量舉行算術(shù)運算時,務(wù)必通 VAL函數(shù)把它轉(zhuǎn)換為數(shù)字型方可舉行。 3.

13、2 高級語言程序傳輸數(shù)據(jù)給數(shù)據(jù)庫文件 要讓高級語言程序產(chǎn)生的數(shù)據(jù)追加到FOXBASE+的庫文件中,在高級語言程序中也務(wù)必有一個“接口程序”,以便建立一個能為FOXBASE+數(shù)據(jù)庫文件正確接收的文本文件。然后,在FOXBASE+環(huán)境下使用APPEND FORM命令把文本文件數(shù)據(jù)追加到數(shù)據(jù)庫文件中。 BAS2.BAS是以隨機輸入方式將數(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,“多媒體計算機技術(shù)”,8.80,8,70.40 130 DATAP4

15、06,“計算機圖形學”,8.70,8,69.60 145 DATAP827, “計算機病毒防范與信息對抗技術(shù)”,12.00,5,60.00 150 END 該程序是把要追加的數(shù)據(jù)(如120,130,140語句中的數(shù)據(jù))以隨機寫入的方式組織到SDF格式的文本文件BAS2.TXT中,為了簡化程序,將DATA語句中的數(shù)據(jù)用字符串形式讀入,需要計算時再轉(zhuǎn)換成數(shù)字型(如38語句)。 運行此程序后,便生成了文本文件BAS2.TXT在當前盤上,該內(nèi)件內(nèi)容如下: .TYPE BAS2.TXT P121 多媒體計算機技術(shù)8.80870.40 P406 計算機圖形學8.70869.60 P827 計算機病毒防范與

16、信息對抗技術(shù) 12.00 5 60.00 之后在FOXBASE+環(huán)境下使用APPEND FORM命令把文本文件數(shù)據(jù)追加到數(shù)據(jù)庫文件中。例如: .USE ZLK .APPEND FROM BAS2.TXT SDF 從本例可看出,要建立一個SDF格式的文本文件,須留神:寫入文本文件的數(shù)據(jù)務(wù)必是ASCII碼,其變量務(wù)必都是寫符型變量。要根據(jù)被追加的數(shù)據(jù)庫文件記錄中字段排列的依次、長序和個數(shù)來定義各變量。要寫入文本文件的變量個數(shù)可以少于數(shù)據(jù)庫文件記錄中的字段個數(shù),但務(wù)必是結(jié)果的幾個字段,前面字段的依次、長度和類型務(wù)必一致。填入文體文件變量中的數(shù)據(jù),與庫文件的字符型字段相對應(yīng)的按左對齊填入,與數(shù)字型字段

17、相對的按右對齊填入。務(wù)必在文本文件每個記錄的未尾,填入回車換行兩個字符作為記錄的終止(如程序中的70語句) 3.3 調(diào)用高級語言程序 上面介紹的數(shù)據(jù)庫文件與高級語言之間的數(shù)據(jù)傳輸,還只能分別在FOXBASE+環(huán)境或高級語文程序環(huán)境下運行。為了在FOXBASE+下直接運行高級語言程序,須用RUN命令。 命令格式:/ 該命令可調(diào)用DOS命令或擴展名為COM.EXE.BAT的文件,執(zhí)行完后回到FOXBAES+工作模式。其中DOS命令主要是諸如TYPE、DIR、ERNAME、DEL等內(nèi)部命令,而.EXE的文件主要是指高級語言經(jīng)過編譯和連接后生成的可執(zhí)行文件或DOS的一些外部命令文件。留神在使用RUN命

18、令時,要器務(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)容后,又返回點狀態(tài)。此外,使用此命令,還可在FOXBASE+應(yīng)用程序中調(diào)用高級語言程序,且執(zhí)行完高級語言程序后又返回持續(xù)執(zhí)行FOZBASE+程序。 例如在FOXBASE+的點狀態(tài)下運行程序BAS1.BAS(該程序在GWBASIC.EXE下運行通過)。只須鍵入命令:.RUN GWBASIC BAS1 即可將文件文件WJ1.TXT中的數(shù)據(jù)讀出、計算,并在屏幕上顯示。實現(xiàn)了FOXBASE+與高級語言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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論