欢迎光临
我们一直在努力

走进vb6啃一块骨头_visualbasic教程

建站超值云服务器,限时71元/月

我们在玩《仙剑奇侠传》时,要是不能保存数据,那么非得挑灯夜战三昼夜才能玩完,可见数据存储之重
要性。爱好编程的CFAN是不会放过数据文件的,下面跟着我驰骋吧!我们先吃一个哈密瓜,开门即来编一传统的比较有代表性的程序,不可不看的哟!
程序分为一个表单cfanvb.frm,一个模块cfanvb.bas。一个表单程序。程序的表单中有五个命令按钮,从上到下分别命名为Cmdnew、Cmdsave,Cmdtxt、cmdlookfor、Cmdexit,标题分别为&New、&Save、&Txt、&Lookfor、&Exit;还有三个文本框,名称分别为Textname、Textage、Textsex;还有三个标签。
程序的功能
功能1:能存储你所输入的每一条完整记录,并创造数据库文件nas.db。
功能2:能按输入的姓名字段查找记录并显示。
功能3:将所有记录按NAME字段排序制成文本文件nas.txt,以便打印、修改。
程序运行情况
先后输入八条记录,name字段分别为李继华、朱茵、小巩、朱朱、李丽丽、黄庆、Tom、Kate,并一一存储(按Save按钮,存储第一条记录前,Txt按钮为灰色,即不可激活态);点击【Txt】按钮,会出现【文本已经建好】提示框(文本的各项是按姓名顺序排列的,name分别为Kate、Tom、小巩、朱朱、朱茵、李丽丽、李继华、黄庆);在Textname文本框中输入上面任一姓名,点击【Lookfor】按钮即可得到其他的字段(年龄、性别)情况,如果不为此八人,则显示【notfind】提示框。此程序运行后可以建立一个名为Nas.db的数据库文件和一个名为Nas.txt的文本文件。

Cfanvb.bas模块代码为:
Typenas定义记录类型
nameAsString*6姓名
ageAsString*3年龄
sexAsString*4性别
EndType
Typenasindex定义另一记录类型
nameAsString*6姓名
numberAsInteger记录号
EndTyep
PublicamongAsnas定义公共变量
publicindex()Asnasindex定义枚举索引数组
PublictotalnumAsInteger定义总记录数

cfanvb.frm表单的代码为:
OptionExplicit强制变量必须进行正规声明
Constnasdb=”\nas.db”定义常量数据库文件名
Constnastxt=”\nas.txt”定义文本文件名
Functionsearch(findtxt)AsIntegerFunction过程,寻找某一姓名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对索引数组排序,使index(I).nameFndSub
PrivateSubCmdexit_Click()
Close#1关闭文件1
End结束
EndSub
PrivateSubCmdlookfor_Click()查找
DimwhichAsInteger
DimfinditAsInteger
which=search(textname.Text)调用search()
Ifwhich>0Thenwhich>0表明查找到
findit=index(which).number
Get#1,findit,among由记录号读出记录
withamong
textname=.name将此记录的各字段显示于文本框
Textage=.age
Textsex=.sex
EndWith
Else
MsgBox”cantfindit”,48,”lookfor”否则没找到提示信息
EndIf
EndSub
PrivateSubcmdnew_Click()所有文本框清空
textname=””
Textage=””
Textsex=””
textname.SetFocustextname文本框得到输入焦点
EndSub
PrivateSubCmdsave_Click()
totalnum=totalnum 1记录数加1
Iftotalnum>0ThenCmdtxt.Enabled=True使Cmdtxt按钮由灰色变成可激活
Withamong将各文本框内容存于记录
.name=textname.text
.age=Textage.Text
.sex=Textsex.Text
EndWith
Put#1,totalnum,among将记录加入#1
ReDimindex(totalnum)重新定义枚举数组
createindex调用过程重新建立索引
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关闭文本文件
textname.SetFocus
message1=”文本nas.txt已经建好”
message2=”file”
MsgBox$message1,64,message2显示文本已建好对话框
EndSub
PrivateSubForm_Load()程序运行装人表单时的事件
OpennasdbForRandomAs#1打开数据库
Len=Len(among)
totalnun=LOF(1)/Len(among)计算记录数
Iftotalnum>0Then
ReDimindex(totalnum)定义枚举索引数组
createindex建立索引
Else
Cmdtxt.Enabled=False禁止Cmdtxt按钮
EndIf
EndSub
我们通过以上程序,可以得出哪些启示呢?
1.文件可分为文本文件(一般为顺序存取格式,本程序为cfanvb.txt)和随机存取文件(本程序为cfan
vb.db)。
2.随机存取文件由一些固定长度的记录组成,建立好索引后,能在不读入其他记录的情况下,直接跳到某一记录。
3.在文本文件中使用的语句:
(1)OpenfilenameForoutput(append)As#numberoutput:创建一个新文件并准备写入数据;
append:打开一个已存在的文件并准备写入数据于文件的结尾。
(2)Print#number,[data1;data2;data3…]
它可将一个或多个没有分隔的字符串输出到指定文件#filenumber,“print#filename,”表示输出一空行。
(3)Write#number,data1,data2,data3…
它可将一行数据写入一个已经打开的文件,并提供“,”作间隔。
(4)OpenfilenameForInputAs#number
它为读数据而打开一个文件。
4.随机存取文件常用语句:
(1)OpenfilenameForRandomAs#numberLen=recordlength
以随机方式打开一既可以读又可以写的文件,其中recordlength为文件记录的字节数。
(2)Put#number,recordnumber,record(写入)
Get#number,recordnumber,record(读出)
其中,#number文件已经打开,”recordnumber指明要写入(或读出)的位置,record指那条记录。
本文介绍了处理数据的一些传统方法和基本知识,根据本程序的思路,你可制作出自己喜欢的小程序。其实VB6还有更简单的处理数据的方法,留待以后介绍。希望我烧的骨头汤能适合大家口味。->

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 走进vb6啃一块骨头_visualbasic教程
分享到: 更多 (0)