走进VB6啃一块骨头
2008-02-23 06:53:46来源:互联网 阅读 ()
要性。爱好编程的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】按钮即可得到其他的字段(年龄、性别)情况,如果不为此八人,则显示【not find】提示框。此程序运行后可以建立一个名为Nas.db的数据库文件和一个名为Nas.txt的文本文件。
Cfanvb.bas模块代码为:
Type nas '定义记录类型
name As String * 6 '姓名
age As String * 3 '年龄
sex As String * 4 '性别
End Type
Type nasindex '定义另一记录类型
name As String * 6 '姓名
number As Integer '记录号
End Tyep
Public among As nas '定义公共变量
public index() As nasindex '定义枚举索引数组
Public totalnum As Integer '定义总记录数
cfanvb.frm表单的代码为:
Option Explicit '强制变量必须进行正规声明
Const nasdb="\nas.db" '定义常量数据库文件名
Const nastxt="\nas.txt" '定义文本文件名
Function search(findtxt) As Integer 'Function过程,寻找某一姓名findtxt,得出记录号search
Dim front As Integer '定义变量
Dim behind As Integer
Dim findnum As Integer
Dim middle As Integer
front=1
behind = totalnum '定义初始值
findnum = 0
Do While front <= behind And findnum = 0
middle = (front behind)\2 '用二分法查找
If findtxt = Rtrim(index(middle).name) Then '找到此记录
findnum = middle
ElseIf findtxt > index(middle).name Then
front=middle 1 '要找的记录在middle之后
Else
behind = middle - 1 '要找的记录在middle之前
End If
Loop
search=findnum '如找到,则找到的记录号为search;否则,search为0
End Function
Sub createindex() '为所有记录建立索引
Dim I As Integer, change As nasindex, j As Integer
For I = I To totalnum
Get #1,I,among '读出第I条记录
index(I).name=among.name '此记录的name字段赋予索引I的name字段
index(I).number = I '记录号赋予索引I的number字段
Next I
For I =l to totalnum -1
For j=I 1 To totalnum
If index(I).name > index(j).name Then
change = index(I)
index(I)=index(j)
index(j)=change
End If
Next j
Next I '对索引数组排序,使index(I).name Fnd Sub
Private Sub Cmdexit_Click()
Close #1 '关闭文件1
End '结束
End Sub
Private Sub Cmdlookfor_Click() '查找
Dim which As Integer
Dim findit As Integer
which = search(textname.Text) '调用search()
If which > 0 Then 'which > 0 表明查找到
findit = index(which).number
Get #1, findit,among '由记录号读出记录
with among
textname =.name '将此记录的各字段显示于文本框
Textage =.age
Textsex =.sex
End With
Else
MsgBox "can't find it" , 48,"lookfor" '否则没找到提示信息
End If
End Sub
Private Sub cmdnew_Click() '所有文本框清空
textname =""
Textage = ""
Textsex =""
textname.SetFocus 'textname文本框得到输入焦点
End Sub
Private Sub Cmdsave_Click()
totalnum = totalnum 1 '记录数加1
If totalnum > 0 Then Cmdtxt.Enabled = True '使Cmdtxt按钮由灰色变成可激活
With among '将各文本框内容存于记录
.name=textname.text
.age=Textage.Text
.sex = Textsex.Text
End With
Put #1,totalnum,among '将记录加入#1
ReDim index(totalnum) '重新定义枚举数组
createindex '调用过程重新建立索引
textname ="" '清空文本框,激活textname
Textage = ""
Textsex =""
textname.SetFocus
End Sub
Ptivate Sub Cmdtxt_Click() '建立文本文件
Dim I
Dim message1 As String, message2 As String
Open nastxt For Output As #2 '打开文本,接受输出
For I=1 To totalnum
Get #1, index(I).number,among '读记录
With among
Print #2," "; Ucase(Trim.(.name))
Print #2,"age: "; .age '用Print语句建立文本
Print #2, "sex: "; .sex
End With
Next I
Close #2 '关闭文本文件
textname.SetFocus
message1="文本nas.txt已经建好"
message2 ="file"
MsgBox$ message1, 64, message2 '显示文本已建好对话框
End Sub
Private Sub Form_Load() '程序运行装人表单时的事件
Open nasdb For Random As #1 '打开数据库
Len = Len(among)
totalnun = LOF(1)/ Len(among) '计算记录数
If totalnum > 0 Then
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Excel中Basic程序的运行
- 走进VB6啃一块骨头 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash