随笔分类 - [01-2].NET-C#
摘要:呵呵,由于正则不熟,所以另谋出路——利用XML去解析html。要想将抓取到的数据(直接抓取到的是byte[]) 转为XML文档(即XMLDocument对象),有两个要点:一、判断编码(http头 charset 在某些网站上是不准确的)我利用的是 第三方的一开源项目去判断编码的,效果还不错:链接。二、将html转为XHTML我利用的是 : SgmlReaderDll.dll ,微软提供的,虽然不是100%的准确,但是足以满足 轻量级的商业需求 。核心代码如下: public class XHtmlTools { private const string RegBod...
阅读全文
摘要:刚刚转载了一篇文章 《c#万能视频播放器》 http://www.cnblogs.com/08shiyan/archive/2013/05/22/3092627.html 它用的是 VLC Media Player ,是一开源播放器, 主页: http://www.videolan.org/ 开发者
阅读全文
摘要:c#万能视频播放器(附代码)c#万能视频播放器 本人之前很多的文章中均提到了使用libvlc为播放器内核制作的播放器,也许有些朋友对此感兴趣,于是我用c#写了一个调用libvlc api实现的万能视频播放器,与大家分享一下。说它“万能”,当然是因为我们站在了vlc的肩膀上。 vlc是一个强大而且开源的多媒体播放器,也可以说是一个多媒体平台。它支持非常广泛的媒体格式的本地播放,完全可以媲美mplayer,其对视频网络流的处理能力更是非常强悍。libvlc就是指的vlc的核心,它向外提供了一系列的接口,通过接口,来实现视频播放等复杂的功能。libvlc对外提供了c语言的接口,也有其他语言,包括..
阅读全文
摘要:使用FtpWebRequesthttp://www.codeproject.com/Tips/443588/Simple-Csharp-FTP-Class使用 Sockethttp://www.codeproject.com/Articles/3872/FTP-client-library-for-C
阅读全文
摘要:XPath 和 jQuery所支持的选择器有一定的相似之处,借助jQuery所支持的选择器去理解XPath会更容易一些。选取节点XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。下面列出了最有用的路径表达式:表达式描述nodename选取此节点的所有子节点。/从根节点选取。//从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。.选取当前节点。..选取当前节点的父节点。@选取属性。实例在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:路径表达式结果bookstore选取 bookstore 元素的所有子节点。/bookstore选
阅读全文
摘要:在C#中,当使用带有BOM头的UTF-8编码的字符串时,一定要注意。1)如果该字符串用作路径,用来寻址。一定会出错。2)转换格式时,也很容易出错。例如字符串转int就一定会出错。待续… ————————————————————————————————————————————————————————————————————————————————————————————————什么是BOM?BOM: Byte Order MarkUTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支持UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器
阅读全文
摘要:C# 文本文件 ANSI编码格式 转 UTF8如果用 Encoding.Convert()把ANSI格式的字节数组转成 UTF8格式的字节数组,然后用FileStream 去wirte字节数组,其结果为丢BOM,即保存为 UTF8 without BOM。解决方法,用 StreamWriter,直接wirte string 即可。 using (StreamWriter fs = new StreamWriter(tmpPath + "info.txt", false, Encoding.UTF8)) ...
阅读全文
摘要:Encoding.Convert(Encoding.Default,Encoding.UTF8, ansiBuffer);
阅读全文
摘要:1、如果在 DataGirdView(DGV)的 CellEndEdit事件里触发单元格的编辑操作,常常会引发出乎意料的异常。2、DataGrivdView中的单元格有 CellValidating,如果在CellValidating事件未通过的情况下(即,其EventArgs.Cancel属性设置为true),使焦点强制离开了单元格则焦点再次回到单元格时也会引发异常。【当然这个描述只是一个现象,并不是本质,本质具体是什么原因暂时不详】 【使焦点强制离开的单元格的情况如:强制弹出了模式对话框,待对话框关闭时会引发异常。】DataGridView无论是事件,还是属性,设置操作方法 都有很多,确实
阅读全文
摘要:编码、乱码一直算是一大问题,是几乎不能精确识别的。在这里有一开源项目,可用来检测编码,识别率还算可观。http://code.google.com/p/nuniversalchardet/有编码识别方面需求的朋友可以试试。如果code.google.com 不可以访问,这里也有源码。http://files.cnblogs.com/08shiyan/UniversalCharDet.rar
阅读全文
摘要:时候我们需要在内存中转换Image格式到Icon 根据经验,通常我们应该可以这样做 Image image = xxxx;///假设这里已经有一个Image对象 System.IO.MemoryStream mStream = new System.IO.MemoryStream();///创建内存流 image.Save(mStream, System.Drawing.Imaging.ImageFormat.Icon); Icon icon = Icon.FromHandle(new Bitmap(mStream).GetHicon()); mStream.Close(); 但这里在imag
阅读全文
摘要:铁血规则:事件预订与取消预订 在编码的时候,我们经常预订某个事件来处理它,但很少取消事件的预订,这种做法可能导致程序在运行时出现一些异常。 如果你的某个用于处理事件的对象不是在运行期内永久存在的(比如,不是Singleton对象),那么请记住一条规则:在该对象(事件预订者)的生命周期中只要预订了其他对象(事件发布者)的事件,那么在该对象释放时,一定要取消这些事件的预订。否则,在预订者被释放后,发布者仍然保持着预订者的引用,在对应的事件被触发时,发布者仍然会持有预订者的引用(导致内存泄露),并且调用预订者的处理函数,而由于预订者已经被释放,所以可能引发莫名其妙的问题。(这条规则很早就总结出来了.
阅读全文
摘要:C#设置系统日期和时间的代码分享,使用C#代码设置系统日期和时间的程序开发步骤如下:(1)为了使用DllImportAttribute类,需要引入命名空间:using System.Runtime.InteropServices;(2)自定义类SetSystemDateTime用于设置系统时间。代码如下: public class SetSystemDateTime { [DllImportAttribute( "Kernel32.dll" )] public static extern void GetLocalTime(SystemT...
阅读全文
摘要:在单元测试中出现了这个异常,原因是:由于在测试项目中没有添加配置文件(只有前台网站项目中添加了 web.config)//通过配置文件获取连接字符串public static readonly string ConnectionStringLocalTransaction = Configurati...
阅读全文
摘要:引用 Microsoft.Win32;private void button1_Click(object sender, EventArgs e) { Microsoft.Win32.RegistryKey _Key = Microsoft.Win32.Registry.CurrentUser; _Key = _Key.OpenSubKey("SoftWare"); _Key = _Key.OpenSubKey("Microsoft"); _Key = _Key.OpenSubKey("Windows"); _Key = _Key.O
阅读全文
摘要:在winform开发中,通过设置Panel的AutoScroll属性来控制滚动条是否显示,但显示滚动条的时候,鼠标的滚轮是无法控制Panel里面的滚动条的,只能控制Form的滚动条,当我们需要控制Panel的滚动条的时候,应该怎么做呢?1、拖一个Panel到Form里面,修改Name为panel_content,并设置AutoScroll为True2、在Form的Load事件中添加下面的代码 this.MouseWheel += FormSample_MouseWheel;3、在Form类中添加FormSample_MouseWheel方法View Code1///<summary>
阅读全文
摘要:一般来说一个 HTML 文档有很多标签,比如“<html>”、“<body>”、“<table>”等,想把文档中的 img 标签提取出来并不是一件容易的事。由于 img 标签样式变化多端,使提取的时候用程序寻找并不容易。于是想要寻找它们就必须写一个非常健全的正则表达式,不然有可能会找得不全,或者找出来的不是正确的 img 标签。 我们可以从 HTML 标签的格式去想应该怎么建这个正则表达式。首先要想一下 img 标签有几种写法,忽略大小写不看的话,下面列出 img 标签可能出现的几种情况。 <img> <img/> <img s
阅读全文
摘要:class Class1 { /// <summary> /// 去除HTML标记 /// </summary> /// <param name="strHtml">包括HTML的源码 </param> /// <returns>已经去除后的文字</returns> public static string StripHTML(string strHtml) { string[] aryReg ={ @"<script[^>]*?>.*?</scr...
阅读全文
摘要:A 什么是全角和半角? (1)全角--指一个字符占用两个标准字符位置。 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。一般的系统命令是不用全角字符的,只是在作文字处理时才会使用全角字符。(2)半角--指一字符占用一个标准的字符位置。 通常的英文字母、数字键、符号键都是半角的,半角的显示内码都是一个字节。在系统内部,以上三种字符是作为基本代码处理的,所以用户输入命令和参数时一般都使用半角。B 全角与半角各在什么情况下使用? 全角占两个字节,半角占一个字节。 半角全角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节,而不管是半角还是全角,汉字
阅读全文