VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - VB问题全功略(7)
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:10570, 日期:2002-01-26
VB问题全功略(7)

31、某一天的下 (上) 一个星期几是那一天?
32、移除字串中不要的字元
33、通往 Internet 的捷径---捷径档的结构
34、Bug:维护 Internet Transfer Control 之 Username 及 Password
35、我要如何在程序中开启网页?
31、某一天的下 (上) 一个星期几是那一天?

参数 : 您相信吗?这个模组的写法比用任何其他的方法快几十倍!参数如下:
1:以那一天为基准日?
2:(Optional) 要找的是星期几?若不指定,预设值为星期六
3:(Optional) 要往前 (过去) 找或往后 (未来) 找?
若不指定,预设值为往后 (未来) 找


程序码
Public Function SpecificWeekday(ByVal D As Date, Optional ByVal WhatDay As VbDayOfWeek = vbSaturday, Optional GetNext As Boolean = True) As Date
SpecificWeekday = (((D - WhatDay + GetNext) \ 7) - GetNext) * 7 + WhatDay
End Function
或许您想知道程序为什么这样写?

您知道吗?在 VB 中,其所有日期函数的基准日 (第0天) 是 1899年12月30日 (星期六),第一天就是 1899年12月31日 (星期日),所以 VB 的 WeekDay 函数算法其实就是 (Date - 1) Mod 7 + 1。

返回值
日期

实例 :
我想知道以下日子各是那一天?
上个星期一:SpecificWeekday(Now, vbMonday, False)
下个星期六:SpecificWeekday(Now)
2000年9月9日的下一个星期五:SpecificWeekday("09/09/2000", vbFriday)

32、移除字串中不要的字符

参数 : 1:要检查的字串 [准备移除其中某些字符]
2:要移除的字符 (数字/中英文)

程序码
Function StringCleaner(s As String, Search As String) As String
Dim i As Integer, res As String
res = s
Do While InStr(res, Search)
i = InStr(res, Search)
res = Left(res, i - 1) & Mid(res, i + 1)
Loop
StringCleaner = res
End Function

返回值 移除某些字符后的字串

实例 :
我想移除 Text1 中的字符 "A"
Text1 = StringCleaner(Text1, "A")

33、通往 Internet 的捷径---捷径档的结构

有些软件 Setup 完后, 会在程序集或桌面上产生一个 "捷径" (ShortCut), 直接一点就可以进到特定的网页, 用 VB 要如何做才可以做到? 难吗?

不难!! 其实只要稍为观查一下该捷径的档案内容, 就可以做到了.

捷径档的副档名是 .url, 当然, 如果您直接用记事本去开启 .url 档, 一定会很失望, 因为很多软件的捷径档, 都是存成 Binary 的档案 (不知是否故意的), 不过别担心, 那只是障眼法而已.

捷径档和 VB 的 .Frm 档一样, 不管是 AscII / Binary 都可以.我们自己要产生的, 只要做成一般文字档就可以了, 而捷径档的格式如下 :

[InternetShortcut]
URL=http://网址 (Internet/ Intranet 通用)

然后随便存一个档名, 例如 "润泰网站.url", 只要副档名是 .url 即可.
而且 Win95/Win98 很聪明, 会自动将副档名拿掉. 只 Show 出 "润泰网站"

很简单吧!!! 就算您的机器不能连上 Internet, 您也可以马上感受一下 Intranet 的功能.

[InternetShortcut]
URL=http://Intranet主机/目录

如果您连用 VB 写文字档都懒的话, 直接用记事本编辑也可以体验一下的 !!!

34、Bug:维护 Internet Transfer Control 之 Username 及 Password

由于 Bug,在使用 Internet Transfer Control 时,Username 及 Password 必须设定在 URL 之后,否则无效!以下的程序码是错的:

Inet1.Password = "Chicken_Feet"
Inet1.UserName = "JohnnyW"
Inet1.URL = FTP://ftp.32X.com
Inet1.Text = Inet1.OpenURL

但是如果改成以下之程序,将 URL 放到最前面,就可以正常执行:

Inet1.URL = FTP://ftp.32X.com
Inet1.Password = "Chicken_Feet"
Inet1.UserName = "JohnnyW"
Inet1.Text = Inet1.OpenURL

35、我要如何在程序中开启网页?

在声明区中声明如下 (在 .bas 档中用 Public, 在 Form 中用 Private)

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

在程序中

Intranet:
ShellExecute Me.hWnd, "open", "http://Intranet主机/目录", "", "", 5
Internet:
ShellExecute Me.hWnd, "open", "http://www.ruentex.com.tw", "", "", 5

很简单吧!!! 就算您的机器不能连上 Internet, 您也可以马上感受一下 Intranet 的功能.