Monthly Archives: June 2010

VB6程序的自动更新模块

这个是VB6编写程序时常常碰到的问题:想实现像瑞星那样自动连接到网络下载更新程序,然后再在本地实现更新的功能.这里会遇到三个问题:
1.是版本的控制.假如从1.1到1.2只更新了几个文件,1.2到1.3又更新了另外几个文件,假如用户错过了1.1版的更新,那么这个1.3版的升级包应该不仅适合于1.2,并且也应该适合1.1才行.但是假如1.2-1.3升级包特别小,而1.1-1.2升级包特别大的话那么1.2版升级的用户就不需要下载非常大的升级包才行.以后的每个版本升级都要照顾到1.1版的升级才行.所以,简单的办法是对需要有可能升级的所有文件进行版本控制.每个文件对应一个版本号.当某个文件版本号低于服务器上文件的版本号时就进行升级的操作.
2.是更新程序自身的更新.像瑞星之类的软件都能实现对更新程序自身的更新.而对正在运行的一个exe文件进行读写在VB6里是不太容易实现的.这里可以采取”曲线救国”的道路:程序一运行先将自身拷贝一份并改名为temp.exe.然后运行这个temp.exe来进行连接服务器下载更新文件的操作.
3.是目录的检测.假如更新文件放在新建的文件夹里那么程序应当可以新建文件夹(多级).我是从www.planet-source-code.com找到的一个创建多级目录的函数:-)
其他还有一些比如:检测正在运行的主程序,关闭主程序等操作直接调用相应的API即可实现.
本模块升级服务器采用的是FTP,可以用进度条来显示下载文件个数和单个文件下载进度.

猛击这里下载

计算机图形学算法演示程序[C#]

演示了:
画直线的 DDA法,中点画线法,Bresenham算法
画圆的 中点画线法
多边形的 扫描线算法,区域填充扫描线算法
线段裁剪的 Cohen-Sutherland算法,中点分割算法,粱友栋-Barskey算法
Beizer曲线的 定义画法和递推画法

使用语言:C#
平台:.net 1.1
开发工具:Visual Studio .net 2003
大小:129KB
参考书籍:《计算机图形学基础教程》孙家广 胡事民 著 清华大学出版社

先配置方程,再画图
画线时可以不用多线程,若是选择了延时请务必把多线程也选上,多线程只适用演示区域填充扫描线算法时如果选择了延时,那么在把整个图形画出来时可能会碰到假死现象
Beizer曲线演示时需要把”辅助线”的”放大倍数”设小一点,当”放大倍数”小于5时,辅助线就不会被画到界面上了,这样才能看出曲线是否光滑
边界设置 如果没有需要不要修改,如果设置可以这样: 400,300 分别对应宽度,高度
原点设置 这个跟 边界设置 类似: 400,300 要是所演示图形一次屏幕没有显示完整,可以适当调整原点位置以显示完整

猛击这里下载

银行家算法C#

操作系统课程设计,找安全序列的,论文丢失,只剩下程序了,大部分都有注释,自己看吧。

这个可以兼容N个资源的,同时兼容两种矩阵:最大需求矩阵和需求矩阵。注意输入格式。

题目要求找到所有安全序列,所以只能用全排列来找了。关于全排列算法网上挺多的,我也是随便找的。

猛击这里下载

LL(1)文法判定[C#代码下载]

这个是大二时候的编译原理课程设计作业。用C#实现。参考书籍:《编译原理》 张素琴 吕映之 蒋维杜 戴桂兰 著 清华大学出版社 2005年2月 第2版。

先后计算First集,Follow集和Sellect集,然后判断是否是LL(1)文法,最后判断句子。生成结果界面很Cool

运行时注意先加载或编辑符号集,然后加载或编辑产生式集,最后才输入测试句子进行测试。

SimpleLL1目录下为源程序
EXE目录下为编译好的可执行文件
Product1.txt~Product4.txt为测试用产生式(可直接在程序中加载)
Symbols.txt为测试用符号集(可直接在程序中加载)

转载或引用请注明出处:www.shootsoft.net

猛击这里下载

[下载]Html/URL编码解码器 1.0(C#)

假如你经常处理html和xml文件,你会发现假如把一个完整的html文件存储到xml的一个属性中,系统会自动处理像<,>等特殊字符成&lt;  &gt;。有时需要手动处理一些,那么手头没有相应的工具是烦人的一件事,其实.net里面自带了这里处理的方法,只需调用即可实现。同样情况的还有URL编码。
我这里调用.net自带函数编写了这样一个小工具实现了编码和解码。欢迎使用:-)

Html/Url Encode & Decode

猛击这里下载