您的批评和鼓励都是我把编程无限办好的动力! 您编程时遇到困难,或遇到不顺心的事想发发牢骚尽管到这里来吧! 虽然本网力求全面,但也不能包罗万象,这些我筛选出的优秀网站连接就是对本站最好的补充! 学习编程当然也离不开书本了,这里收集大量编程书籍! 编程无限之源码超市,这里收集的代码令你意想不到的全面! 欢迎光临编程网校,这里专门收集VB/CB入门文章及技术文章! 欢迎光临编程无限!
     
       
 
当前位置:中文资料 >> 其他
走进VB6啃一块骨头
  资料类型: 其他 上传时间: 2001-02-21 阅读次数: 3549



走进VB6啃一块骨头

程序分为一个表单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=" as.db" '定义常量数据库文件名
Const nastxt=" as.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
ReDim index(totalnum) '定义枚举索引数组
createindex '建立索引
Else
Cmdtxt.Enabled = False '禁止Cmdtxt按钮
End If
End Sub
我们通过以上程序,可以得出哪些启示呢?
1.文件可分为文本文件(一般为顺序存取格式,本程序为cfanvb.txt)和随机存取文件(本程序为cfan
vb.db)。
2.随机存取文件由一些固定长度的记录组成,建立好索引后,能在不读入其他记录的情况下,直接跳到某一记录。
3.在文本文件中使用的语句:
(1)Open filename For output(append) As #numberoutput:创建一个新文件并准备写入数据;
append:打开一个已存在的文件并准备写入数据于文件的结尾。
(2)Print #number,[data1;data2;data3...]
它可将一个或多个没有分隔的字符串输出到指定文件#filenumber, “print #filename,”表示输出一空行。
(3)Write #number,data1,data2,data3...
它可将一行数据写入一个已经打开的文件,并提供“,”作间隔。
(4)Open filename For Input As #number
它为读数据而打开一个文件。
4.随机存取文件常用语句:
(1)Open filename For Random As #number Len=recordlength
以随机方式打开一既可以读又可以写的文件,其中recordlength为文件记录的字节数。
(2)Put #number,recordnumber,record(写入)
Get #number,recordnumber,record(读出)
其中,#number文件已经打开,"recordnumber指明要写入(或读出)的位置,record指那条记录。
本文介绍了处理数据的一些传统方法和基本知识,根据本程序的思路,你可制作出自己喜欢的小程序。

推荐给朋友 点 评( 0 ) 返回前页 关闭此页
   
  本类最热文章排名:
  1.制作VB安装程序问答(一)
2.做成一个时间限制的测试版
3.用VB创建Excel报表
4.自动装入注册设置
5.再谈VB程序的加密
6.自己编程模拟 MouseEnter,MouseExit 事件
7.自动卷动TextBox
8.制作VB安装程序问答(二)
9.VB编程的必备技巧
10.地大物博——谈谈在VB6.0中如何使用资...
   
   
  评论:
 
 
 

 

关于本站 版权声明 联系方法
编程无限 V4.1 Copyright © 1999-2008 21code.com

京ICP备05006938号