首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络安全-> 黑客攻防
走进vb6啃一块骨头_visualbasic教程
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
我们在玩《仙剑奇侠传》时,要是不能保存数据,那么非得挑灯夜战三昼夜才能玩完,可见数据存储之重
要性。爱好编程的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还有更简单的处理数据的方法,留待以后介绍。希望我烧的骨头汤能适合大家口味。->


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·J2EE平台介绍-JSP教程,J2ME开发
·自己制作友好的页面“确认对话框”-ASP教程,ASP应用
·DataAdapter是如何更新数据库数据的?-.NET教程,数据库应用
·jsp项目中实现关闭浏览器后吊线,只要不关闭不操作也保持在线-JSP教程,Jsp/Servlet
·企业Java技术开发技巧2则-JSP教程,Java技巧及代码
·刚刚整理好-汉字转拼音缩写的函数-.NET教程,评论及其它
·关于数据返回给调用页面-ASP教程,数据库相关
·如何使用C#压缩文件及注意的问题!-.NET教程,C#语言
·数据库安装程序-.NET教程,数据库应用
·DataGrid的自定义分页UserControl-.NET教程,数据库应用
最新文章
·王通:网站推广的18种秘笈_营销推广
·什么是mfa,以及停止mfa的好处_网赚技巧
·google adsense 域名保护功能是否作恶_网赚技巧
·关于无效点击-adsense团队资深专员如是说_网赚技巧
·google adsense将以人民币支付_站长访谈
·bbmao的神秘配方:打破中文聚类搜索的低迷_站长访谈
·你的网站为什么粘不住流量?_站长心得
·决定网站成败重要的六个因素_站长心得
·widnows vista是吃内存大户 优化vista攻略_windows vista
·首页所应该达到的几个目标(1)_站长心得
相关主题
西部数码虚拟主机

友情链接
CNNIC 西部数码
万网 自助建站
虚拟主机 asp空间
域名注册 域名
域名申请 主页空间
论坛空间 网站空间
国际域名 虚拟空间
空间租用 DDOS防火墙
成都主机托管 四川主机托管
主机租用 服务器租用
网站目录 自助建站
虚拟主机 网址大全
软件下载
自助链接
虚拟主机资讯 特价虚拟主机
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论 打印  刷新     关闭