博文
vb2005如何实现文件的压缩(2006-08-27 09:17:00)
摘要:GZipStream 类
注意:此类在 .NET Framework 2.0 版中是新增的。
提供用于压缩和解压缩流的方法和属性。
命名空间:System.IO.Compression
程序集:System(在 system.dll 中)
var ExpCollDivStr=ExpCollDivStr;
ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl027a78bf9,";
var ExpCollImgStr = ExpCollImgStr;
ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl02img,";
语法
Visual Basic(声明)Public Class GZipStream
Inherits Stream
Visual Basic(用法)Dim instance As GZipStream
C#public class GZipStream : Stream
C++public ref class GZipStream : public Stream
J#public class GZipStream extends Stream
JScriptpublic class GZipStream extends Stream
var ExpCollDivStr=ExpCollDivStr;
ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl09a6cc181,";
var ExpCollImgStr = ExpCollImgStr;
ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl09img,";
备注
此类表示 GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法。这种格式包括一个检测数据损坏的循环冗余校验值。GZip 数据格式使用的算法与 DeflateStream 类的算法相同,但它可以扩展以使用其他压缩格式。这种......
2006年最牛B的话(2006-08-26 20:47:00)
摘要:2006年最牛B的话
点击数:12 发布日期:2006-8-26 13:56:00
【评论】 【打印】 【编程爱好者论坛】 【关闭】
、床前明月光,疑是地上霜,举头望明月,我叫郭德纲。(郭德纲语录)
2、刑捕头叫:“放下臭豆腐!释放人质!举手投降!这是你们唯一的机会……(《武林外传》语录)
3、1644年6月6日,满族人攻入北京,为以后中国电视剧事业作出了杰出贡献。(一位上海诗人这样评价时下清剧的泛滥。)
4、我长得挺漂亮,又是单身,男人不可能对我没兴趣!别人不敢穿的我敢穿,别人不敢说的我敢说,别人不敢做的我敢做!我像一颗水蜜桃,而王家卫是榨汁机。(章子怡语录)
9、内事不决问老婆,外事不决问Google!(网友语录。何不问百度?我是先问百度,再问Google。)
10、针对日前中国联通推出的以周杰伦的爷爷做形象代言人,名为“孙子才玩动感地带”的活动,中国移动立即做出反应,他们声称已经签约姚明父亲,即将开展大规模宣传“儿子新时空,老子全球通”的口号。
而后,中国联通聘请82岁新婚的杨振宁教授为新形象代言人,宣传口号是:“我还能!”中国移动为了反击,立即请杨振宁的夫人翁帆为新形象代言人,宣传口号:“你不能,我能叫你能!~~~”(江湖传闻)
11、某大学校园铁栅栏都是带尖头的,其上面的警示牌标语如下:男生一不小心翻,就会变成女生……女生一不小心翻,就会变成女人……
12、女人读书不宜多,因为在男人心目中:大专生是小龙女,本科生是黄蓉,研究生是赵敏,博士生是李莫愁,博士后是灭绝师太,硕博连读更可怕——是传说中的“东方不败”!!!
男人读书不宜多,因为在女人心目中:大专生是韦小宝,本科生是段誉,研究生是丁典,博士生是陈家洛,博士后是欧阳峰,硕博连读呢——他就是可怕的“岳不群”了!!!
13、我们一家三口都在读MBA。(上海推出学费2年2......
动态加载类(2006-08-26 10:22:00)
摘要:动态加载类
Billy Hollis
2002年10月14日
从 MSDN Code Center 下载 VBNETDynamicForms.exe 示例文件(英文)。(请注意,在示例文件中,程序员的注释使用的是英文,本文中将其译为中文是为了便于读者进行理解。)
摘要:本月 Billy Hollis 对 Microsoft .NET 的扩展性进行了探讨,并说明了如何使用 System.Reflection 命名空间在 Visual Basic 应用程序中动态加载类。
理想情况下,编写软件系统之前我们就应该知道此软件系统需要完成哪些操作。但实际情况并非如此,因此我们的系统应该是可以调整的。
最能体现这种适应性的是动态集成新功能的能力。例如,在 Windows 窗体应用程序中,这种能力是指加载编译原始应用程序很久以后创建的窗体的能力。
这种操作在 Microsoft Visual Basic® 6.0 中几乎是不可能的,但是在 Visual Basic .NET 中却相当容易。利用 System.Reflection 命名空间的功能,程序只需知道程序集的位置即可请求动态加载该程序集。然后即可加载该程序集中的类并对类进行实例化。由于 Windows 窗体也是一种类,这就意味着可以动态地加载、显示和使用窗体,即使在编译原始程序时窗体并不存在。
典型的方案
假设我们有一个多文档界面 (MDI) 应用程序,需要具有将任意窗体加载为子窗体的能力。那么应用程序应该能够执行以下操作:
获取可以加载的窗体的列表,通常不在 .NET 配置文件中。
显示该列表并允许用户从中选择一个窗体。
实例化并显示用户选择的窗体。
让我们编写这样一个应用程序,看看如何完成动态加载。
步骤 1:创建项目和 MDI 窗体
启动一个新的 Windows 窗体项目。将其命名为 FormsOnTheFly。在新项目中包含的空窗体 Form1 中,将它的 IsMdiContainer 属性更改为 True。这样,该窗体即变成一个 MDI 父窗体。更改窗体的大小,使窗体的长和宽的尺寸大约为默认值的两倍。
将一个面板控件拖动到窗体上,然后设置它的 Dock 属性,使它靠接在窗体的顶部。更改面板的大小,使它的高度大约为 0.5 英寸。
将一个组合框拖......
在 VB.NET 中检索文件信息(2006-08-26 10:19:00)
摘要:在 VB.NET 中检索文件信息
Deborah L. Cooper
在本文中,Debbie Cooper 向您介绍了如何按照 Windows 在“属性”对话框中的显示方式检索有关文件的信息。您也许希望阅读(或再次阅读)Debbie 在 2002 年 12 月最新发表的“Monitoring Files the Easy Way Using VB.NET”文章。
您是否曾经希望了解如何检索要在您自己的应用程序中使用的特定文件的属性?如果您要在 VB.NET 中开发的应用程序依赖于特定的环境,那么在执行程序中的代码之前,您需要检查文件的属性。例如,您可能需要了解特定文件随之发行的产品,或者是文件的版本号。在 VB.NET 中,借助 GetVersionInfo 方法和 FileVersionInfo 类,要获得这些信息简直易如反掌。
如果启动 Windows 资源管理器,右击一个文件名,然后从弹出式菜单中选择“属性”,则会看到该文件的“属性”窗口。“属性”窗口显示了选定文件的有关信息。假设您在任务管理器的 TASKMAN.EXE 文件名上右击。图 1 显示了该文件的“属性”对话框。
通过使用 FileVersionInfo 类,您可以在 VB.NET 应用程序中提供相同的功能。根据应用程序的需要,您可以复制“属性”对话框中显示的全部信息,也可以复制其中的一部分。图 2 显示了我们将要创建的应用程序,它将用来复制“属性”对话框中显示的部分信息。
要创建演示程序,请启动 VB.NET,并开始一个名为 Retrieving File Properties(检索文件属性)的新项目。按照图 2 所示,向 Form1 添加七个文本框控件、七个标签控件和一个按钮控件。接下来,将以下代码添加到 Get Properties(获取属性)按钮的 Click 事件:Private Sub Button1_Click(ByVal sender _
As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
' 获取记事本的文件版本
Dim FileProperties As FileVersionInfo =
FileVersionInfo.GetVersionInfo("C:\WINN......
用Visual Basic.NET编写扑克牌游戏(1)(2006-08-26 09:44:00)
摘要:扑克游戏林林总总,同一种游戏各地玩法亦不尽相同。编程爱好者多喜欢编写一些本地玩法的扑克游戏。那么,编写自己的扑克游戏该从何处入手呢?
扑克游戏编程关键有两点:一是扑克牌面的绘制;二是扑克游戏规则的算法实现。初学扑克游戏编程的爱好者可从一些简单的游戏、借用一些现有资源开始。本文拟借用Windows自带的Cards.dll和简单的21点游戏为例,介绍扑克游戏编程的初步方法。
一、 扑克牌面绘制
Cards.dll支持Windows自带的游戏,如Solitaire(纸牌游戏)。如果我们知道如何使用Cards.dll中的API函数,那么,我们就能像Windows自带的游戏一样绘制扑克牌面。我们需要使用其中三个基本函数:cdtInit, cdtDrawExt,和 cdtTerm。并且需要两个变量:width和height用于初始化函数cdtInit进行初始化。下面给出这些接口函数的声明及参数说明。
Private width As Integer = 0
Private height As Integer = 0
Declare Function cdtInit Lib "cards.dll" (ByRef width As Integer, _
ByRef height As Integer) As Boolean
参数说明:width,height返回牌默认宽和高,单位为pixels。
Declare Function cdtDrawExt Lib "cards.dll" (ByVal hdc As IntPtr, _
ByVal x As Integer, ByVal y As Integer, ByVal dx As Integer, _
ByVal dy As Integer, ByVal card As Integer, _
ByVal mode As Integer, ByVal color As Long) As Boolean
参数说明:hdc(handle to a device context)句柄;
x,y指定牌左上角坐标位;
dx,d......
P2P的简单示例:VB.net版(2006-08-26 09:41:00)
摘要:这是用VB.net实现的一个简单的P2P示例.利用了UDP打洞技术.分服务器端跟客户端.服务器端负责登陆记录用户的IP和端口及转发打洞消息.(相关技术在CSDN搜一下.有很多的.).原理到处都有,这里就没有贴出来.这里贴出了VB.net的代码.供初学者交流.也欢迎高手点评...
服务器端在启动成功后.输入help可以查看到服务器相关命令.
客户端在登陆成功后.输入help可以查看客户端相关命令.(登陆时用户名随便.)
以下是服务器端:
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Imports System.Threading
Imports System.Collections
Module myUDPServer
#Region "全局变量"
Dim ServerSocket As New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
Dim ipep As IPEndPoint = New IPEndPoint(IPAddress.Any, 11000)
Dim htUserList As New Hashtable '用来保存在线用户和用户的"IP和端口"
Dim userName(0) As String
Dim userIPEP(0) As IPEndPoint
Dim userTime(0) As Integer
Dim timerDelegate As New TimerCallback(AddressOf onLineTimeOut)
#End Region
#Region "参数"
'以下是客户端到服务器端的消息开头
Const LOGININ As String = "10" '请求登陆的消息|||消息形式:10 自己的用户名
Const LOGINOUT As String = "11"......
用VB2005构建反应灵敏的应用程序(多线程)(2006-08-26 09:33:00)
摘要:前言
Visual Basic .NET中最突出的特色之一就是构造多线程应用程序。但由于多线程应用程序天然的复杂性及挑战性,使许多VB开发人员没有充分利用这一新提供的功能。
在了解Visual Basic 2005创建多线程应用程序是多么容易以前,让我们看一看通常程序开发人员所遇到的挑战:长时间运行的任务在执行过程中经常限制了用户的输入或使用户无法与操作系统进行交互。
一、长时间运行的任务实例
在这个实例中,我们将对一个规定的整数计算斐波纳契数列(每个数等与数列前两个数之和)。也许这个例子对开发人员开发应用程序来说用处不大,但它的确是一个非常合适的例子,它不需要开发人员具备数据库或是其他一些必须得知识。你想象的应用程序中的长时间运行的任务类型可能是耗时的数据库操作、遗传系统调用、外部服务调用或是其他的一些深层次的资源操作。
为了创建这个项目,首先创建一个窗体应用程序,它带有一个进度条、两个按钮、一个数字输入框和一个显示结果的标签。两个按钮分别命名为startSyncButton 和cancelSyncButton,将标签的text属性设置为no result。对窗体上的各个控件进行仔细布局调整以后,界面效果如下:
图一、创建一个新的窗体应用程序
在这个窗体中添加以下代码计算斐波纳契数列。
Function ComputeFibonacci(ByVal n As Integer) As Long
’ The parameter n must be >= 0 and <= 91.
’ Fib(n), with n > 91, overflows a long.
If n < 0 OrElse n > 91 Then
Throw New ArgumentException( "value must be >= 0 and <= 91", "n")
End If
Dim result As Long = 0
If n < 2 Then
result = 1
Else
resu......
在VB 2005中定制自己的异常(2006-08-26 09:29:00)
摘要: 提要 本文在简要分析VB 2005所提供的异常处理机制的同时,详细讨论如何用它所提供的异常类定制自己的异常。
结构化异常处理是随着.net的第一个版本的发行而加入到Visual Basic语言中的。结构化异常处理的重要性基于下面两个原因:
1. 与以前的On Error Goto...语句相比而言,通过使用一种与该语言其它部分更适应的语法从而使得代码更具有可读性。
2. 比以前的On Error Goto...语句功能更强,而且提供了更为灵活性的控制能力。
一、 捕获并抛出异常
异常处理是用Try...Catch...Finally...End Try语句实现的,其基本语法形式如下:
Try
'能够引发一个异常的代码
Catch
'处理异常的代码
Finally
'实现清理工作的代码(如关闭数据库连接,等等)
End Try
Try和End Try语句都是必需的。Catch和Finally语句可以共同使用于一个Try块中,但是至少使用其中之一。而且,可以使用多个Catch语句来处理不同类型的异常。如果你有多个Catch块,可以对它们加以排序:从最具体的异常类型到最粗略的异常类型:
Try
'能够引发一个异常的代码
Catch ex As ArgumentOutOfRangeException
'有可能使用一个缺省值来处理一个无效参数以便使代码继续执行
Catch ex As Exception
'处理任何其它类型的异常
Finally
'实现清理工作的代码(如关闭数据库连接,等等)
End Try
你也可以在你的代码中抛出异常。当你在代码中执行一些清理工作时,捕获并抛出异常是很有用的-这样以来,一个更高层级的过程可以捕获它。当你创建定制异常类型时,抛出异常也很有用。
为了抛出一个异常,你可以编写如下形式的代码:
Throw New ArgumentOutOfRangeException
......
VB2005中开发新一代控制台应用程序(2006-08-26 09:26:00)
摘要:计算机用户经常把控制台应用程序作为一种“遗物”来看待,但是它们仍然还作为系统管理员的非常喜欢的一部分,而且还是高手用户的“工具箱”之一。另外,当你需要大量重复的脚本操作,当然还有可能的更复杂的操作时都会用到这种控制台应用程序。
在Visual Basic的早期版本中基本没有为创建控制台应用程序提供多大支持。而且,尽管VB 6及其早期版本能够创建控制台应用程序;但是,这不是一种简单的或直接的过程。在VB 6中创建一个控制台应用程序必须进行Win32 API调用;即使如此,你也不能控制光标位置或文本的颜色,而且在很大程度上仅能被限制进行从左到右和从上到下的编码。
如今,VB.net引入了新的控制台应用程序特征。它不仅在“New Project...”对话框中提供一种控制台应用程序工程,而且最重要的是,它还提供了一个控制台(Console)对象。因此,你不必再“困扰”于 Win32 API了。然而,你还是被限于“从左到右和从上到下”的编码。但是,VB.net仍然缺乏用于改变光标或文本的位置或颜色的方法或属性,还有其它许多更高级的特征。
一、 在VB 2005中的新型控制台应用程序特征
基于早期VB.NET版本中所提供的Console对象,如今的VB 2005又为控制台应用程序增加了许多优秀的特征。下面列出的仅是VB 2005中更为激动人心的功能中的一部分:
· 清除控制台窗口
· 得到并设定光标位置和大小
· 得到并设定窗口高度和宽度
· 得到并设定前景和背景颜色
· 选择并在控制台窗口内移动部分文本
本文中的其它部分将详细地分析一个控制台应用程序的创建过程,以便展示上面这些特征的使用。
二、 实例应用程序—DirCopy
我经常从控制台窗口中实现把文件从一个目录复制到另一个目录。当我复制一个含有大量文件的目录时,我经常希望得到一些提示—复制进程完成的怎么样了?复制快结束了还是再等待一会?为了实现这一问题,我构建了一个控制台应用程序,它能够在控制台窗口内显示一个进度条来以图形化显示复制进度。
三、 定义功能
......
女人一生最温馨的片段 (2006-08-26 09:17:00)
摘要:]
5岁时,看到了新搬来的你,从那天起,我的身后多了一个小跟班,瘦小的你,在我的保护下才可以茁壮的成长,为此,每到中秋你都会自动献上可口的月饼……
10岁时,因为贪玩,我和月季有了第一次亲密接触,那天,陪伴我的除了眼泪,还有你。因为不想走路,你把我背回了家,忽然发现,你已经和我一样高了 ……
19岁,你要去另一个城市读书,我看着已经比我高很多的你,忽然觉得心里少了什么,你走过来说道:“要是有人欺负我,会在第一时间报告首长的。”听后,我笑了……
21岁,在来信中说有了女友,想留在有她的城市不回来了,听后,我冲动的去了你那里,在看到你得意的笑脸时,明白了一切,那天,你把我拥在怀里 ……
23岁,在闲聊时,你说自己的好友要结婚了,我笑着对你说,报纸上说23岁结婚的离婚率是最高的,你瞪了我一眼,那天我知道了什么是眼光可以杀死人 ……
25岁,在我生曰那天,你拿出了一个很小的盒子,将里面的环壮物套在了我的手指上,你说:“我不承诺永远爱你,但此刻我是真的爱你。”我的眼睛湿了,从包里掏出买了3年的戒指套在你的手指上……
30岁,外面下着雨,我没有带伞,走出去时看到了站在雨中的你,那一刻,我觉得自己是最幸福的 ……
35岁,那天儿子问我,他是怎么来的。我看了看身边的你,然后对他说,“因为爸爸和妈妈相爱了,所以就有了你。”儿子似懂非懂的走开了,你将我搂近怀里 ……
41岁,在一个周曰的晚上,打开收音机,耳边忽然传来杨晨的声音,我们坐下来静静的听,虽然内容听起来过于稚嫩,感觉却很熟悉,记忆又回到了过去,仿佛又看到了曾经的小跟班,那天我说爱你,你说你也是 ……
50岁,看到儿子和他的小女朋友在逛街,你说:“看来我们是老了。”用力的打了下你的肚子,你很夸张的蹦了起来,我说:“运动神经还算发达,我们都还年轻” ……
55岁,退休后的生活还算惬意,在菜市场、公园、马路、胡同里总能看到相互搀扶的两个人,那就是你和我 ……
65岁,孙女将电视的声音调的很大,忽然听到里面的小伙子说,要送给我们一首歌,原来那天是我们的结婚纪念曰,我什么都没说,只是握住了你略微颤动的手 …… <......