一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Programming Language

十天学会PHP之第一天

  以前写了十天学会ASP,十天学会ASP.NET什么的,现在想想再写个PHP吧,也算比较全了。 PHP的调试方法我这里就不说了,外面很多文章都有介绍,也有很多不同的组合。我这里暂时是以 Apache web server 和 MY SQL 作为WEB服务器和数据库,在php-4.3.3下的环境做的程序。当然要简单的构建和访问查看数据库 PHPMYADMIN 不可少。 至于表单设计什么的,我这里也不想多说了,在《十天学会ASP》中已经有介绍。 下面简单介绍一下PHP的语法。 1、嵌入方法: 类似ASP的<%,PHP可以是<?php或者是<?,结束符号是?>,当然您也可以自己指定。 2、引用文件: 引用文件的方法有两种:require 及 include。 require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。 include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。 3、注释方法: <?php echo "这是第一种例子。\n" ; // 本例是 C++ 语法的注释 /* 本例采用多行的 注释方式 */ echo "这是第二种例子。\n" ; echo "这是第三种例子。\n" ; # 本例使用 UNIX Shell 语法注释 ?> 4、变量类型: $mystring = "我是字符串" ; $NewLine = "换行了\n" ; $int1 = 38 ; $float1 = 1.732 ; $float2 = 1.4E+2 ; $MyArray1 = array( "子" , "丑" , "寅" , "卯" ); 这里引出两个问题,首先PHP变量以$开头,第二PHP语句以;结尾,可能ASP程序员会不适应。这两个遗漏也是程序上大多错误所在。 5、运算符号: 数学运算: 符号 意义 + 加法运算 – 减法运算 * 乘法运算 / 除法运算 % 取余数 ++ 累加 — 递减 字符串运算: 运算符号只有一个,就是英文的句号。它可以将字符串连接起来,变成合并的新字符串。类似ASP中的& <? $a = "PHP 4" ; $b = "功能强大" ; echo […]

龙生   18 May 2012
View Details

.NET Framework 4.0的新特性

 本文将揭示.NET 4.0中的3个新特性:图表控件、SEO支持以及ASP.NET 4可扩展的输出缓存。 图表控件 微软向开发者提供了大量可免费下载的图表控件,可以在.NET 3.5 ASP.NET或WinForms项目中使用这些控件。要想在Visual Studio 2008中使用这些控件则需要安装一个插件,该插件提供了VS工具箱及智能集成功能。现在这些控件已经集成到了.NET 4.0中,这样就无需再去下载额外的插件了。Samples Environment for MS Chart Controls提供了这些控件的使用示例。下图是示例的运行截图:   ASP.NET 4.0 SEO 微软发布了一个SEO Toolkit并集成到了IIS 7中,同时可以在IIS Manager中运行。除了可以创建站点地图和地图索引外,该工具集还能够从SEO的视角分析站点情况,在出现SEO规则违例时生成报告:创建错误描述并给出进一步的改进提示。这些规则有:重复的文件、重复的标题、没有内容、过多的内容等等。该工具集会从性能视角分析站点,识别出运行缓慢或是会访问很多资源的页面。我们还可以通过增加自定义规则来扩展该工具集。 虽然该SEO Toolkit需要运行在IIS Manager上,但并不需要在服务器上安装别的东西。此外,它还可以对所有操作系统上的所有Web服务器进行分析。Scott Guthrie总结了可以进一步提升SEO的ASP.NET 4.0中的新特性,如下: ◆Page.MetaKeywords与Page.MetaDescription; ◆ASP.NET Web Forms的URL Routing支持; ◆Response.RedirectPermanent()。 我们可以通过Page类的MetaKeywords和MetaDescription属性以编程的方式设定站点的关键词和描述。Guthrie阐述了这么做的意义所在: ASP.NET 4.0的<head>服务器端控件会在输出页面的<head>部分时使用到他们,这对于使用了母板页的站点非常有用——<head>部分位于.master文件中,这就与包含了具体页面内容的.aspx文件独立开来,现在可以在.aspx页面中设定新的MetaKeywords和MetaDescription属性并通过母板页中的<head>控件自动生成其值。URL Routing会将外部URL转换为内部的。通过这种方式,站点可以公开SEO友好的URL,但却可以在内部使用不同的链接。这对于遗留站点来说非常有用。 我们应该使用Response.RedirectPermanent()方法而非Response.Redirect(),因为后者会生成一个临时的重定向,这导致搜索引擎在多个重定向之间跳跃,降低了页面的等级。Guthrie解释了RedirectPermanent()的工作方式: ASP.NET 4.0引入了一个全新的Response.RedirectPermanent(string url)辅助方法,可以通过HTTP 301(moved permanently)响应进行重定向。这样,搜索引擎和其他能够识别出永久重定向的user agents就会存储并使用与内容关联的新URL。这么做会为页面内容加上索引,同时提升搜索引擎对页面的PR(Page Ranking)值。   ASP.NET 4.0输出缓存 自从1.0开始,ASP.NET就拥有了一个输出缓存来存储页面和资源以提供更快的响应速度,但存储位置只能在内存中。ASP.NET 4.0提供了一个扩展点,可以在本地/远程磁盘、数据库、分布式缓存引擎(如velocity、memcached)甚至是云中增加多个缓存。 转自:51cto.com   原文标题:三方面诠释.NET 4.0的新特性

龙生   16 May 2012
View Details

C#进制转换

       //十进制转二进制Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2));//十进制转八进制Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8));//十进制转十六进制Console.WriteLine("十进制166的十六进制表示: "+Convert.ToString(166, 16)); //二进制转十进制Console.WriteLine("二进制 111101 的十进制表示: "+Convert.ToInt32("111101", 2));//八进制转十进制Console.WriteLine("八进制 44 的十进制表示: "+Convert.ToInt32("44", 8));//十六进制转十进制Console.WriteLine("十六进制 CC的十进制表示: "+Convert.ToInt32("CC", 16)); 

龙生   14 May 2012
View Details

C#里WinForm程序启动时不显示主窗体的方法

注:转载的一篇文章,我用的是第三种方法,通过重载SetVisibleCore,实现窗体的启动就不显示,也不闪烁一下。 看了两篇文章(1和2),然后把文中的代码整理了以下,文中所述WinForm程序启动时不显示主窗体的实现方法主要有以下5种,个人觉得第五种最简单,而且效果也不错,第四种方法也值得推荐。   实现代码及简短解释如下: //隐藏窗体的方法1/5:不指定任何窗体为主窗体//注意:通常,在一个程序中,关闭主窗体,就可以关闭应用程序。//但是在没有主窗体中,不行。//只能使用Application.Exit()才能关闭应用程序。//using可以保证Application结束前,关闭MyMainFormusing (new Form1()){ Application.Run();};//Application.Run(new Form1());   //隐藏窗体的方法2/5://通过close()关闭主窗口同时可以关闭应用程序     //隐藏窗体的方法4/5 part1/2: 推荐使用!!!//ApplicationContext实质上就是一个Application与主窗体之间的连接器, //掌管着二者之间的互动关系。其中最主要的,就是负责在主窗体//关闭时结束线程。既然如此,我们只要根据需要自定义一个ApplicationContext就可以了   this.mainFormInternal .Closed += new EventHandler(mainFormInternal_Closed);}     protected override CreateParams CreateParams{get{Hide();return base.CreateParams;}}//隐藏窗体的方法3/5://这种方法仍然不能用Close主窗口的方式来关闭应用程序, 还得使用Application.Exit。protected override void SetVisibleCore( bool value){base.SetVisibleCore(false);}//注意:方法2和3 使用Show好像没办法调出主窗口,比较郁闷。internal class HideOnStartupApplicationContext : ApplicationContext{private Form mainFormInternal;// 构造函数,主窗体被存储在mainFormInternalpublic HideOnStartupApplicationContext( Form mainForm){this.mainFormInternal = mainForm;// 当主窗体被关闭时,退出应用程序void mainFormInternal_Closed(object sender, EventArgs e ){Application.Exit(); }}//在Main中作如下修改: HideOnStartupApplicationContext context = new HideOnStartupApplicationContext( new Form1());Application.Run(context );//隐藏窗体的方法5/5: 推荐使用!!!//在构造函数中或者直接设置form属性this.ShowInTaskbar = false;this.WindowState = FormWindowState.Minimized;   程序中配合notifyIcon 控件一起使用,效果很好! 以上代码在VS2005下编译通过。  

龙生   14 May 2012
View Details

C#列表所有IIS站点以及相关站点属性

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Windows.Forms.Design; using System.DirectoryServices; using System.Reflection; using System.Text.RegularExpressions; int TotalServerCount=0; DirectoryEntry rootfolder = new DirectoryEntry("IIS://localhost/W3SVC"); //TotalServerCount=rootfolder.Children.SchemaFilter.Count; foreach (DirectoryEntry child in rootfolder.Children) { if (child.SchemaClassName == "IIsWebServer") { TotalServerCount+=1; } } //循环获取所有站点详细属性写入数组中 string [] arrayServerID = new string[TotalServerCount];//站点标识符 string [] arrayServerIP = new string[TotalServerCount];//站点主机头 string [] arrayServerPort = new string[TotalServerCount];//站点主机头 string [] arrayServerHeader = new string[TotalServerCount];//站点主机头 string [] arrayServerPath = new string[TotalServerCount];//站点主机头 string [] arrayServerComment = new string[TotalServerCount];//站点主机头 string [] arrayServerBinds = new string[TotalServerCount];//站点主机头 string currentServerBindings;//绑定主机头IP端口字符串 char[] a=":".ToCharArray(); string […]

龙生   14 May 2012
View Details

c#中Dictionary、ArrayList、Hashtable和数组的区别是什么?

C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小, 但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的 2.数组要声明元素的类型,集合类的元素类型却是object. 3.数组可读可写不能声明只读数组。集合类可以提供ReadOnly方法以只读方式使用集合。 4.数组要有整数下标才能访问特定的元素,然而很多时候这样的下标并不是很有用。集合也是数据列表却不使用下标访问。 很多时候集合有定制的下标类型,对于队列和栈根本就不支持下标访问! //数组 int[] intArray1; //初始化已声明的一维数组 intArray1 = new int[3]; intArray1 = new int[3]{1,2,3}; intArray1 = new int[]{1,2,3}; //ArrayList类对象被设计成为一个动态数组类型,其容量会随着需要而适当的扩充 方法 1:Add()向数组中添加一个元素, 2:Remove()删除数组中的一个元素 3:RemoveAt(int i)删除数组中索引值为i的元素 4:Reverse()反转数组的元素 5:Sort()以从小到大的顺序排列数组的元素 6:Clone()复制一个数组 //List 可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法 在决定使用 List 还是使用 ArrayList 类(两者具有类似的功能)时,记住 List 类在大多数情况下执行得更好并且是类型安全的。如果对 List 类的类型 T 使用引用类型,则 两个类的行为是完全相同的。但是,如果对类型 T 使用值类型,则需要考虑实现和装箱问题。 如果对类型 T 使用值类型,则编译器将特别针对该值类型生成 List 类的实现。这意味着不必对 List 对象的列表元素进行装箱就可以使用该元素,并且在创建大约 500 个列表 元素之后,不对列表元素装箱所节省的内存将大于生成该类实现所使用的内存。 //Dictionary 表示键和值的集合。Dictionary遍历输出的顺序,就是加入的顺序,这点与Hashtable不同 //SortedList类 与哈希表类似,区别在于SortedList中的Key数组排好序的 //Hashtable类 哈希表,名-值对。类似于字典(比数组更强大)。哈希表是经过优化的,访问下标的对象先散列过。如果以任意类型键值访问其中元素会快于其他集合。 GetHashCode()方法返回一个int型数据,使用这个键的值生成该int型数据。哈希表获取这个值最后返回一个索引,表示带有给定散列的数据项在字典中存储的位置。 //Stack类 栈,后进先出。push方法入栈,pop方法出栈。 Queue类 队列,先进先出。enqueue方法入队列,dequeue方法出队列。 ————————————————————- //Dictionary System.Collections.DictionaryEntry dic=new System.Collections.DictionaryEntry("key1","value1"); Dictionary<int, string> fruit = new Dictionary<int, […]

龙生   14 May 2012
View Details

C#中ToString格式大全

C 货币2.5.ToString("C")¥2.50 D 十进制数25.ToString("D5")00025E 科学型25000.ToString("E")2.500000E+005F 固定点25.ToString("F2")25.00G 常规2.5.ToString("G")2.5 N 数字2500000.ToString("N")2,500,000.00X 十六进制255.ToString("X")FF formatCode 是可选的格式化代码字符串。(详细内容请搜索“格式化字符串”查看) 必须用“{”和“}”将格式与其他字符分开。如果恰好在格式中也要使用大括号,可以用连续的两个大括号表示一个大括号,即: “{{”或者“}}”。常用格式举例:(1) int i=12345;this.textBox1.Text=i.ToString();//结果 12345(this指当前对象,或叫当前类的实例)this.textBox2.Text=i.ToString("d8");//结果 00012345(2) int i=123;double j=123.45;string s1=string.Format("the value is {0,7}",i);string s2=string.Format("the value is {0,73}",j);this.textBox1.Text=s1 ;//结果 the value is 123this.textBox2.Text=s2;//结果 the value is 123.450(3)double i=12345.6789;this.textBox1.Text=i.ToString("f2"); //结果 12345.68this.textBox2.Text=i.ToString("f6");//结果 12345.678900(4)double i=12345.6789;this.textBox1.Text=i.ToString("n"); //结果 12,345.68this.textBox2.Text=i.ToString(“n4”); //结果 12,345.6789(5)double i=0.126;string s=string.Format("the value is {0:p}",i);this.textBox1.Text=i.ToString("p"); //结果 12.6%this.textBox2.Text=s; //结果 the value is 12.6%(6) DateTime dt =new DateTime(2003,5,25);this.textBox1.Text=dt.ToString("yy.M.d");//结果 03.5.25this.textBox2.Text=dt.ToString(“yyyy年M月”);//结果 2003年5月Convert.ToDateTime("2005/12/22 22:22:22").ToString("yyyy/MM/dd HHss")"2005/12/22 22:22:22"(7) int i=123;double j=123.45;string s=string.Format("i:{0,-7},j:{1,7}",i,j);//-7表示左对齐,占7位this.textBox1.Text=s ;//结果i:123 ,j: 123.45 DateTime.ToString()用法详解我们经常会遇到对时间进行转换,达到不同的显示效果,默认格式为:2006-6-6 14:33:34 如果要换成成200606,06-2006,2006-6-6或更多的格式该怎么办呢?这里将要用到DateTime.ToString的方法(String, IFormatProvider)示例:using System;using System.Globalization;String format="D";DateTime date=DataTime.Now;Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));结果输出Thursday, June 16, 2006在这里列出了参数format格式详细用法=======================格式字符 关联属性/说明 […]

龙生   14 May 2012
View Details

使用Flash和C# WinForm配合打造界面漂亮的应用程序

由于之前一阵公司一个项目提出的需求,自己也想进行这方面的尝试,我对如何使用 Flash 来做 WinForm 程序的界面产生了兴趣,于是学习了一些资料,摘要于此。 要在 WinForm 中使用 Flash,通常需要用到 Shockwave Flash Object 这个 COM 组件。 具体步骤如下: 首先添加对 COM 组件 Shockwave Flash Object 的引用,将该组件拖到窗体上之后,可以设置如下关键属性: Movie: Flash 的存放地址 EmbedMovie: 是否嵌入到程序的资源中。 接下来你可以设置其他一些属性,使得 Flash 的窗口最大化,隐藏掉其宿主程序的 C# WinForm 窗体。 在 Flash 的 ActionScript 中,可以通过 FSCommand 函数与 hosting app 通信,该函数有两个参数,分别是: command: 命令名称 parameters: 参数 例子: on(press){ fscommand("Circule", "Green"); } 在 C# 中,处理 Flash 对象的 FSCommand 事件即可。 如果该事件处理函数的 EventArgs 为 e, 则有如下对应关系: e.command -> Flash 中调用 FSCommand 时的 command 参数; e.args -> Flash 中调用 FSCommand 时的 arguments 参数。 在 C# 中往 Flash 传递数值用 SetVariable 方法: […]

龙生   14 May 2012
View Details

.net windows服务程序编写总结

1、在.net中,windows服务的实现类必需继承于System.ServiceProcess.ServiceBase public partial class myService : ServiceBase {   } 2、在windows服务的实现类的构造函数中进行必要的初始化工作,如设置系统标识服务的简短名称等。 public partial class myService : ServiceBase { public SqlBackupService() { ServiceName = "Myservice"; AutoLog = false; CanStop = true; } } 3、重写OnStar和OnStop函数,在OnStar里实现具体功能,OnStop中释放OnStat中创建的资源。 public partial class myService : ServiceBase { private int tickcount = 0; private System.Timers.Timer t = null;   public SqlBackupService() { ServiceName = "Myservice"; AutoLog = false; CanStop = true; }   protected override void OnStart(string[] args) { Console.WriteLine("Myservice start …"); //建立定时器 t = new System.Timers.Timer(10000); t.AutoReset = true; //每隔10000毫秒触发一次 t.Elapsed += new System.Timers.ElapsedEventHandler(myWork); t.Start(); […]

龙生   13 May 2012
View Details

DbType,OleDbType,SqlDbType区别

  _ _ DbType 说明 OleDbType 说明 SqlDbType 说明 Boolean 简单类型,表示 true 或 false 的布尔值。 Boolean 布尔值 (DBTYPE_BOOL)。它映射到 Boolean。 Bit Boolean。无符号数值,可以是 0、1 或 nullNothingnullptrnull 引用(在 Visual Basic 中为 Nothing)。             SByte 整型,表示值介于 -128 到 127 之间的有符号 8 位整数。 TinyInt 8 位带符号的整数 (DBTYPE_I1)。它映射到 SByte。     Byte 一个 8 位无符号整数,范围在 0 到 255 之间。 UnsignedTinyInt 8 位无符号整数 (DBTYPE_UI1)。它映射到 Byte。 TinyInt Byte。8 位的无符号整数。 Int16 整型,表示值介于 -32768 到 32767 之间的有符号 16 位整数。 SmallInt 16 位带符号的整数 (DBTYPE_I2)。它映射到 Int16。 SmallInt Int16。16 位的有符号整数。 Int32 整型,表示值介于 -2147483648 到 2147483647 之间的有符号 […]

龙生   12 May 2012
View Details
1 165 166 167 175