一个先进先出、限长数组的流水链表 RunnelList

在.NET中可以用 Queue 类型 来定义一个先进先出的无限制的数据链表,但Queue无法限制内部元素长度,它会在数据超过当前长度时自动增长,并且其内部可调用的方法也比较少,不够强大和灵活。

我写这个类型的目的除了补充Queue的缺陷之外,主要是为了限定数据的长度而设计的。

在某些坏境场景下,可能需要一个先进先出的缓存,或者如同一个流水线一般,较旧的数据需要随着时间的推移而舍去,腾出宝贵的内存空间用以存储新的数据,这时候,RunnelList就可以起到大作用了。

- 阅读全文 -

通过JS拦截 pushState 和 replaceState 事件

history.pushStatehistory.replaceState 可以在不刷新当前页面的情况下更改URL,但是这样就无法获取通过AJAX得到的新页面的内容了。
虽然各种HTML5文档说 window.onpopstate 事件可以拦截 pushState 的消息,但在实际的测试中, onpopstate 根本没有任何作用,无法拦截 pushState 的消息。

经过Google一番,才找到了正确获取 pushState 事件的代码

- 阅读全文 -

动态执行 VB.NET 和 C# 代码

有时候我们需要尝试动态地与一些代码进行交互,而不是只能执行程序内已编死的代码,那该怎么办呢?
我首先推荐各种脚本语言,如Javascript、Lua、Python等等,这些脚本语言有很多优秀的第三方类库,可以很方便的与 .NET 系统集成,让我们的程序中执行动态代码。

但如果你一定想用VB.NET或者C#的代码来运行一段程序,这里就要用到动态编译的功能了。

- 阅读全文 -

【VB.NET】一个全能的哈希校验类 ClsoHash

.NET 内置了许多校验算法,却唯独不支持CRC32。
然而某些程序所生成的校验码是CRC32(比如ZIP、RAR、7Z等压缩格式),所以我们仍需要使用CRC32来校验数据的完整性。

我所分享的这个哈希类不仅有CRC32算法,还拥有许多CRC变种算法,比如CRC64、StrangeCRC、Adler32等等……
当然,也集成了.net本身就拥有的校验算法,全部打包在了一起。
除此之外,我还添加了一些数据加盐、文本转换等实用功能,应该足够一般状况下来使用了。

详细代码如下:

- 阅读全文 -

【vb.net】动态加载内嵌类库文件的方法

有时候我们引用了一个小型的类库文件,但是如果发布程序,就需要带一个类库文件,感觉有点累赘,那该怎么办?
一些第三方的混淆工具自带类库集成,是一个不错的解决办法。
但是如果我只想使用自己的解决方法,那么可以尝试将类库文件以资源嵌入的方式,集成入程序集内!

- 阅读全文 -

用XPath查找HTML节点或元素

虽然JS与JQ都能很方便的查找包含了ID及类名的元素,但在某些情况下,我们需要查找一些不包含类名、ID的元素或节点,就需要用XPath来帮忙了。
XPath虽然是被设计用来搜寻XML文档的,不过它也能很好的在HTML文档中工作,并且大部分浏览器都支持通过XPath来查询节点。

- 阅读全文 -

【VB.NET】利用 LibWebP-NET 解码与编码 WebP 格式图片

WebP 格式是谷歌开发并发展的一种最新的网络图片格式,具有压缩率高、解码快、免版权、开源等优点。
大部分先进的网页浏览器、图片浏览器都支持该格式,Windows用户可以通过安装 WebP Codec for Windows 在系统中查阅WebP图片。

虽然 WebP 是开源格式,但目前 .NET 平台对 WebP 的支持并不好,只能依靠第三方的类库来加载 WebP 格式。
在这里我推荐 LibWebP-NET 这个开源类库,可以在 .NET 中对 WebP 图片进行解码和编码。

LibWebP-NET 只是简单的对于WebP的C++类库的一个.NET封包,其核心代码仍在 libwebp.dll 这个动态链接库文件中,因此不支持在普通的ASP.NET空间中运行。

并且因为动态链接库对于系统的限制,因此有x86和x64两个版本的C++类库文件,应用于不同的操作系统。
我个人推荐您在.NET工程属性的编译选项中,使用x86兼容模式,这样只需要附上x86版的 libwebp.dll 文件即可

下面的测试代码,为我修改版的 LibWebPNET 源码的类库文件,您可以 点击这里下载
我仅将其中快速编码和解码函数设置为静态方法(原版需要实例化相关的解码类,很繁琐)。
使用前,记得引用 Imazen.WebP.dll 类库,并将 libwebp.dll 动态链接库释放到主程序的运行目录

- 阅读全文 -

【VB.NET】利用SharpZipLib压缩与解压文件夹中的所有文件、内存中动态压缩解压数据、内存中压缩与解压文本

SharpZipLib是一个非常优秀的.NET环境下的ZIP文档压缩与解压组件,免费且开源(MIT授权)。

本篇文章介绍一下如何使用该组件压缩一个文件夹中的所有文件到ZIP文档、解压一个ZIP文档到文件夹,以及如何利用SharpZipLib在内存中动态的加解压数据。

先下载最新版的SharpZipLib https://github.com/icsharpcode/SharpZipLib

然后使用下面的代码:

- 阅读全文 -

【VB.NET】在Explorer中定位文件或文件夹

此代码可以让你在系统的资源管理器中定位一个文件或者是文件夹!

使用方法很简单

' 如果已经打开了目标文件的文件夹,此方法并不会再打开一个新的explorer管理器,而是在原有的资源管理器内直接定位文件!
SelectTargetFile.SelectFile("指定文件或者文件夹")

' 这个方法可以直接打开文件夹内部,而不是定位到该文件夹的父目录
SelectTargetFile.SelectFile("指定文件夹\一个不存在的文件.xxx")
完整代码如下:

- 阅读全文 -

將頁面轉換爲繁體

公告

欢迎您光临鄙人的小站,虽然没什么太专业的东西,不过如果本站的文章能让您有所收获、或者仅仅是博您一笑,那么也不枉费我建站的辛苦了!

您可以使用邮件订阅来获得邮件更新提醒。

瞎哔哔

    服务器后台更新,已使用了服务商内置的CDN,缓解最近老是断连的问题。
    不过因为后台机制变了,所以有可能出现SSL配置错误的问题,等我弄明白新后台的使用方法再说。
    希望以后不要再出幺蛾子了。 :doge:

  • 查看更多...

最新文章

随机文章

最近回复

分类

标签