国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

走進VB6啃一塊骨頭

2019-11-18 17:47:26
字體:
供稿:網(wǎng)友
我們在玩《仙劍奇?zhèn)b傳》時,要是不能保存數(shù)據(jù),那么非得挑燈夜戰(zhàn)三晝夜才能玩完,可見數(shù)據(jù)存儲之重
要性。愛好編程的CFAN是不會放過數(shù)據(jù)文件的,下面跟著我馳騁吧!我們先吃一個哈密瓜,開門即來編一傳統(tǒng)的比較有代表性的程序,不可不看的喲!
程序分為一個表單cfanvb.frm,一個模塊cfanvb.bas。一個表單程序。程序的表單中有五個命令按鈕,從上到下分別命名為Cmdnew、Cmdsave,Cmdtxt、cmdlookfor、Cmdexit,標(biāo)題分別為&New、&Save、&Txt、&Lookfor、&Exit;還有三個文本框,名稱分別為Textname、Textage、Textsex;還有三個標(biāo)簽。
程序的功能
功能1:能存儲你所輸入的每一條完整記錄,并創(chuàng)造數(shù)據(jù)庫文件nas.db。
功能2:能按輸入的姓名字段查找記錄并顯示。
功能3:將所有記錄按NAME字段排序制成文本文件nas.txt,以便打印、修改。
程序運行情況
先后輸入八條記錄,name字段分別為李繼華、朱茵、小鞏、朱朱、李麗麗、黃慶、Tom、Kate,并一一存儲(按Save按鈕,存儲第一條記錄前,Txt按鈕為灰色,即不可激活態(tài));點擊【Txt】按鈕,會出現(xiàn)【文本已經(jīng)建好】提示框(文本的各項是按姓名順序排列的,name分別為Kate、Tom、小鞏、朱朱、朱茵、李麗麗、李繼華、黃慶);在Textname文本框中輸入上面任一姓名,點擊【Lookfor】按鈕即可得到其他的字段(年齡、性別)情況,如果不為此八人,則顯示【notfind】提示框。此程序運行后可以建立一個名為Nas.db的數(shù)據(jù)庫文件和一個名為Nas.txt的文本文件。

Cfanvb.bas模塊代碼為:
Typenas'定義記錄類型
nameAsString*6'姓名
ageAsString*3'年齡
sexAsString*4'性別
EndType
Typenasindex'定義另一記錄類型
nameAsString*6'姓名
numberAsInteger'記錄號
EndTyep
PublicamongAsnas'定義公共變量
publicindex()Asnasindex'定義枚舉索引數(shù)組
PublictotalnumAsInteger'定義總記錄數(shù)

cfanvb.frm表單的代碼為:
OptionExplicit'強制變量必須進行正規(guī)聲明
Constnasdb="/nas.db"'定義常量數(shù)據(jù)庫文件名
Constnastxt="/nas.txt"'定義文本文件名
Functionsearch(findtxt)AsInteger'Function過程,尋找某一姓名findtxt,得出記錄號search
DimfrontAsInteger'定義變量
DimbehindAsInteger
DimfindnumAsInteger
DimmiddleAsInteger
front=1
behind=totalnum'定義初始值
findnum=0
DoWhilefront<=behindAndfindnum=0
middle=(front behind)/2'用二分法查找
Iffindtxt=Rtrim(index(middle).name)Then'找到此記錄
findnum=middle
ElseIffindtxt>index(middle).nameThen
front=middle 1'要找的記錄在middle之后
Else
behind=middle-1'要找的記錄在middle之前
EndIf
Loop
search=findnum'如找到,則找到的記錄號為search;否則,search為0
EndFunction
Subcreateindex()'為所有記錄建立索引
DimIAsInteger,changeAsnasindex,jAsInteger
ForI=ITototalnum
Get#1,I,among'讀出第I條記錄
index(I).name=among.name'此記錄的name字段賦予索引I的name字段
index(I).number=I'記錄號賦予索引I的number字段
NextI
ForI=ltototalnum-1
Forj=I 1Tototalnum
Ifindex(I).name>index(j).nameThen
change=index(I)
index(I)=index(j)
index(j)=change
EndIf
Nextj
NextI'對索引數(shù)組排序,使index(I).nameFndSub
EndSub
PrivateSubCmdsave_Click()
totalnum=totalnum 1'記錄數(shù)加1
Iftotalnum>0ThenCmdtxt.Enabled=True'使Cmdtxt按鈕由灰色變成可激活
Withamong'將各文本框內(nèi)容存于記錄
.name=textname.text
.age=Textage.Text
.sex=Textsex.Text
EndWith
Put#1,totalnum,among'將記錄加入#1
ReDimindex(totalnum)'重新定義枚舉數(shù)組
createindex'調(diào)用過程重新建立索引
textname=""'清空文本框,激活textname
Textage=""
Textsex=""
textname.SetFocus
EndSub
PtivateSubCmdtxt_Click()'建立文本文件
DimI
Dimmessage1AsString,message2AsString
OpennastxtForOutputAs#2'打開文本,接受輸出
ForI=1Tototalnum
Get#1,index(I).number,among'讀記錄
Withamong
Print#2,"";Ucase(Trim.(.name))
Print#2,"age:";.age'用Print語句建立文本
Print#2,"sex:";.sex
EndWith
NextI
Close#2'關(guān)閉文本文件
textname.SetFocus
message1="文本nas.txt已經(jīng)建好"
message2="file"
MsgBox$message1,64,message2'顯示文本已建好對話框
EndSub
PrivateSubForm_Load()'程序運行裝人表單時的事件
OpennasdbForRandomAs#1'打開數(shù)據(jù)庫
Len=Len(among)
totalnun=LOF(1)/Len(among)'計算記錄數(shù)
Iftotalnum>0Then
ReDimindex(totalnum)'定義枚舉索引數(shù)組
createindex'建立索引
Else
Cmdtxt.Enabled=False'禁止Cmdtxt按鈕
EndIf
EndSub
我們通過以上程序,可以得出哪些啟示呢?
1.文件可分為文本文件(一般為順序存取格式,本程序為cfanvb.txt)和隨機存取文件(本程序為cfan
vb.db)。
2.隨機存取文件由一些固定長度的記錄組成,建立好索引后,能在不讀入其他記錄的情況下,直接跳到某一記錄。
3.在文本文件中使用的語句:
(1)OpenfilenameForoutput(append)As#numberoutput:創(chuàng)建一個新文件并準(zhǔn)備寫入數(shù)據(jù);
append:打開一個已存在的文件并準(zhǔn)備寫入數(shù)據(jù)于文件的結(jié)尾。
(2)Print#number,[data1;data2;data3...]
它可將一個或多個沒有分隔的字符串輸出到指定文件#filenumber,“print#filename,”表示輸出一空行。
(3)Write#number,data1,data2,data3...
它可將一行數(shù)據(jù)寫入一個已經(jīng)打開的文件,并提供“,”作間隔。
(4)OpenfilenameForInputAs#number
它為讀數(shù)據(jù)而打開一個文件。
4.隨機存取文件常用語句:
(1)OpenfilenameForRandomAs#numberLen=recordlength
以隨機方式打開一既可以讀又可以寫的文件,其中recordlength為文件記錄的字節(jié)數(shù)。
(2)Put#number,recordnumber,record(寫入)
Get#number,recordnumber,record(讀出)
其中,#number文件已經(jīng)打開,"recordnumber指明要寫入(或讀出)的位置,record指那條記錄。
本文介紹了處理數(shù)據(jù)的一些傳統(tǒng)方法和基本知識,根據(jù)本程序的思路,你可制作出自己喜歡的小程序。其實VB6還有更簡單的處理數(shù)據(jù)的方法,留待以后介紹。希望我燒的骨頭湯能適合大家口味。->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 壤塘县| 安宁市| 富阳市| 衡水市| 石狮市| 岫岩| 江川县| 鹿邑县| 安远县| 彭水| 克山县| 赫章县| 巴林右旗| 道孚县| 旺苍县| 普洱| 柳林县| 比如县| 舒兰市| 长岭县| 嘉峪关市| 新宁县| 五莲县| 宁夏| 益阳市| 延长县| 论坛| 吴桥县| 余干县| 岑溪市| 蒲江县| 安达市| 麦盖提县| 黑龙江省| 常山县| 布尔津县| 信阳市| 镇康县| 扎鲁特旗| 黄骅市| 齐河县|