精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● 编程世界>>VB编程>>VB邮件(7.6)

主题:VB邮件(7.6)
发信人: msnet()
整理人: jinhu(1999-07-13 10:37:18), 站内信件
                      编者的话
====================================================================
大家好!
    欢迎大家回答问题和提出问题,同时也欢迎大家
提供有关VB和VBA和ASP的好作品。
                                版主   冯德平
                                [email protected]
=============================================
                      目  录
a 测测你的智商
b 菜单项的动态装入
c 不用 DATA 控件操作数据库文件
=============================================
                     VB邮件(7.6)
a 测测你的智商 
 
不久前,看到过一个有趣的小程序,这程序是测测你的智商,不过这个应用程序
是DOS下的。想了想:能不能编成WINDOWS下的应用程序呢?于是,用VB把这个小
程序编成了WINDOWS下的应用程序。
这个应用程序的大概意思是:先产生一个四位数的随机数,每一位为0—9中的一
个数字,且各位上的数不重复,让你猜这个数。在文本框中输入这个数,按下确
定按钮后,首先提示你有X个数字值对且位置对,有Y个数值对,但位置不对。根
据系统提示最终可猜出计算机开头产生的随机数。如果你8次还没有猜到,计算机
会告诉你正确答案。

建立应用程序的步骤:

(1)、新建一个工程,用标准窗体。

(2)、加入3个命令按钮和一个文本框。(图象:image.jpg)

(3)、主要属性如下:

  Name Caption Text MaxButton MaxLenght
 
标准窗体 frmChest 测测你的智商   False
   
命令按钮1 产  cmdProRan 产生随机数       
命令按钮2  cmdOk  确定       
命令按钮3  cmdExit 退出       
标签 lblPro 请输入随机数       
文本框  txtEdit        4 

 

窗体声明:

Option Explicit

Dim a , b , c , d As Integer 

Dim aa ,bb,cc,dd As String

Dim a1,b1 As Integer

Dim i As Integer

命令按钮1的代码(代码过长用____连接):

Private Sub cmdProRan _Click ()

cmdOk.Caption= “确定”

i = 0

a = Int (Ran*9 + 1)

Do While True

b = Int ( Ran*9 +1 )

b = b + 5

If b >= 10 Then

b = b-10

End If

If a <> b Then

Exit Do 

End If

Loop

Do While True

c = Int ( Ran*9 +1 )

c = c + 8

If c >= 10 Then

c = c-10

End If

If a <> c And b <> c Then

Exit Do 

End If

Loop

Do While True

d =Int ( Ran*9 +1 )

d = d+3

If d >= 10 Then

d= d-10

End If

If a <> d And b <> d And c <> d Then

Exit Do 

End If

Loop

End Sub

命令按钮2的代码:

Private Sub cmdOk _Click ()

Dim Wrong

a1=0

b1=0

Wrong:

aa = Mid (txtEdit.Text ,1,1 )

bb = Mid (txtEdit.Text ,2,1 )

cc = Mid (txtEdit.Text ,3,1 )

dd = Mid (txtEdit.Text ,4,1 )

If aa = bb And aa = cc And aa = dd And bb = cc And bb = dd And ____

cc = dd Then 

Goto Wrong:

End If

If a = Val (aa) Then 

a1= a1 + 1

Else 

If a = Val (bb) Or a = Val (cc) Or a = Val(dd) Then 

b1=b1+1

End If

End If 

If b = Val (bb) Then 

a1= a1 + 1

Else 

If b = Val (aa) Or b = Val (cc) Or b = Val(dd) Then 

b1=b1+1

End If

End If 

If c = Val (c) Then 

a1= a1 + 1

Else 

If c = Val (bb) Or c= Val (aa) Or c = Val(dd) Then 

b1=b1+1

End If

End If 

i = i+1

If a1 = 4 Then

MsgBox “恭喜!你的智商很高”,, “恭喜”

End If

If i = 8 Then 

Dim Info

Info = Ltrim(Str(a))+Ltrim(Str(b))+Ltrim(Str(c))+Ltrim(Str(d))

cmdOk.Caption = “请单击产生随机数按钮”

MsgBox “对不起,你的智商……”

MsgBox “正确答案是:“ +Info,, “正确答案”

End If

End Sub

以上程序在VB5测试成功. 

学习点滴:在学习计算机语言时,能多看一些语言,这对我们的学习是有很大的
帮助。在这点我有深刻的体会。 你也能这样,那你的编程水平就景上添花了,能
编出更高有水准的应用程序. 
 

 
b 菜单项的动态装入

    菜单项的动态装入是指菜单项的个数不固定. 例子就是文件菜单中最近打开
的文件的列表。在第一次打开文件之前,该列表是空的,并且不在文件菜单中出现
;打开一个文件后,该列表不再是空的,并且文件菜单中出现代表被打开文件的菜单
项。 

    具体的实现过程如下: 

    在文件菜单里增加一个菜单项,标题任意,并假设菜单项的Name属性是opened
_files_ list; 

    更改菜单项opened_files_list的可见属性,使 opened_files_list.Visible
=False 

    更改菜单项opened_files_list的下标属性,使 opened_files_list.Index=0
 

    在程序中控制菜单项opened_files_list的动态装入。 

    假设要显示打开过的第二个文件的文件名,并且该文件名存放在一个文件名数
组opened _file_name里。以下的代码就实现了这一功能: 

 

Load opened_files_list(1) 

opened_files_list(1).Caption="&2"+opened_file_name(1) 

opened_files_list(1).Visible=True 

 

    需要注意的是,对于下标为0的菜单项,不能用Load方法。因为在程序执行时,
该菜单项就 已经被装入到内存里了;另外,在菜单项的标题属性字符里的"&"字符
具有特殊的含义,它的作 用是在显示该属性字符串的同时,并不显示"&"本身,而紧
跟"&"的字符在显示时具有下划线, 并且该字符成为热键。 

    如果下标不为0的菜单项不再需要,为了减少对内存资源的占用,可以用Unloa
d方法把它 从内存卸出;同样地,不能用Unload卸出下标为0的菜单项。




c 不用 DATA 控件操作数据库文件



    大家知道,在 VB 中如果使用 DATA 控件访问数据库,那么程序执行就必须
要一些大型 DLL 支持。这对于安装盘的发放是一个大问题。那么,在 VB 中能不
能不用 DATA 控件访问数据库呢? 

    在 VB 中不用 DATA 控件而访问数据库,只有一法:将数据库文件当成2进制
文件打开。但此法最大困难就是你必须了解数据库文件的结构形式。 

    比如:FoxBase的DBF文件(我不了解其它数据库的文件结构,大家可以去查
查):它由记录头和记录构成。而记录头又由两部分构成:记录头=数据库说明+
字段说明。下面列出 FoxBase 数据库说明: FoxBase 数据库说明 起始地址 字
节数 含义 

1 1 FoxBase 数据库文件标志 

2-4 3 最后一次修改日期,3个字节分别为年、月、日 

5-8 4 文件记录总数 

9-10 2 记录头长度 

11-12 2 每个记录长度 

13-22 20 未使用 

 

下面列出字段说明,每个字段由 32 个字节构成。

 

字段说明 起始地址 字节数 含义 

1-11 11 字段名称 

12 1 字段类型(分别为C、N、D、L等) 

13-16 4 该字段在文件中地址 

17 1 字段长度 

18 1 小数位数 

19-32 14 未使用 

知道了字段信息说明,就可以使用 复合变量 + 2进制文件 来操作数据库了。 


=============================================
                     VB问答
问题部分:
回答部分:
=============================================
                     其  它
====================================================================
欢迎订阅VB免费邮件:
订阅地址  http://server.com/WebApps/mail-list-subscribe.cgi?id=16852  

====================================================================  

如果您觉得这个邮件列表好的话,请告诉您的朋友。  
====================================================================
欢迎投稿  [email protected]  
====================================================================  

网易上的主页地址:http://www4.netease.com/~aaaaaaaaa 
本网站主页镜像地址:goodvbhome.yeah.net
广东视灵通:http://personal.gz168.gnet.gd.cn/vbok/
====================================================================

--
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.47.196]

[关闭][返回]