posts - 115,  comments - 184,  trackbacks - 5
  2011年12月15日

我简直不敢相信这是真的。

XDocument类的Load方法利用XmlReader类读取一个模板XML文件,然后进行各种节点的增加操作最后利用Save方法存到文件去。结果发现输出的XML并没有很好的格式化,所有元素堆在一行上,各层节点之间没有换行。用尽了办法也没有发现为什么,把网络翻了个底朝天,结果一样,默认情况下,XDocument的Save方法会输出经过良好格式化的文本。但是为啥我这里就是不行呢?最后竟然发现,因为我用XmlReader作为XDocument加载原始数据的方法导致的,不要用XmlReader,换个比如StreamReader就可以了。神啊,怎么会这样?

posted @ 2011-12-15 15:19 零度的火 阅读(7) 评论(0) 编辑
  2011年11月20日

整理照片是个麻烦事情。这几天有一批照片需要整理。需要按照拍摄日期进行重命名。经过文件复制之后,文件本身的日期早已面目全非,但是现在的相机的好处是会自动记录照片的很多独立的详细信息,比如照片的拍摄日期。那么怎么才能取到这些信息呢?一番查找,知道这些信息好像是叫做“EXIF”的格式信息。这个网站有它们的详细说明,基本上,每项信息包括ID,数值以及类型和长度等信息。这里我只关心拍摄日期。ID代表数据名称,比如16进制0x0132, 0x9003, 0x9004应该就代表拍摄日期,但具体区别我还不是很清楚,我怎么知道的那个值?从上面提到的那个网站里查到的,当然里面内容很长,看起来也有些复杂,我只是找到了它,然后一试才知道是正确的。知道了ID,那么对应的值是怎样的呢? .NET Framework的Image类已经提供了PropertyItems集合,帮我们把这些信息按照ID建立了数组,而每个ID对应的值则是byte[],也就是说,具体的可读内容,需要根据具体的数据类型自己去转换了。对于拍摄日期,谢天谢地,这byte[]不难解析,直接转换为ASCII字符串就是。

这是代码:

Image img = Image.FromFile(@"C:\Users\Protoss\Pictures\WP_000028.jpg");
System.Drawing.Imaging.PropertyItem[] items = img.PropertyItems;
string DateToken = System.Text.Encoding.ASCII.GetString(items.First(i => i.Id == 0x9003 || i.Id == 0x9004 || i.Id == 0x0132).Value);



posted @ 2011-11-20 21:45 零度的火 阅读(8) 评论(0) 编辑
  2011年11月8日

在RDLC 2010里面添加数据源,发现在Data  Source下拉列表框中没有列出来我需要的类。最后发现是因为那些类是静态类,变成普通类之后就可以列出来了,但是类中的静态方法是可以正确列出来的。不晓得为什么不列出静态类,也许是因为设计器在内部总是会实例化数据源对象?

posted @ 2011-11-08 16:37 零度的火 阅读(17) 评论(0) 编辑
  2011年11月2日

获取事件的event对象,以及获取按键码,其他浏览器也兼容

var evt = window.event || arguments.callee.caller.arguments[0];
var charCode = (evt.which) ? evt.which : evt.keyCode;

 

备忘。

posted @ 2011-11-02 14:19 零度的火 阅读(9) 评论(0) 编辑
  2011年9月20日

发现JQuery Autocomplete 控件很好用,但是有些地方需要根据我的需要调整:

  1. 无论是否匹配上结果,都需要引发result事件(或者说调用result方法),这样我可以及时更新选中项对应的隐藏域的ID值,如果没有匹配项就更新一个负数ID值
  2. 如果设置minChars的值大于1,那么待选项就不显示了,这似乎是一个bug,修改一点代码解决。

这里是修改之后的js文件: jquery.autocomplete.js

posted @ 2011-09-20 08:45 零度的火 阅读(27) 评论(0) 编辑
  2011年9月16日
摘要: 使用JQuery.Cookie还是很方便的,就是有些行为异常,按照通常的实例,使用以下代码就可以创建一个cookie并赋值:1 $.cookie("currentMenuID", menuID);不过只是这么做的话,发现有异常,通过跟踪发现,在多次使用这个代码之后,浏览器会发送多个具有相同Cookie名字值却不同的Cookie。 Google之后,在一个被墙的博客站点里发现了解决之道,就是需要指定cookie的path才行,于是,要这么做:1 $.cookie("currentMenuID", menuID, { path: "/"}阅读全文
posted @ 2011-09-16 10:37 零度的火 阅读(19) 评论(0) 编辑
  2011年9月6日
摘要: 最近试用了JQuery的mbMenu控件来显示控件,功能还是挺强的,我是超级JavaScript小白,对JQuery也是小白中的小白,本着能用就好的态度使用这个控件。无奈遇到一个功能需求,即需要在主菜单的左侧显示子菜单,但是mbMenu默认在主菜单下方显示子菜单,也可以设置为在主菜单右侧显示子菜单,唯独没有功能允许在主菜单左侧显示子菜单,咋办?只能自己搞定了,好在目前只有一级子菜单。以下是修改涉及的代码,留在这里只是作为一个存档。首先增加一个openOnLeft参数,其中第7行是增加的代码 1 options: { 2 template: "yourMenuVoiceTemplate阅读全文
posted @ 2011-09-06 08:44 零度的火 阅读(19) 评论(0) 编辑
  2011年8月2日
摘要: 我用Outlook 2010,配置我的公司邮箱,但是Outlook 总是在Search for abc@def.coms server settings 时出错。无法自动获取邮件服务器的设置信息。到底是哪一步出现了问题呢?google 之后发现这么一个地址:https://www.testexchangeconnectivity.com/利用它可以运行Outlook自动检索邮件服务器设置的过程,并且会列出一个详细的步骤和各种成功或失败的消息,通过查看结果信息,我们可以发现到底是哪一步出了问题。这地址一定要记下来,有用啊。阅读全文
posted @ 2011-08-02 10:13 零度的火 阅读(13) 评论(0) 编辑
  2011年7月22日
摘要: Google出的含有这个方法的网址是:http://www.mail-archive.com/poi-user@jakarta.apache.org/msg08811.html这网站是被墙的。下面直接贴出方法代码吧,我把它改变成了C#代码,佩服这些涉及数学方面的算法的作者。当然我的老师的数学功力也是我一直顶礼膜拜,只能望其项背,唏嘘感慨的……唉,那个家伙啊! 1 private int colNameToNum(string colName) 2 { 3 // assume the column name is of uppercase characters 4 int result = 0;阅读全文
posted @ 2011-07-22 09:18 零度的火 阅读(22) 评论(0) 编辑
  2011年7月14日
摘要: 最近在一个测试服务器上发现一个很奇怪的问题,只要IIS的SMTP服务一启动,就开始自动不停地往外发邮件,疯狂地发。看邮件的内容等等,似乎很明显是遭到了某种恶意的攻击。无论如何限制SMTP的权限,都没有作用。最后偶然发现了症结所在。在SMTP服务的工作目录下有一个Queue目录,里面有几百M的 *.EML 文件,顾名思义,想必SMTP服务会从这里读取邮件,然后发送出去…… 所以我就把这个目录里的文件都干掉,然后问题解决了。。。阅读全文
posted @ 2011-07-14 16:55 零度的火 阅读(23) 评论(0) 编辑