勤奋菜鸟的天堂

导航

随笔分类 -  C#

如何判断系统是64位还是32位
摘要:对于C#来说,调用WMI是一种简单易行的方式。我们可以用Win32_Processor类里面的AddressWidth属性来表示系统的位宽。AddressWidth的值受CPU和操作系统的双重影响。具体的值如下面的表格所示:32bit OS64bit OS32bit CPUAddressWidth = 32N/A64bit CPUAddressWidth = 32AddressWidth = 64可以用下面的C#代码得到AddressWidth的值(引用System.Management.dll):using System.Managment;/// /// 检查系统是32... 阅读全文

posted @ 2013-07-16 14:16 勤奋的菜鸟 阅读(985) 评论(0) 推荐(0)

C# 小结
摘要:1、使用FileSream、FileInfo等诸如此类的操作文件的类时,使用过后可能会占用文件,一定要记得关闭(也可放置于Using语句中,则无需关闭语句),否则导致对文件的后续操作无法进行; 阅读全文

posted @ 2013-06-07 10:37 勤奋的菜鸟 阅读(118) 评论(0) 推荐(0)

全角转半角
摘要:/// /// 全角转半角,(中文符号转英文符号)(DBC case) /// /// 任意字符串 /// 半角字符串 private String ToDBC(String input) { char[] c = input.ToCharArray(); for (int i = 0; i 65280 && c[i] < 65375) c[i] = (char)(c[i] - 65248); } return new String(c); } 阅读全文

posted @ 2013-05-06 15:40 勤奋的菜鸟 阅读(178) 评论(0) 推荐(0)

除法运算小数点的问题
摘要:在c#中int与int的除法默认不保留小数点,floatresult = 1010 / 100; // result = 10;需要保留小数点,可以如下floatresult = 1010f或者(float)1010F / 100;如果需要限定小数点的位数,则可以使用Math.Round():floatresult = Math.Round((float)x/ y,2); 后面的2表示保留小数点后2位小数 阅读全文

posted @ 2013-02-01 14:50 勤奋的菜鸟 阅读(366) 评论(0) 推荐(0)

公共函数
摘要:/// <summary> /// 检查时间是否在指定时间段内(只计算日期部分) /// </summary> /// <param name="startTime">起始时间,字符串形式,格式yyyy-MM-dd HH:mm:ss</param> /// <param name="endTime">结束时间,同上</param> /// <param name="selectTime">指定的时间,同上</param> /// <r 阅读全文

posted @ 2013-01-22 14:58 勤奋的菜鸟 阅读(443) 评论(0) 推荐(0)

通过文件头区分文件类型(包含常见文件的文件头)
摘要:1、常见文件类型的文件头(使用UltraEdit文本编辑器获取): 可执行文件(如exe、bat、dll等):4D5A office2003系列:504B office2007系列:D0CF PDF文件:25502、代码:/// <summary> /// 文件类型 /// </summary> public enum FileType { /// <summary> /// 枚举未定义的文件类型 /// </summary> Undefined = -1, /// <summary> ... 阅读全文

posted @ 2012-12-27 14:35 勤奋的菜鸟 阅读(3621) 评论(0) 推荐(0)

不区分汉字还是英文和数字,按指定字节长度截取字符串
摘要:Web应用程序在浏览器中显示字符串时,由于显示长度的限制,常常需要将字符串截取后再进行显示。但目前很多流行的语言,如C#、Java内部采用的都是Unicode 16(UCS2)编码,在这种编码中所有的字符都是两个字符,因此,如果要截取的字符串是中、英文、数字混合的,就会产生问题,如下面的字符串:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->Strings ="a加b等于c,如果a等1、b等于2,那么c等3"; 上面的字符 阅读全文

posted @ 2012-12-21 13:24 勤奋的菜鸟 阅读(2420) 评论(0) 推荐(1)

枚举
摘要:一、枚举的定义 publicenum枚举名 { } 定义方式1,如下: public enum ColorEnum1 { 红色, //注意,系统会默认给它赋值为0 蓝色,//系统赋值为1 黑色,//系统赋值为2 粉红色 //系统赋值为3 } 定义方式2,如下: public enum ColorEnum2 { 红色=1, //用户自己赋值所以枚举是一组 符号名称/值 配对 蓝色, //系统赋值为2 黑色=1, //用户自己赋值1 粉红色 //系统赋值为2 } 所以可以看出,系统会自己给没有赋值的常量赋值,但赋值的方式是按照上一个的值+1来进行... 阅读全文

posted @ 2012-11-29 17:11 勤奋的菜鸟 阅读(1126) 评论(0) 推荐(2)

for循环和foreach
摘要:1、可以使用foreach的场景: (1)只读循环; (2)如下面所示,遍历删除并不是对自己遍历的值进行删除,而是传递到其他方法进行删除,不会影响本身的索引; foreach(string str in dirList) { fsx.DelDirAllFile(str); } (3)在遍历过程中,对符合条件的元素本身的值修改,不影响索引; (4)在遍历过程中,对符合条件的元素进行删除,但是只删除一项,然后立马使用break退出循环;2、优先使用for循环的场景: for(表达式1;表达式2;表达式3) {循环体} for循环步骤:①执行表达式1,它只执行一次;②执行表达式... 阅读全文

posted @ 2012-11-28 10:37 勤奋的菜鸟 阅读(315) 评论(0) 推荐(0)

Xml文档之间节点的移动
摘要:XML文档间的节点不能直接移动,需要使用方法导入后再添加到目标文档中: XmlNode importUserNode = xmldoc.ImportNode(userNode,true);rootNode.AppendChild(importUserNode); 阅读全文

posted @ 2012-09-12 14:51 勤奋的菜鸟 阅读(341) 评论(0) 推荐(0)

泛型集合(.NET 2.0)
摘要:1、List<T> 来判断是否为空:count属性; 判断某个元素是否在该List中:List.Contains(T item); 遍历可使用:foreach、for; List清空:List.Clear();2、Dictionary<T1,T2> 来判断是否为空:count属性; 遍历可使用://KeyValuePair<T,K> foreach(KeyValuePair<string,int> kvinlist) { Console.WriteLine(kv.Key + kv.Value); } //3.0以上版本foreach(varite 阅读全文

posted @ 2012-09-07 13:29 勤奋的菜鸟 阅读(404) 评论(0) 推荐(0)

基于二进制的权限管理与验证
摘要:1、权限值的设定 用二进制来表示权限值应该是按位来设置,每个位占一个,表示一种权限,如: 00000001表示十进制1, 00000010表示十进制2, 00000100表示十进制4, 00001000表示十进制8; 依次类推,才能清晰正确的标识,多种权限的赋予则使用“或运算”,此时各位比较混乱,如00000011表示十进制3,此时它意味着拥有两种权限。Long userrolevalue ;//用户的权限值,根据他属于的权限组,这个值会不同Long oprolevalue ;//一个操作的权限值,根据他属于的权限组,这个值会不同2、权限的赋予(或运算)userrolevalue = u... 阅读全文

posted @ 2012-08-03 15:25 勤奋的菜鸟 阅读(5357) 评论(2) 推荐(2)

进制转换
摘要:C#中进制转换不需要自己写函数,有现成的函数可以使用,如下:(1)十进制转其他二、八、十六进制可以用下面的函数string ToString(int value, int toBase);第一个参数表示十进制数,第二个是想要转换的进制例如:string bin= Convert.ToString(128,2);//转为2进制string oct=Convert.ToString(128,8);//转为8进制string hex=Convert.ToString(128,16);//转为16进制(2)二、八、十六进制转十进制的函数int ToInt32(string value, int fro 阅读全文

posted @ 2012-07-16 16:01 勤奋的菜鸟 阅读(285) 评论(0) 推荐(1)

获取应用程序根目录
摘要:1、取得控制台应用程序的根目录方法 方法1、Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径 方法2、AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用来探测程序集2、取得Web应用程序的根目录方法 方法1、HttpRuntime.AppDomainAppPath.ToString();//获取承载在当前应用程序域中的应用程序的应用程序目录的物理驱动器路径。用于App_Data中获取 方法2、Server.MapPath("") 或者 Server.MapPath(& 阅读全文

posted @ 2012-05-20 02:32 勤奋的菜鸟 阅读(1968) 评论(0) 推荐(1)

合理使用.NET异常处理
摘要:当你摆正观念以后,就可以使用.NET完善的异常处理机制,来抒写安全的代码。事实上,并非掌握了try{}catch{}语法后,就能抒写安全的代码。其中非常多需要注意的事项。什么时候try?怎么try?怎么catch,都是可以商酌的。我这里介绍的仅仅是比较好的方法。不要抛出new Exception()Exception是一个非常大的类,如果没有side-effect(副作用),很难去捕获。引用你自己的异常类,但是使它继承自AppliationException。通过这种方法,你可以设计一个专门的异常捕获程序去捕获框架抛出的异常,同时设计另一个异常捕获程序来处理自己抛出的异常。每个线程要有单独的c 阅读全文

posted @ 2012-05-20 02:08 勤奋的菜鸟 阅读(478) 评论(0) 推荐(0)

office文档转Txt文档
摘要:代码网络得到,稍作修改,使用从VS2008下取得的dll文件,office2007还支持另为pdf,下面代码运用的就是这种逻辑:using System;using System.Collections.Generic;using System.Linq;using System.Text;using Microsoft.Office.Core;using Microsoft.Office.Interop.Word;using Microsoft.Office.Interop.Excel;using Microsoft.Office.Interop.PowerPoint;using Syste 阅读全文

posted @ 2012-05-11 13:27 勤奋的菜鸟 阅读(785) 评论(0) 推荐(0)

C# byte及char FileStream 与StreamReader的区别(转)
摘要:FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。这是这两种类的一个重要区别,如果你是准备读取byte数据的话,用StreamReader读取然后用System.Text.Encoding.Default.GetBytes转化的话,如下,则可能出现数据丢失的情况,如byte数据的个数不对等。因此操作byte数据时要用FileStream。string textContent = fileS 阅读全文

posted @ 2012-05-08 13:11 勤奋的菜鸟 阅读(2623) 评论(0) 推荐(2)

C#关闭word时,提示“此文件正由另一个应用程序或用户使用” normal.dot
摘要:由于项目需要将一个doc文件转换成一个html文件,同时显示在web页面上.在项目开始前期时,做了Demo后,没有发现什么问题,到真正开始时,问题就来了!第一:在转换成html文件后,打开html时,有时会提示文件正在使用之类的,通过强大的谷歌得到的结果是说,由于内存没有及时释放(运行速度问题吧,因为我是有退出了word对象的),那我就让当前程 序停留半秒Thread.Sleep(500);,果然,问题解决了.一切正常.第二:隔后以现,第二个问题又出现了,就是当你本地打开了一个word程序(即使不同个文件),然后再用C#去转换成html,再打开html时,又是报了一个正在使用之类的提示.... 阅读全文

posted @ 2012-05-07 14:15 勤奋的菜鸟 阅读(3364) 评论(0) 推荐(0)

日期格式与字符串格式互转
摘要:1、日期格式转换成字符串:string timestr=dt.ToShortDateString();或 string timestr=dt.ToShortTimeString();或 string timestr=dt.ToString("yyyyMMdd");说明:自定义格式转换中 yyyy代表年,如2008,yy也代表年,如08年,大写MM代表月,dd代表日,hh代表小时,小写mm代表分钟,ss代表秒数。2、字符串格式转换成日期格式的代码:DateTimedt=Convert.ToDateTime("2008-06-30");里面的字符串格式要固定 阅读全文

posted @ 2011-04-09 12:02 勤奋的菜鸟 阅读(1178) 评论(0) 推荐(0)