<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_杨泽</title><subtitle type="text">分享知识，分享快乐</subtitle><id>http://feed.cnblogs.com/blog/u/31662/rss</id><updated>2012-02-03T03:58:43Z</updated><author><name>小杨随笔</name><uri>http://www.cnblogs.com/yangze/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yangze/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/31662/rss"/><entry><id>http://www.cnblogs.com/yangze/archive/2012/02/03/2336837.html</id><title type="text">我的选股步骤</title><summary type="text">选股步骤： 1.看大盘趋势 2.最后一月各板块区间涨跌幅 3.在选中的板块里用条件选股 （基本面+技术面） 4.选中的股票 用5分种线 分析买入的价位和时间 。 或者选中 基本面好的股票 等待买入机会。</summary><published>2012-02-03T03:59:00Z</published><updated>2012-02-03T03:59:00Z</updated><author><name>小杨随笔</name><uri>http://www.cnblogs.com/yangze/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yangze/archive/2012/02/03/2336837.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yangze/archive/2012/02/03/2336837.html"/><content type="html">&lt;p&gt;选股步骤：&lt;/p&gt; &lt;p&gt;1.看大盘趋势&lt;/p&gt; &lt;p&gt;2.最后一月各板块区间涨跌幅&lt;/p&gt; &lt;p&gt;3.在选中的板块里用条件选股 （基本面+技术面）&lt;/p&gt; &lt;p&gt;4.选中的股票 用5分种线 分析买入的价位和时间 。 或者选中 基本面好的股票 等待买入机会。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yangze/aggbug/2336837.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yangze/archive/2012/02/03/2336837.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yangze/archive/2012/01/13/2321474.html</id><title type="text">sql 分组求积</title><summary type="text">if not object_id(&amp;#39;Tempdb..T&amp;#39;) is null drop table TGoCreate table T([groupid] nvarchar(1),[val] FLOAT)Insert Tselect &amp;#39;a&amp;#39;,2.5 union allselect &amp;#39;a&amp;#39;,3 union allselect &amp;#39;a&amp;#39;,1 union allselect &amp;#39;b&amp;#39;,4 union allselect &amp;#39;b&amp;#39;,6 union allselect &amp;#39;b&amp;#39;,1 union alls</summary><published>2012-01-13T05:05:00Z</published><updated>2012-01-13T05:05:00Z</updated><author><name>小杨随笔</name><uri>http://www.cnblogs.com/yangze/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yangze/archive/2012/01/13/2321474.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yangze/archive/2012/01/13/2321474.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;span &gt;if&lt;/span&gt; &lt;span &gt;not&lt;/span&gt; object_id(&lt;span &gt;'Tempdb..T'&lt;/span&gt;) &lt;span &gt;is&lt;/span&gt; &lt;span &gt;null&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span &gt;drop&lt;/span&gt; &lt;span &gt;table&lt;/span&gt; T&lt;br /&gt;&lt;span &gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span &gt;Create&lt;/span&gt; &lt;span &gt;table&lt;/span&gt; T([groupid] nvarchar(1),[val] &lt;span &gt;FLOAT&lt;/span&gt;)&lt;br /&gt;Insert T&lt;br /&gt;&lt;span &gt;select&lt;/span&gt; &lt;span &gt;'a'&lt;/span&gt;,2.5 &lt;span &gt;union&lt;/span&gt; &lt;span &gt;all&lt;/span&gt;&lt;br /&gt;&lt;span &gt;select&lt;/span&gt; &lt;span &gt;'a'&lt;/span&gt;,3 &lt;span &gt;union&lt;/span&gt; &lt;span &gt;all&lt;/span&gt;&lt;br /&gt;&lt;span &gt;select&lt;/span&gt; &lt;span &gt;'a'&lt;/span&gt;,1 &lt;span &gt;union&lt;/span&gt; &lt;span &gt;all&lt;/span&gt;&lt;br /&gt;&lt;span &gt;select&lt;/span&gt; &lt;span &gt;'b'&lt;/span&gt;,4 &lt;span &gt;union&lt;/span&gt; &lt;span &gt;all&lt;/span&gt;&lt;br /&gt;&lt;span &gt;select&lt;/span&gt; &lt;span &gt;'b'&lt;/span&gt;,6 &lt;span &gt;union&lt;/span&gt; &lt;span &gt;all&lt;/span&gt;&lt;br /&gt;&lt;span &gt;select&lt;/span&gt; &lt;span &gt;'b'&lt;/span&gt;,1 &lt;span &gt;union&lt;/span&gt; &lt;span &gt;all&lt;/span&gt;&lt;br /&gt;&lt;span &gt;select&lt;/span&gt; &lt;span &gt;'c'&lt;/span&gt;,10 &lt;span &gt;union&lt;/span&gt; &lt;span &gt;all&lt;/span&gt;&lt;br /&gt;&lt;span &gt;select&lt;/span&gt; &lt;span &gt;'c'&lt;/span&gt;,1.8 &lt;span &gt;union&lt;/span&gt; &lt;span &gt;all&lt;/span&gt;&lt;br /&gt;&lt;span &gt;select&lt;/span&gt; &lt;span &gt;'d'&lt;/span&gt;,7&lt;br /&gt;&lt;span &gt;Go&lt;/span&gt;&lt;br /&gt;&lt;span &gt;Select&lt;/span&gt; log(val),* &lt;span &gt;from&lt;/span&gt; T&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;pre &gt;&lt;/pre&gt;&#xD;
&lt;pre &gt;&lt;span &gt;select&lt;/span&gt; groupid , exp(&lt;span &gt;sum&lt;/span&gt;(log(val)))    &lt;span &gt;from&lt;/span&gt;  t   &lt;span &gt;group&lt;/span&gt; &lt;span &gt;by&lt;/span&gt; groupid&lt;/pre&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;如果有负数&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;SELECT groupid, EXP(SUM(LOG(ABS(val))))*(case when SUM(CASE WHEN SIGN(val)=-1 THEN -1 ELSE 0 END)%2=0 then 1 else -1 end)&lt;br /&gt;from&amp;nbsp; t&amp;nbsp;&amp;nbsp; group by groupid&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;解释：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;利用exp和log进行sum-product 加法-乘法转换&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;首先把sum转成product&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;Sum[P(i)]=P(1)+P(2)+...+P(i)+...=log{Product[exp[P(i)]]}&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;=log{exp[P(1)]*exp[P(2)]*exp[P(3)]*...exp[P(i)]*...}&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;然后把product转成sum&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;Product[P(i)]=P1(1)*P(2)*...*P(i)*...=exp{sum[logP(i)]}&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-size: medium;"&gt;=exp{log[P(1))]+log[P(2))]+...log[P(i))]+...}&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;自然对数:以常数e为底数的对数叫做自然对数，记作ln N(N&amp;gt;0).&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;e是一个&lt;a href="http://baike.baidu.com/view/167663.htm"&gt;无限不循环小数&lt;/a&gt;，其值约等于2.718281828&amp;hellip;，它是一个&lt;a href="http://baike.baidu.com/view/27542.htm"&gt;超越数&lt;/a&gt;.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;pre&gt;LOG ( float_expression )&lt;/pre&gt;&#xD;
&lt;p&gt;返回指定 float 表达式的自然对数。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;备注&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;常量 e (2.71828182845905&amp;hellip;) 是自然对数的基数。&lt;/p&gt;&#xD;
&lt;p&gt;自然对数的基数是常量 e (2.71828182845905&amp;hellip;)。LOG (e) = 1.0。&lt;/p&gt;&#xD;
&lt;p&gt;某数指数值的自然对数是该数自身：LOG( EXP( n ) ) = n。且某数指数值的自然对数是该数自身：EXP( LOG( n ) ) = n。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;pre&gt;EXP ( float_expression )&lt;/pre&gt;&#xD;
&lt;p&gt;返回指定的 float 表达式的指数值。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;备注&lt;/p&gt;&#xD;
&lt;p&gt;常量 e (2.718281&amp;hellip;) 是自然对数的底数。&lt;/p&gt;&#xD;
&lt;p&gt;数字的指数是常量 e 使用该数字进行幂运算。例如，EXP(1.0) = e^1.0 = 2.71828182845905，而 EXP(10) = e^10 = 22026.4657948067。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;数字的自然对数的指数是数字本身：EXP (LOG (n)) = n。&lt;/strong&gt;数字的指数的自然对数是数字本身：LOG (EXP (n)) = n。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yangze/aggbug/2321474.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yangze/archive/2012/01/13/2321474.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yangze/archive/2012/01/07/2315877.html</id><title type="text">SQLServer2000自动维护索引</title><summary type="text">SQLServer2000里自动重建索引 --王成辉翻译整理，转贴请注明出处 --原帖地址：http://www.sql-server-performance.com/tp_automatic_reindexing.asp 在所有的OLTP环境里，实质上所有的索引都将随着时间产生碎片。几乎所有的UPDATE、INSERT、DELETE活动都将引起索引比最初创建时变得更无组织。页拆分更多，大量的...</summary><published>2012-01-07T09:26:00Z</published><updated>2012-01-07T09:26:00Z</updated><author><name>小杨随笔</name><uri>http://www.cnblogs.com/yangze/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yangze/archive/2012/01/07/2315877.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yangze/archive/2012/01/07/2315877.html"/><content type="html">&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt; &lt;div id="msgcns!7a975ff078b9a497!147" &gt; &lt;p align="left"&gt;&lt;font size="2" face="Verdana"&gt;SQLServer2000里自动重建索引&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font size="2"&gt;--王成辉翻译整理，转贴请注明出处&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font size="2"&gt;--原帖地址：&lt;a href="http://www.sql-server-performance.com/tp_automatic_reindexing.asp"&gt;http://www.sql-server-performance.com/tp_automatic_reindexing.asp&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font size="2" face="Verdana"&gt;&lt;span style="font-family: 宋体; color: rgb(51,51,51); font-size: 12pt"&gt;在所有的&lt;/span&gt;&lt;span style="font-family: verdana; color: rgb(51,51,51); font-size: 12pt" lang="EN-US" xml:lang="EN-US"&gt;OLTP&lt;/span&gt;&lt;span style="font-family: 宋体; color: rgb(51,51,51); font-size: 12pt"&gt;环境里，实质上所有的索引都将随着时间产生碎片。几乎所有的&lt;/span&gt;&lt;span style="font-family: verdana; color: rgb(51,51,51); font-size: 12pt" lang="EN-US" xml:lang="EN-US"&gt;UPDATE&lt;/span&gt;&lt;span style="font-family: 宋体; color: rgb(51,51,51); font-size: 12pt"&gt;、&lt;/span&gt;&lt;span style="font-family: verdana; color: rgb(51,51,51); font-size: 12pt" lang="EN-US" xml:lang="EN-US"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: 宋体; color: rgb(51,51,51); font-size: 12pt"&gt;、&lt;/span&gt;&lt;span style="font-family: verdana; color: rgb(51,51,51); font-size: 12pt" lang="EN-US" xml:lang="EN-US"&gt;DELETE&lt;/span&gt;&lt;span style="font-family: 宋体; color: rgb(51,51,51); font-size: 12pt"&gt;活动都将引起索引比最初创建时变得更无组织。页拆分更多，大量的页上只有很少的数据，因此满足每个&lt;/span&gt;&lt;span style="font-family: verdana; color: rgb(51,51,51); font-size: 12pt" lang="EN-US" xml:lang="EN-US"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 宋体; color: rgb(51,51,51); font-size: 12pt"&gt;需要更多的&lt;/span&gt;&lt;span style="font-family: verdana; color: rgb(51,51,51); font-size: 12pt" lang="EN-US" xml:lang="EN-US"&gt;I/O&lt;/span&gt; &lt;span style="font-family: 宋体; color: rgb(51,51,51); font-size: 12pt"&gt;。数据和索引的碎片越多，应用程序就会更慢，数据花费的空间就更多。对此你能做什么呢？你可以定期的重建索引。&lt;/span&gt;&lt;/font&gt;&amp;nbsp;&lt;wbr&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;b&gt;&lt;font color="#000080" size="2" face="Verdana"&gt;那么什么可以立即使用呢？&lt;/font&gt;&lt;/b&gt;&lt;/p&gt; &lt;div align="left"&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;span style="font-family: 宋体; color: rgb(51,51,51); font-size: 10pt"&gt;&lt;font size="2" face="Verdana"&gt;基本上你可以使用数据库维护向导来执行索引重建，创建维护计划来完成。如果你原意接受它固有的缺陷，这也可以使用。首先，用维护向导来配置和完成索引重建是不慎重的。它将重建每一个索引，不管它是否需要重建。如果你有一个有很多大表和大量索引的大数据库，这会出问题，因为不加区别的重建整个数据库的索引会花费很长的时间，会使你的维护窗口不可用。问题在于，要么全部重建，要么全部不重建，你根本不能以任何方式分批处理数据库的表。&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;div align="left"&gt;&amp;nbsp;&lt;wbr&gt;&lt;/div&gt; &lt;div align="left"&gt;&lt;font face="Verdana"&gt;&lt;font size="2"&gt;&lt;span style="font-family: 宋体; color: rgb(51,51,51); font-size: 10pt"&gt;&lt;font size="2" face="Verdana"&gt;那么有什么别的能做吗？你可以写一个脚本来重建选择的表的索引。这样你能对数据库分批处理以减少在重建索引时你维护窗口执行的时间。你需要将这个时间减小到最少，因为重建索引会对表执行排它锁，在重建索引期间禁止用户访问。所以你可以每周的每个工作日的晚上重建五分之一表的索引，所有的索引至少一周做一次。然而，这也是不慎重的――你将重建所有表的索引而不论数据和索引是否是有碎片。&lt;/font&gt;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span style="font-family: 宋体; color: rgb(51,51,51); font-size: 12pt"&gt;这里推荐选择性的重建索引。你需要检查表的索引和数据的碎片，保留数据，据此操作，重建索引要用确定的且区别对待的方式。仅仅通过这样系统的方法，你可以仅重建那些实际需要重建的表的数据和索引。而且也只有这种方式能最小化索引重建的时间。在整个索引重建期间，如果你不想影响你的用户的话，减少索引重建的时间是至关重要的。&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&lt;wbr&gt;&lt;/div&gt; &lt;p align="left"&gt;&lt;font size="2" face="Verdana"&gt;&lt;b&gt;&lt;font color="#000080"&gt;那么我们怎样可以解决呢？&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;可以使用命令&lt;br&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Courier New"&gt;DBCC SHOWCONTIG()&lt;/font&gt;&lt;font size="2" face="Verdana"&gt;&lt;br&gt;&lt;br&gt;SQLServer2000比以前版本有一个大的改进就是这个简单而又至关重要的命令。DBCC SHOWCONTIG是SQLServer提供来检查索引碎片情况的工具。在以前的版本里（7.0和更早的版本），这个命令只输出文本，如果手工处理这个命令很好，然而，要实现自动化目的，它会带来严重的问题。那意味着你要循环执行每一个表并将结果输出到文本文件，然后为了读和解释原文的输出结果以便获得你寻找的信息，需要进行烦人的结构化处理。&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font size="2" face="Verdana"&gt;SQLServer2000对DBCC SHOWCONTIG()命令引进了一个关键子句，名为WITH TABLERESULTS。这意味着你能运行这个命令然后将捕获的数据直接输出到表里，而不是还需要使用XP_CMDSHELL来操作的文本文件里。&lt;br&gt;&lt;br&gt;在SQLServer2000里，这意味着你能结构化的循环处理表，通过在它们上面运行DBCC SHOWCONTIG命令以将捕获碎片信息插入表中。然后你能循环使用这个结果，根据碎片的情况，选择性的进行碎片整理。可以用下面的存储过程实现：&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font color="#0000ff" size="2" face="Courier New"&gt;CREATE PROCEDURE sp_defragment_indexes @maxfrag DECIMAL&lt;br&gt;&lt;br&gt;AS&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font color="#0000ff"&gt;&lt;font size="2" face="Courier New"&gt;--王成辉翻译整理，转贴请注明出处&lt;/font&gt;&lt;br&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Courier New"&gt;--声明变量&lt;br&gt;SET NOCOUNT ON&lt;br&gt;DECLARE @tablename VARCHAR (128)&lt;br&gt;DECLARE @execstr VARCHAR (255)&lt;br&gt;DECLARE @objectid INT&lt;br&gt;DECLARE @objectowner VARCHAR(255)&lt;br&gt;DECLARE @indexid INT&lt;br&gt;DECLARE @frag DECIMAL&lt;br&gt;DECLARE @indexname CHAR(255)&lt;br&gt;DECLARE @dbname sysname&lt;br&gt;DECLARE @tableid INT&lt;br&gt;DECLARE @tableidchar VARCHAR(255)&lt;br&gt;&lt;br&gt;--检查是否在用户数据库里运行&lt;br&gt;SELECT @dbname = db_name()&lt;br&gt;IF @dbname IN ('master', 'msdb', 'model', 'tempdb')&lt;br&gt;BEGIN&lt;br&gt;PRINT 'This procedure should not be run in system databases.'&lt;br&gt;RETURN&lt;br&gt;END&lt;br&gt;&lt;br&gt;--第1阶段:检测碎片&lt;br&gt;--声明游标&lt;br&gt;DECLARE tables CURSOR FOR&lt;br&gt;SELECT convert(varchar,so.id)&lt;br&gt;FROM sysobjects so&lt;br&gt;JOIN sysindexes si&lt;br&gt;ON so.id = si.id&lt;br&gt;WHERE so.type ='U'&lt;br&gt;AND si.indid &amp;lt; 2&lt;br&gt;AND si.rows &amp;gt; 0&lt;br&gt;&lt;br&gt;-- 创建一个临时表来存储碎片信息&lt;br&gt;CREATE TABLE #fraglist (&lt;br&gt;ObjectName CHAR (255),&lt;br&gt;ObjectId INT,&lt;br&gt;IndexName CHAR (255),&lt;br&gt;IndexId INT,&lt;br&gt;Lvl INT,&lt;br&gt;CountPages INT,&lt;br&gt;CountRows INT,&lt;br&gt;MinRecSize INT,&lt;br&gt;MaxRecSize INT,&lt;br&gt;AvgRecSize INT,&lt;br&gt;ForRecCount INT,&lt;br&gt;Extents INT,&lt;br&gt;ExtentSwitches INT,&lt;br&gt;AvgFreeBytes INT,&lt;br&gt;AvgPageDensity INT,&lt;br&gt;ScanDensity DECIMAL,&lt;br&gt;BestCount INT,&lt;br&gt;ActualCount INT,&lt;br&gt;LogicalFrag DECIMAL,&lt;br&gt;ExtentFrag DECIMAL)&lt;br&gt;&lt;br&gt;--打开游标&lt;br&gt;OPEN tables&lt;br&gt;&lt;br&gt;-- 对数据库的所有表循环执行dbcc showcontig命令&lt;br&gt;FETCH NEXT&lt;br&gt;FROM tables&lt;br&gt;INTO @tableidchar&lt;br&gt;&lt;br&gt;WHILE @@FETCH_STATUS = 0&lt;br&gt;BEGIN&lt;br&gt;--对表的所有索引进行统计&lt;br&gt;INSERT INTO #fraglist&lt;br&gt;EXEC ('DBCC SHOWCONTIG (' + @tableidchar + ') WITH FAST, TABLERESULTS, ALL_INDEXES, NO_INFOMSGS')&lt;br&gt;FETCH NEXT&lt;br&gt;FROM tables&lt;br&gt;INTO @tableidchar&lt;br&gt;END&lt;br&gt;&lt;br&gt;-- 关闭释放游标&lt;br&gt;CLOSE tables&lt;br&gt;DEALLOCATE tables&lt;br&gt;&lt;br&gt;-- 为了检查，报告统计结果&lt;br&gt;SELECT * FROM #fraglist&lt;br&gt;&lt;br&gt;--第2阶段: (整理碎片) 为每一个要整理碎片的索引声明游标&lt;br&gt;DECLARE indexes CURSOR FOR&lt;br&gt;SELECT ObjectName, ObjectOwner = user_name(so.uid), ObjectId, IndexName, ScanDensity&lt;br&gt;FROM #fraglist f&lt;br&gt;JOIN sysobjects so ON f.ObjectId=so.id&lt;br&gt;WHERE ScanDensity &amp;lt;= @maxfrag&lt;br&gt;AND INDEXPROPERTY (ObjectId, IndexName, 'IndexDepth') &amp;gt; 0&lt;br&gt;&lt;br&gt;-- 输出开始时间&lt;br&gt;SELECT 'Started defragmenting indexes at ' + CONVERT(VARCHAR,GETDATE())&lt;br&gt;&lt;br&gt;--打开游标&lt;br&gt;OPEN indexes&lt;br&gt;&lt;br&gt;--循环所有的索引&lt;br&gt;FETCH NEXT&lt;br&gt;FROM indexes&lt;br&gt;INTO @tablename, @objectowner, @objectid, @indexname, @frag&lt;br&gt;&lt;br&gt;WHILE @@FETCH_STATUS = 0&lt;br&gt;BEGIN&lt;br&gt;SET QUOTED_IDENTIFIER ON&lt;br&gt;&lt;br&gt;SELECT @execstr = 'DBCC DBREINDEX (' + '''' +RTRIM(@objectowner) + '.' + RTRIM(@tablename) + '''' +&lt;br&gt;', ' + RTRIM(@indexname) + ') WITH NO_INFOMSGS'&lt;br&gt;SELECT 'Now executing: '&lt;br&gt;SELECT(@execstr)&lt;br&gt;EXEC (@execstr)&lt;br&gt;&lt;br&gt;SET QUOTED_IDENTIFIER OFF&lt;br&gt;&lt;br&gt;FETCH NEXT&lt;br&gt;FROM indexes&lt;br&gt;INTO @tablename, @objectowner, @objectid, @indexname, @frag&lt;br&gt;END&lt;br&gt;&lt;br&gt;-- 关闭释放游标&lt;br&gt;CLOSE indexes&lt;br&gt;DEALLOCATE indexes&lt;br&gt;&lt;br&gt;-- 报告结束时间&lt;br&gt;SELECT 'Finished defragmenting indexes at ' + CONVERT(VARCHAR,GETDATE())&lt;br&gt;&lt;br&gt;-- 删除临时表&lt;br&gt;DROP TABLE #fraglist&lt;br&gt;GO&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;wbr&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font size="2" face="Verdana"&gt;&lt;b&gt;&lt;font color="#000080"&gt;使用&lt;/font&gt;&lt;/b&gt;&lt;br&gt;&lt;br&gt;这个存储过程应该创建在master数据库里，以便你能在服务器上的任何用户数据库里使用。&lt;br&gt;在用户数据库里通过传递一个参数（MAXFRAG）来运行。该参数是一个百分比值。意思是任何索引的碎片扫描密度小于这个值。例如，如果你想要整理那些扫描密度小于95％的索引的碎片：&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Courier New"&gt;USE pubs&lt;br&gt;GO&lt;br&gt;&lt;br&gt;EXEC sp_deframent_indexes 95.00&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;wbr&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font color="#000080" size="2" face="Verdana"&gt;&lt;b&gt;局限&lt;/b&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font size="2" face="Verdana"&gt;这个过程依赖于的标准是扫描密度，但扫描密度对于那些跨越多个文件的索引来说不是一个有效的标准。如果你的索引确实跨越多个文件，你需要用另一个标准（如Logical Frag）来更改这个存储过程。然而，这类更改超过本文的范围；如果你的索引跨越多个文件，你需要做更多的工作。&lt;/font&gt;&amp;nbsp;&lt;wbr&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font color="#000080" size="2" face="Verdana"&gt;&lt;b&gt;怎样做，做什么？&lt;/b&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font size="2" face="Verdana"&gt;这个存储过程有两个独特的部分。&lt;br&gt;&lt;br&gt;&lt;b&gt;第1阶段&lt;/b&gt;&lt;br&gt;&lt;br&gt;在这部分里，存储过程通过在数据库里的每个表上运行下面的命令来检查索引碎片：&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Courier New"&gt;DBCC SHOWCONTIG (‘tablename') WITH FAST, TABLERESULTS, ALL_INDEXES, NO_INFOMSGS&lt;/font&gt;&lt;font size="2" face="Verdana"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;命令的结果存储在预先创建的临时表#fraglist里。这里就会用到DBCC SHOWCONTIG 语句的WITH TABLERESULTS的好处，仅这一点，真正的节省了太多的以前版本得到同样结果所花费的麻烦和精力。&lt;br&gt;&lt;br&gt;你应该注意该存储过程工作的数据库的表的拥有者是不是dbo，通常是。我发现我最初的版本不起作用，当时一个软件经销商给我们提供的新系统的数据库里就出现了拥有者不是dbo的表。当我在这个新系统上第一次运行我的碎片整理过程时，这个程序的缺点就暴露无遗了，最后彻底失败。这个问题实际上出现在碎片整理阶段（阶段2），因为表在这里要引用表名，而在阶段1，DBCC SHOWCONTIG命令引用的时表的ID即object_id。&lt;br&gt;&lt;br&gt;&lt;b&gt;第2阶段&lt;/b&gt;&lt;br&gt;&lt;br&gt;这儿使用了另一个游标来循环处理表#fraglist里的记录，这些记录是那些扫描密度低于传给存储过程参数的那个阈值的表：&lt;br&gt;&lt;br&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2" face="Courier New"&gt;DBCC DBREINDEX()&lt;/font&gt;&lt;font size="2" face="Verdana"&gt;&lt;br&gt;&lt;br&gt;执行的结果以输出文件的形式显示在表#fraglist的内容之后，以便你能查看表和索引的碎片，正如屏幕上所显示的那样，也可以通过查看DBCC DBREINDEX()执行的结果列表来查看采取的动作。利用这些你也能推导出每个索引重建的时间。&lt;/font&gt;&amp;nbsp;&lt;wbr&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;wbr&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font size="2" face="Verdana"&gt;&lt;font color="#000080"&gt;&lt;b&gt;为什么不使用DBCC INDEXDEFRAG()去减少阻塞？&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;答案是如果你想要或者需要的话就使用它。如果你需要7×24小时的在线操作，那么DBCC DBREINDEX()的排他表锁不适合你的业务，你可以使用它来代替DBCC DBREINDEX()。然而，你需要适当改变一下语法，因为它们是不相同的（谢谢，微软！）。如果你不知道它们的区别，这里有一个简单的摘要：当运行DBCC DBREINDEX()的时候，必须对表有排他锁，因为它是一个完全的，彻头彻尾的索引重建操作。而DBCC INDEXDEFRAG()就不那么完全了，在线的操作试图改善你索引的环境而不至于引起阻塞和中断OLTP（希望如此）。我必须承认我从来不用DBCC INDEXDEFRAG()，因为很幸运的是我的系统不需要严格的7×24在线且要求不阻塞，所以我不敢担保是否有效率。我已经理解它不是和DBCC DBREINDEX一样有效率。然而它的确比什么都没有强，所以如果你的数据库运行一个全球的WEB站点并且从来不能停止，这在今天这也很普遍，那么你需要使用它来代替以改变这个存储过程。&lt;/font&gt;&amp;nbsp;&lt;wbr&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font color="#000080" size="2" face="Verdana"&gt;&lt;b&gt;添加到调度任务里&lt;/b&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font size="2" face="Verdana"&gt;对于有相当经验的DBA来说这是一个相关的微不足道的任务，所以我在这里不会提供它的代码。作为一个独立的任务或在你存在的维护作业里的一个步骤都行。你要确保作业的步骤或作业里的输出结果是一个文本文件以便你能保存和查看所有重要的输出文件。&lt;/font&gt;&amp;nbsp;&lt;wbr&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font color="#000080" size="2" face="Verdana"&gt;&lt;b&gt;结论&lt;/b&gt;&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;font size="2" face="Verdana"&gt;希望这篇文章和代码能帮助你完成一个对数据库服务器维护来说更好的更精确的方法。现在的维护窗口开销很大，所以在影响用户和执行时间上保持最小的同时也提供了有效率和良好的数据库服务器维护。用调度作业实现这个过程，小心的监控它的输出结果。&lt;/font&gt;  &lt;p align="left"&gt;&lt;font size="2" face="Verdana"&gt;&lt;/font&gt;&amp;nbsp; &lt;p align="left"&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/yangze/aggbug/2315877.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yangze/archive/2012/01/07/2315877.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yangze/archive/2011/12/23/2299237.html</id><title type="text">添加wincvs帐号</title><summary type="text">1. 在Windows XP上安装CVS服务器端，cvsnt 2. 在命令行窗口中首先登录cvs，命令如下：cvs -d :pserver:administrator@127.0.0.1:/mycvs login 注：这里要用自己操作系统的管理员用户代替administrator 3: 添加用户cvs -d :pserver:administrator@127.0.0.1:/mycvs passw...</summary><published>2011-12-23T05:04:00Z</published><updated>2011-12-23T05:04:00Z</updated><author><name>小杨随笔</name><uri>http://www.cnblogs.com/yangze/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yangze/archive/2011/12/23/2299237.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yangze/archive/2011/12/23/2299237.html"/><content type="html">&lt;p&gt;1. 在Windows XP上安装CVS服务器端，cvsnt&lt;/p&gt; &lt;p&gt;&lt;br&gt;2. 在命令行窗口中首先登录cvs，命令如下：&lt;br&gt;cvs -d :pserver:administrator@127.0.0.1:/mycvs login 注：这里要用自己操作系统的管理员用户代替administrator&lt;/p&gt; &lt;p&gt;&lt;br&gt;3: 添加用户&lt;br&gt;cvs -d :pserver:administrator@127.0.0.1:/mycvs passwd -a zyx&lt;br&gt;这样就创建了用户名为zyx的账户，此时在cvs的安装目录下会生成一个passwd文件，里边存储着用户名和经过linux加密后的密码。这时候如果用命令cvs -d :pserver:zyx@127.0.0.1:/mycvs login 登录系统，可能会提示zyx是无效的用户（在有的机器上这时用户就成功创建不会提示无效用户，后面这条命令也就无需执行，暂且不知道为何不同的机器有这种差异），需要再执行如下命令将该用户与操作系统用户绑定：&lt;/p&gt; &lt;p&gt;&lt;br&gt;4：cvs -d :pserver:administrator@127.0.0.1:/mycvs passwd -r zyinxin(操作系统用户名) -a zyx　&lt;br&gt;这时passwd文件中的记录变为zyc:***(加密的密码): zyinxin(zyc用户的别名)&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;示例 &lt;/p&gt; &lt;p&gt;第一步：管理员登陆&lt;/p&gt; &lt;p&gt;cvs -d :pserver:administrator@127.0.0.1:/vsatcvs&amp;nbsp; login&lt;/p&gt; &lt;p&gt;第二步：创建管理员帐号&lt;/p&gt; &lt;p&gt;cvs -d:pserver:administrator@127.0.0.1:/VSATCVS passwd &lt;strong&gt;-r administrator &lt;/strong&gt;-a vsat01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;img src="http://www.cnblogs.com/yangze/aggbug/2299237.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yangze/archive/2011/12/23/2299237.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yangze/archive/2011/12/17/2291170.html</id><title type="text">bat 输入想执行的次数 每隔3秒钟循环执行一次应用程序</title><summary type="text">输入执行的次数 每隔3秒钟循环执行一次AppDemo.exe，@echo offecho 请输入执行的次数：set /p input=set /a var=0:1set /a var=var+1echo %var%rem “start”关键字很重要 不然只能关闭现有的 才能打开新的程序start AppDemo.exerem bat里没有sleep 只能用ping 语句代替ping 127.0.0...</summary><published>2011-12-17T08:29:00Z</published><updated>2011-12-17T08:29:00Z</updated><author><name>小杨随笔</name><uri>http://www.cnblogs.com/yangze/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yangze/archive/2011/12/17/2291170.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yangze/archive/2011/12/17/2291170.html"/><content type="html">&lt;pre&gt;&lt;/pre&gt;&lt;pre&gt;输入执行的次数 每隔3秒钟循环执行一次AppDemo.exe，&lt;/pre&gt;&#xD;
&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&#xD;
&lt;p&gt;@echo off&lt;br&gt;echo 请输入执行的次数：&lt;br&gt;set /p input=&lt;br&gt;set /a var=0&lt;br&gt;:1&lt;br&gt;set /a var=var+1&lt;br&gt;echo %var%&lt;br&gt;rem “start”关键字很重要 不然只能关闭现有的 才能打开新的程序&lt;br&gt;start AppDemo.exe&lt;br&gt;rem bat里没有sleep&amp;nbsp; 只能用ping 语句代替&lt;br&gt;ping 127.0.0.1 -n 3&amp;nbsp; &amp;gt;nul &lt;br&gt;rem 注意 批处理中大于符号不能用：“&amp;gt;”,而用"gtr"，&amp;nbsp;&amp;nbsp; if 语句 不能换行&amp;nbsp; 这个错误害死我了。&lt;br&gt;if %var% lss %input% goto 1&lt;br&gt;echo. &amp;amp; pause &lt;/p&gt;&lt;/blockquote&gt;&lt;pre&gt;变量的使用参考我的另一篇文章&lt;/pre&gt;&lt;pre&gt;&lt;a title="http://www.cnblogs.com/yangze/archive/2011/10/20/2218823.html" href="http://www.cnblogs.com/yangze/archive/2011/10/20/2218823.html"&gt;http://www.cnblogs.com/yangze/archive/2011/10/20/2218823.html&lt;/a&gt;&lt;/pre&gt;&lt;pre&gt;rem  是注释关键字&lt;/pre&gt;&lt;pre&gt;利用ping延迟，利用goto达到无限循环。&lt;/pre&gt;&lt;pre&gt;ping -n 30 127.0.0.1  延迟30秒   &lt;/pre&gt;&lt;pre&gt;&amp;gt; nul   输出为空&lt;/pre&gt;&#xD;
&lt;p&gt;&lt;strong&gt;DOS有一些保留设备，如CON、PRN、LPT1、LPT2、COM1-4、NUL等。其中NUL为空。&amp;gt;是命令转向输出。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;比较运算符一览： &lt;br&gt;EQU - 等于 &lt;br&gt;NEQ - 不等于 &lt;br&gt;LSS - 小于 &lt;br&gt;LEQ - 小于或等于 &lt;br&gt;GTR - 大于 &lt;br&gt;GEQ - 大于或等于 &#xD;
&lt;img src="http://www.cnblogs.com/yangze/aggbug/2291170.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yangze/archive/2011/12/17/2291170.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yangze/archive/2011/12/01/2270432.html</id><title type="text">如何生成静态页面的五种方案</title><summary type="text">方案1： Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&amp;gt;///&amp;lt;summary&amp;gt;/// 传入URL返回网页的html代码///&amp;lt;/summary&amp;gt;///&amp;lt;param name=&amp;quot;Url&amp;quot;&amp;gt;URL&amp;lt;/param&amp;gt;///&amp;lt;returns&amp;gt;&amp;lt;/retu...</summary><published>2011-12-01T05:24:00Z</published><updated>2011-12-01T05:24:00Z</updated><author><name>小杨随笔</name><uri>http://www.cnblogs.com/yangze/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yangze/archive/2011/12/01/2270432.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yangze/archive/2011/12/01/2270432.html"/><content type="html">方案1：&lt;br&gt;&lt;/strong&gt; &lt;p&gt;&lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"&gt;&lt;!--&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
--&gt;&lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; 传入URL返回网页的html代码&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;param name="Url"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;URL&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; getUrltoHtml(&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; Url)&lt;br&gt;{&lt;br&gt;errorMsg &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;""&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;try&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;{&lt;br&gt;System.Net.WebRequest wReq &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; System.Net.WebRequest.Create(Url);&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; Get the response instance.&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;System.Net.WebResponse wResp &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;wReq.GetResponse();&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; Read an HTTP-specific property&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;if (wResp.GetType() ==HttpWebResponse)&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;{&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;DateTime updated&amp;nbsp; =((System.Net.HttpWebResponse)wResp).LastModified;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;}&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; Get the response stream.&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;System.IO.Stream respStream&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; wResp.GetResponseStream();&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; Dim reader As StreamReader = New StreamReader(respStream)&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;System.IO.StreamReader reader &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;gb2312&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;));&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp; reader.ReadToEnd();&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;catch&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;(System.Exception ex)&lt;br&gt;{&lt;br&gt;errorMsg &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; ex.Message ;&lt;br&gt;}&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;""&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;p&gt;你可以用这个函数获取网页的客户端的html代码，然后保存到.html文件里就可以了。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;方案2：&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;生成单个的静态页面不是难点，难的是各个静态页面间的关联和链接如何保持完整；特别是在页面频繁更新、修改、或删除的情况下； &lt;/p&gt; &lt;p&gt;像阿里巴巴的页面也全部是html的，估计用的是地址映射的功能关于地址映射可参考：&lt;a href="http://www.easewe.com/Article/ShowArticle.aspx?article=131" target="_blank"&gt;http://www.easewe.com/Article/ShowArticle.aspx?article=131&lt;/a&gt; &lt;/p&gt; &lt;p&gt;可以看看这个页面，分析一下他的“竞价倒计时”功能&lt;a href="http://info.china.alibaba.com/news/subject/v1-s5011580.html?head=top4&amp;amp;Bidding=home5" target="_blank"&gt;http://info.china.alibaba.com/news/subject/v1-s5011580.html?head=top4&amp;amp;Bidding=home5&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;ASP.Net生成静态HTML页&lt;/strong&gt;&lt;br&gt;在Asp中实现的生成静态页用到的FileSystemObject对象!&lt;br&gt;在.Net中涉及此类操作的是System.IO &lt;br&gt;以下是程序代码 注:此代码非原创!参考别人代码 &lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"&gt;&lt;!--&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
--&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;生成HTML页&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;bool&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; WriteFile(&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; strText,&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; strContent,&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; strAuthor)&lt;br&gt;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; path &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; HttpContext.Current.Server.MapPath(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;/news/&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp; Encoding code &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; Encoding.GetEncoding(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;gb2312&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; 读取模板文件&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; temp &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; HttpContext.Current.Server.MapPath(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;/news/text.html&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp; StreamReader sr&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp; StreamWriter sw&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; str&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;""&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;; &lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;try&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sr &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; StreamReader(temp, code);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; sr.ReadToEnd(); &lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; 读取文件&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;catch&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;(Exception exp)&lt;br&gt;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext.Current.Response.Write(exp.Message);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext.Current.Response.End();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sr.Close();&lt;br&gt;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; htmlfilename&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;DateTime.Now.ToString(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;yyyyMMddHHmmss&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;.html&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; 替换内容&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; 这时,模板文件已经读入到名称为str的变量中了&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&amp;nbsp; str &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;str.Replace(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;ShowArticle&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;,strText); &lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;模板页中的ShowArticle&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&amp;nbsp; str &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; str.Replace(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;biaoti&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;,strText);&lt;br&gt;&amp;nbsp;&amp;nbsp; str &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; str.Replace(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;content&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;,strContent);&lt;br&gt;&amp;nbsp;&amp;nbsp; str &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; str.Replace(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;author&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;,strAuthor);&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; 写文件&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;try&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; StreamWriter(path &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; htmlfilename , &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;, code);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw.Write(str);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw.Flush();&lt;br&gt;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;catch&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;(Exception ex)&lt;br&gt;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext.Current.Response.Write(ex.Message);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpContext.Current.Response.End();&lt;br&gt;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;finally&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw.Close();&lt;br&gt;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;&lt;br&gt;此函数放在Conn.CS基类中了在添加新闻的代码中引用 注：工程名为Hover&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;(Hover.Conn.WriteFilethis.Title.Text.ToString),&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;.Content.Text.ToString),&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;.Author.Text.ToString)))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;添加成功&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;else&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;生成HTML出错!&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;p&gt;模板页Text.html代码 &lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"&gt;&lt;!--&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
--&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: rgb(255,0,255)"&gt;DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;HTML&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;HEAD&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;title&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;ShowArticle&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;title&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;body&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;biaoti&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;br&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;content&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;br&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;author&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;body&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;HTML&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;biaoti&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;br&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;content&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;br&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;author&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;body&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;HTML&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; &lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;p&gt;提示添加成功后会出以当前时间为文件名的html文件!上面只是把传递过来的几个参数直接写入了HTML文件中,在实际应用中需要先添加数据库，然后再写入HTML文件 &lt;/p&gt; &lt;p&gt;&lt;strong&gt;方案3：&lt;/strong&gt;给一个客户端参考的例子（SJ） &lt;/p&gt; &lt;p&gt;它的作用在于以客户端的方式获取某个页面的代码，然后可以做为其他用途，本例是直接输出 &lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"&gt;&lt;!--&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
--&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; oXmlHttp &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; ActiveXObject(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;Microsoft.XMLHTTP&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oXmlHttp.open(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;GET&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;http://www.webjx.com&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;, &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; oXmlHttp.send()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; oStream &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; ActiveXObject(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;ADODB.Stream&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;(oStream &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;==&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alert(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;您的机器不支持ADODB.Stream.&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;else&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oStream.Type&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oStream.Mode&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;3&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oStream.Open() ;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oStream.Write(oXmlHttp.responseBody);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oStream.Position&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oStream.Type&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;2&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oStream.Charset&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;gb2312&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; result&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; oStream.ReadText();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oStream.Close();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; oStream &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;br&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; aa &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; window.open(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;""&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;""&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.write(result);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aa.document.write(result);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;script&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;方案4：学csdn一样。用xml保存数据，模版XSL也只有一个文件。&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;使用xml来保存数据，使用xsl来定义模板并且生称数据。可以通过xsl来很方便的在客户端或者服务段显示数据。如果要生成静态叶面那更简单了。去查一下.net的xml类包问题解决。 &lt;/p&gt; &lt;p&gt;优点：可以方便快速转换成你想要的格式和内容。&lt;br&gt;缺点：需要学习更多的内容，不好入门。 &lt;/p&gt; &lt;p&gt;&lt;strong&gt;方案5：&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;思路一： &lt;/p&gt; &lt;p&gt;1. 利用如&lt;/p&gt; &lt;p&gt;这样的工具生成html格式的模板，在需要添加格式的地方加入特殊标记(如$htmlformat$),动态生成文件时利用代码读取此模板，然后获得前台输入的内容，添加到此模板的标记位置中，生成新文件名后写入磁盘，写入后再向数据库中写入相关数据。&lt;br&gt;2. 使用后台代码硬编码Html文件，可以使用HtmlTextWriter类来写html文件。 &lt;br&gt;&lt;/p&gt; &lt;p&gt;优点: &lt;/p&gt; &lt;p&gt;1. 可以建立非常复杂的页面，利用包含js文件的方法，在js文件内加入document.write()方法可以在所有页面内加入如页面头，广告等内容。 &lt;/p&gt; &lt;p&gt;2. 静态html文件利用MS Windows2000的Index Server可以建立全文搜索引擎，利用asp.net可以以DataTable的方式得到搜索结果。而Win2000的Index服务无法查找xml文件的内容。如果包括了数据库搜索与Index索引双重查找，那么此搜索功能将非常强大。 &lt;/p&gt; &lt;p&gt;3. 节省服务器的负荷，请求一个静态的html文件比一个aspx文件服务器资源节省许多。 &lt;/p&gt; &lt;p&gt;缺点: &lt;/p&gt; &lt;p&gt;思路二： 如果用硬编码的方式，工作量非常大，需要非常多的html代码。调试困难。而且使用硬编码生成的html样式无法修改，如果网站更换样式，那么必须得重新编码，给后期带来巨大的工作量。 &lt;/p&gt; &lt;p&gt;因此这里采用的是第一种思路 &lt;/p&gt; &lt;p&gt;示列代码 &lt;/p&gt; &lt;p&gt;1.定义(template.htm)html模板页面&lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"&gt;&lt;!--&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
--&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;html&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;head&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;title&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;title&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;meta &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;http-equiv&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="Content-Type"&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt; content&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="text/html; charset=gb2312"&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;head&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;body &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;table &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;$htmlformat[0] height&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="100%"&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt; border&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="0"&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt; width&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="100%"&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt; cellpadding&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="10"&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt; cellspacing &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="0"&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt; bgcolor&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="#eeeeee"&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt; style&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="border:1px solid #000000"&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;td &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;width&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="100%"&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt; valign&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="middle"&lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt; align&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="left"&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;span &lt;/span&gt;&lt;span style="color: rgb(255,0,0)"&gt;style&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;="color: $htmlformat[1];font-size: $htmlformat[2]"&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;$htmlformat[3]&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;span&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;td&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;tr&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;table&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;body&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;html&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;2.asp.net代码： &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt; &lt;div style="border-bottom: rgb(204,204,204) 1px solid; border-left: rgb(204,204,204) 1px solid; padding-bottom: 4px; background-color: rgb(238,238,238); padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; border-top: rgb(204,204,204) 1px solid; border-right: rgb(204,204,204) 1px solid; padding-top: 4px"&gt;&lt;!--&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br /&gt;&#xD;
&lt;br /&gt;&#xD;
--&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;---------------------读html模板页面到stringbuilder对象里----&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;[] format&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;4&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;];&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;定义和htmlyem标记数目一致的数组&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;StringBuilder htmltext&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; StringBuilder();&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;try&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; (StreamReader sr &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; StreamReader(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;存放模板页面的路径和页面名&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String line;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; ((line &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; sr.ReadLine()) &lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;!=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; htmltext.Append(line);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sr.Close();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;catch&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;＜Script＞alert('读取文件错误')＜/Script＞&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;);&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;---------------------给标记数组赋值------------&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;format[&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;]&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;background=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;/&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;blog&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;/&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;bg.jpg&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;""&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;背景图片&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;format[&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;1&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;]&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;#990099&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;字体颜色&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;format[&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;2&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;]&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;150px&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;字体大小&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;format[&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;3&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;]&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;＜marquee＞生成的模板html页面＜/marquee＞&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;文字说&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;----------替换htm里的标记为你想加的内容&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;for&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; i&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;i＜&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;4&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;;i&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;++&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; htmltext.Replace(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;$htmlformat[&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;i&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;+&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;]&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;,format[i]);&lt;br&gt;}&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;//&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt;----------生成htm文件------------------――&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;try&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;{&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; using&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;(StreamWriter sw&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt; StreamWriter(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;存放路径和页面名&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;,System.Text.Encoding.GetEncoding(&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;GB2312&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;)))&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw.WriteLine(htmltext);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw.Flush();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw.Close();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;catch&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Response.Write (&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;The file could not be wirte:&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;"&lt;/span&gt;&lt;span style="color: rgb(0,0,0)"&gt;);&lt;br&gt;} &lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt; &lt;p&gt;小结 &lt;br&gt;用此方法可以方便的生成html文件。程序使用了是循环替换，因此对需替换大量元素的模板速度非常快。&lt;/p&gt;&lt;br&gt;转自：&lt;a href="http://www.cnblogs.com/dynasty/archive/2006/01/23/322027.aspx" target="_blank"&gt;http://www.cnblogs.com/dynasty/archive/2006/01/23/322027.aspx&lt;/a&gt;，稍作格式修改。&lt;img src="http://www.cnblogs.com/yangze/aggbug/2270432.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yangze/archive/2011/12/01/2270432.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yangze/archive/2011/11/29/2267907.html</id><title type="text">NSString+NSMutableString+NSValue+NSAraay 详细用法 举例说明</title><summary type="text">//一、NSString /*----------------创建字符串的方法----------------*///1、创建常量字符串。NSString *astring = @&amp;quot;This is a String!&amp;quot;;//2、创建空字符串，给予赋值。NSString *astring = [[NSString alloc] init];astring = @&amp;quot;This is a String!&amp;quot;;[astring release];NSLog(@&amp;quot;astring:%@&amp;quot;,astring);//NSString *astring = </summary><published>2011-11-29T09:33:00Z</published><updated>2011-11-29T09:33:00Z</updated><author><name>小杨随笔</name><uri>http://www.cnblogs.com/yangze/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yangze/archive/2011/11/29/2267907.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yangze/archive/2011/11/29/2267907.html"/><content type="html">&lt;p&gt;//一、NSString&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;/*----------------创建字符串的方法----------------*/&lt;/p&gt;&#xD;
&lt;p&gt;//1、创建常量字符串。&lt;br /&gt;NSString *astring = @"This is a String!";&lt;/p&gt;&#xD;
&lt;p&gt;//2、创建空字符串，给予赋值。&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] init];&lt;br /&gt;astring = @"This is a String!";&lt;br /&gt;[astring release];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;//&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] init];&lt;br /&gt;NSLog(@"0x%.8x", astring);&lt;br /&gt;astring=@"This is a String!";&lt;br /&gt;NSLog(@"0x%.8x", astring);&lt;br /&gt;[astring release];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;/p&gt;&#xD;
&lt;p&gt;//3、在以上方法中，提升速度:initWithString方法&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;//4、用标准c创建字符串:initWithCString方法&lt;/p&gt;&#xD;
&lt;p&gt;char *Cstring = "This is a String!";&lt;br /&gt;NSString *astring = [[NSString alloc] initWithCString:Cstring];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;//5、创建格式化字符串:占位符（由一个%加一个字符组成）&lt;/p&gt;&#xD;
&lt;p&gt;int i = 1;&lt;br /&gt;int j = 2;&lt;br /&gt;NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%d.This is %i string!",i,j]];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;//6、创建临时字符串&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring;&lt;br /&gt;astring = [NSString stringWithCString:"This is a temporary string"];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------从文件读取字符串:initWithContentsOfFile方法----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *path = @"astring.text";&lt;br /&gt;NSString *astring = [[NSString alloc] initWithContentsOfFile:path];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------写字符串到文件:writeToFile方法----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;NSString *path = @"astring.text";&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;[astring writeToFile: path atomically: YES];&lt;br /&gt;[astring release];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------比较两个字符串----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//用C比较:strcmp函数&lt;/p&gt;&#xD;
&lt;p&gt;char string1[] = "string!";&lt;br /&gt;char string2[] = "string!";&lt;br /&gt;if(strcmp(string1, string2) = = 0)&lt;br /&gt;{&lt;br /&gt;NSLog(@"1");&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//isEqualToString方法&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSString *astring01 = @"This is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 isEqualToString:astring02];&lt;br /&gt;NSLog(@"result:%d",result);&lt;/p&gt;&#xD;
&lt;p&gt;//compare方法(comparer返回的三种值)&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSString *astring01 = @"This is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;BOOL result = [astring01 compare:astring02] = = NSOrderedSame;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSOrderedSame判断两者内容是否相同&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring01 = @"This is a String!";&lt;br /&gt;NSString *astring02 = @"this is a String!";&lt;br /&gt;BOOL result = [astring01 compare:astring02] = = NSOrderedAscending;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&lt;br /&gt;//NSOrderedAscending判断两对象值的大小(按字母顺序进行比较，astring02大于astring01为真)&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring01 = @"this is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 compare:astring02] = = NSOrderedDescending;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSOrderedDescending判断两对象值的大小(按字母顺序进行比较，astring02小于astring01为真)&lt;/p&gt;&#xD;
&lt;p&gt;//不考虑大小写比较字符串1&lt;br /&gt;NSString *astring01 = @"this is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 caseInsensitiveCompare:astring02] = = NSOrderedSame;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSOrderedDescending判断两对象值的大小(按字母顺序进行比较，astring02小于astring01为真)&lt;/p&gt;&#xD;
&lt;p&gt;//不考虑大小写比较字符串2&lt;br /&gt;NSString *astring01 = @"this is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 compare:astring02&lt;br /&gt;options:NSCaseInsensitiveSearch | NSNumericSearch] = = NSOrderedSame;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较，区分大小写 NSNumericSearch:比较字符串的字符个数，而不是字符值。&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------改变字符串的大小写----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *string1 = @"A String"; &lt;br /&gt;NSString *string2 = @"String"; &lt;br /&gt;NSLog(@"string1:%@",[string1 uppercaseString]);//大写&lt;br /&gt;NSLog(@"string2:%@",[string2 lowercaseString]);//小写&lt;br /&gt;NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------在串中搜索子串----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = @"string";&lt;br /&gt;NSRange range = [string1 rangeOfString:string2];&lt;br /&gt;int location = range.location;&lt;br /&gt;int leight = range.length;&lt;br /&gt;NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%i,Leight:%i",location,leight]];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------抽取子串 ----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//-substringToIndex: 从字符串的开头一直截取到指定的位置，但不包括该位置的字符&lt;br /&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = [string1 substringToIndex:3];&lt;br /&gt;NSLog(@"string2:%@",string2);&lt;/p&gt;&#xD;
&lt;p&gt;//-substringFromIndex: 以指定位置开始（包括指定位置的字符），并包括之后的全部字符&lt;br /&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = [string1 substringFromIndex:3];&lt;br /&gt;NSLog(@"string2:%@",string2);&lt;/p&gt;&#xD;
&lt;p&gt;//-substringWithRange: //按照所给出的位置，长度，任意地从字符串中截取子串&lt;br /&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];&lt;br /&gt;NSLog(@"string2:%@",string2);&lt;/p&gt;&#xD;
&lt;p&gt;//扩展路径&lt;/p&gt;&#xD;
&lt;p&gt;NSString *Path = @"~/NSData.txt";&lt;br /&gt;NSString *absolutePath = [Path stringByExpandingTildeInPath];&lt;br /&gt;NSLog(@"absolutePath:%@",absolutePath);&lt;br /&gt;NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);&lt;/p&gt;&#xD;
&lt;p&gt;//文件扩展名&lt;br /&gt;NSString *Path = @"~/NSData.txt";&lt;br /&gt;NSLog(@"Extension:%@",[Path pathExtension]);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSMutableString&lt;br /&gt;*******************************************************************************************/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------给字符串分配容量----------------*/&lt;br /&gt;//stringWithCapacity:&lt;br /&gt;NSMutableString *String;&lt;br /&gt;String = [NSMutableString stringWithCapacity:40];&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------在已有字符串后面添加字符----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//appendString: and appendFormat:&lt;/p&gt;&#xD;
&lt;p&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;//[String1 appendString:@", I will be adding some character"];&lt;br /&gt;[String1 appendFormat:[NSString stringWithFormat:@", I will be adding some character"]];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;br /&gt;*/&lt;/p&gt;&#xD;
&lt;p&gt;/*--------在已有字符串中按照所给出范围和长度删除字符------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;/*&lt;br /&gt;//deleteCharactersInRange:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 deleteCharactersInRange:NSMakeRange(0, 5)];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------在已有字符串后面在所指定的位置中插入给出的字符串------*/&lt;/p&gt;&#xD;
&lt;p&gt;//-insertString: atIndex:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 insertString:@"Hi! " atIndex:0];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------将已有的空符串换成其它的字符串------*/&lt;/p&gt;&#xD;
&lt;p&gt;//-setString:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 setString:@"Hello Word!"];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------按照所给出的范围，和字符串替换的原有的字符------*/&lt;/p&gt;&#xD;
&lt;p&gt;//-setString:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*-------------判断字符串内是否还包含别的字符串(前缀，后缀)-------------*/&lt;br /&gt;//01：检查字符串是否以另一个字符串开头- (BOOL) hasPrefix: (NSString *) aString;&lt;br /&gt;NSString *String1 = @"NSStringInformation.txt";&lt;br /&gt;[String1 hasPrefix:@"NSString"] = = 1 ?&amp;nbsp; NSLog(@"YES") : NSLog(@"NO");&lt;br /&gt;[String1 hasSuffix:@".txt"] = = 1 ?&amp;nbsp; NSLog(@"YES") : NSLog(@"NO");&lt;/p&gt;&#xD;
&lt;p&gt;//02：查找字符串某处是否包含其它字符串 - (NSRange) rangeOfString: (NSString *) aString，这一点前面在串中搜索子串用到过;&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSArray&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------------------创建数组------------------------------*/&lt;br /&gt;//NSArray *array = [[NSArray alloc] initWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",@"Four",nil];&lt;/p&gt;&#xD;
&lt;p&gt;self.dataArray = array;&lt;br /&gt;[array release];&lt;/p&gt;&#xD;
&lt;p&gt;//- (unsigned) Count;数组所包含对象个数；&lt;br /&gt;NSLog(@"self.dataArray cound:%d",[self.dataArray count]);&lt;/p&gt;&#xD;
&lt;p&gt;//- (id) objectAtIndex: (unsigned int) index;获取指定索引处的对象;&lt;br /&gt;NSLog(@"self.dataArray cound 2:%@",[self.dataArray objectAtIndex:2]);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------------------从一个数组拷贝数据到另一数组(可变数级)----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//arrayWithArray:&lt;br /&gt;//NSArray *array1 = [[NSArray alloc] init];&lt;br /&gt;NSMutableArray *MutableArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *array = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",nil];&lt;br /&gt;NSLog(@"array:%@",array);&lt;br /&gt;MutableArray = [NSMutableArray arrayWithArray:array];&lt;br /&gt;NSLog(@"MutableArray:%@",MutableArray);&lt;/p&gt;&#xD;
&lt;p&gt;array1 = [NSArray arrayWithArray:array];&lt;br /&gt;NSLog(@"array1:%@",array1);&lt;/p&gt;&#xD;
&lt;p&gt;//Copy&lt;/p&gt;&#xD;
&lt;p&gt;//id obj;&lt;br /&gt;NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];&lt;/p&gt;&#xD;
&lt;p&gt;NSLog(@"oldArray:%@",oldArray);&lt;br /&gt;for(int i = 0; i &amp;lt; [oldArray count]; i++)&lt;br /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;obj = [[oldArray objectAtIndex:i] copy];&lt;br /&gt;[newArray addObject: obj];&lt;br /&gt;}&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;/p&gt;&#xD;
&lt;p&gt;//NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"oldArray:%@",oldArray);&lt;/p&gt;&#xD;
&lt;p&gt;for(id obj in oldArray)&lt;br /&gt;{&lt;br /&gt;[newArray addObject: obj];&lt;br /&gt;}&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//Deep copy&lt;/p&gt;&#xD;
&lt;p&gt;//NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"oldArray:%@",oldArray);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;newArray = (NSMutableArray*)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFPropertyListRef)oldArray, kCFPropertyListMutableContainers);&lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//Copy and sort&lt;/p&gt;&#xD;
&lt;p&gt;//NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"b",@"a",@"e",@"d",@"c",@"f",@"h",@"g",nil];&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"oldArray:%@",oldArray);&lt;br /&gt;NSEnumerator *enumerator;&lt;br /&gt;enumerator = [oldArray objectEnumerator];&lt;br /&gt;id obj;&lt;br /&gt;while(obj = [enumerator nextObject])&lt;br /&gt;{&lt;br /&gt;[newArray addObject: obj];&lt;br /&gt;}&lt;br /&gt;[newArray sortUsingSelector:@selector(compare:)];&lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------------------切分数组------------------------------*/&lt;/p&gt;&#xD;
&lt;p&gt;//从字符串分割到数组－ componentsSeparatedByString:&lt;br /&gt;NSString *string = [[NSString alloc] initWithString:@"One,Two,Three,Four"];&lt;br /&gt;NSLog(@"string:%@",string);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSArray *array = [string componentsSeparatedByString:@","];&lt;br /&gt;NSLog(@"array:%@",array);&lt;br /&gt;[string release];&lt;/p&gt;&#xD;
&lt;p&gt;//从数组合并元素到字符串- componentsJoinedByString:&lt;br /&gt;NSArray *array = [[NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];&lt;br /&gt;NSString *string = [array componentsJoinedByString:@","];&lt;br /&gt;NSLog(@"string:%@",string);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSMutableArray&lt;br /&gt;*******************************************************************************************/&lt;br /&gt;/*---------------给数组分配容量----------------*/&lt;br /&gt;//NSArray *array;&lt;br /&gt;array = [NSMutableArray arrayWithCapacity:20];&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------在数组末尾添加对象----------------*/&lt;br /&gt;//- (void) addObject: (id) anObject;&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;[array addObject:@"Four"];&lt;br /&gt;NSLog(@"array:%@",array);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------删除数组中指定索引处对象----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//-(void) removeObjectAtIndex: (unsigned) index;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;[array removeObjectAtIndex:1];&lt;br /&gt;NSLog(@"array:%@",array);&lt;/p&gt;&#xD;
&lt;p&gt;/*-------------数组枚举---------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//- (NSEnumerator *)objectEnumerator;从前向后&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;NSEnumerator *enumerator;&lt;br /&gt;enumerator = [array objectEnumerator];&lt;/p&gt;&#xD;
&lt;p&gt;id thingie;&lt;br /&gt;while (thingie = [enumerator nextObject]) {&lt;br /&gt;NSLog(@"thingie:%@",thingie);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//- (NSEnumerator *)reverseObjectEnumerator;从后向前&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;NSEnumerator *enumerator;&lt;br /&gt;enumerator = [array reverseObjectEnumerator];&lt;/p&gt;&#xD;
&lt;p&gt;id object;&lt;br /&gt;while (object = [enumerator nextObject]) {&lt;br /&gt;NSLog(@"object:%@",object);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;for(NSString *string in array)&lt;br /&gt;{&lt;br /&gt;NSLog(@"string:%@",string);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSDictionary&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*------------------------------------创建字典------------------------------------*/&lt;br /&gt;//- (id) initWithObjectsAndKeys;&lt;/p&gt;&#xD;
&lt;p&gt;//NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"Two",@"2",@"Three",@"3",nil];&lt;br /&gt;NSString *string = [dictionary objectForKey:@"One"];&lt;br /&gt;NSLog(@"string:%@",string);&lt;br /&gt;NSLog(@"dictionary:%@",dictionary);&lt;br /&gt;[dictionary release];&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSMutableDictionary&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*------------------------------------创建可变字典------------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//创建&lt;br /&gt;NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];&lt;/p&gt;&#xD;
&lt;p&gt;//添加字典&lt;br /&gt;[dictionary setObject:@"One" forKey:@"1"];&lt;br /&gt;[dictionary setObject:@"Two" forKey:@"2"];&lt;br /&gt;[dictionary setObject:@"Three" forKey:@"3"];&lt;br /&gt;[dictionary setObject:@"Four" forKey:@"4"];&lt;br /&gt;NSLog(@"dictionary:%@",dictionary);&lt;/p&gt;&#xD;
&lt;p&gt;//删除指定的字典&lt;br /&gt;[dictionary removeObjectForKey:@"3"];&lt;br /&gt;NSLog(@"dictionary:%@",dictionary);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSValue（对任何对象进行包装）&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------------------------将NSRect放入NSArray中------------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//将NSRect放入NSArray中&lt;br /&gt;NSMutableArray *array = [[NSMutableArray alloc] init];&lt;br /&gt;NSValue *value;&lt;br /&gt;CGRect rect = CGRectMake(0, 0, 320, 480);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;value = [NSValue valueWithBytes:&amp;amp;rect objCType:@encode(CGRect)];&lt;br /&gt;[array addObject:value];&lt;br /&gt;NSLog(@"array:%@",array);&lt;/p&gt;&#xD;
&lt;p&gt;//从Array中提取&lt;br /&gt;value = [array objectAtIndex:0];&lt;br /&gt;[value getValue:&amp;amp;rect];&lt;br /&gt;NSLog(@"value:%@",value);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;从目录搜索扩展名为jpg的文件&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;//NSFileManager *fileManager = [NSFileManager defaultManager];&lt;br /&gt;NSString *home;&lt;br /&gt;home = @"../Users/";&lt;/p&gt;&#xD;
&lt;p&gt;NSDirectoryEnumerator *direnum;&lt;br /&gt;direnum = [fileManager enumeratorAtPath: home];&lt;/p&gt;&#xD;
&lt;p&gt;NSMutableArray *files = [[NSMutableArray alloc] init];&lt;/p&gt;&#xD;
&lt;p&gt;//枚举&lt;br /&gt;NSString *filename;&lt;br /&gt;while (filename = [direnum nextObject]) {&lt;br /&gt;if([[filename pathExtension] hasSuffix:@"jpg"]){&lt;br /&gt;[files addObject:filename];&lt;br /&gt;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;br /&gt;//for(NSString *filename in direnum)&lt;br /&gt;//{&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; if([[filename pathExtension] isEqualToString:@"jpg"]){&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [files addObject:filename];&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;//}&lt;br /&gt;NSLog(@"files:%@",files);&lt;/p&gt;&#xD;
&lt;p&gt;//枚举&lt;br /&gt;NSEnumerator *filenum;&lt;br /&gt;filenum = [files objectEnumerator];&lt;br /&gt;while (filename = [filenum nextObject]) {&lt;br /&gt;NSLog(@"filename:%@",filename);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;br /&gt;//for(id object in files)&lt;br /&gt;//{&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; NSLog(@"object:%@",object);&lt;br /&gt;//}&lt;br /&gt;/*******************************************************************************************&lt;br /&gt;NSString&lt;br /&gt;*******************************************************************************************/&lt;br /&gt;//一、NSString&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;/*----------------创建字符串的方法----------------*/&lt;/p&gt;&#xD;
&lt;p&gt;//1、创建常量字符串。&lt;br /&gt;NSString *astring = @"This is a String!";&lt;/p&gt;&#xD;
&lt;p&gt;//2、创建空字符串，给予赋值。&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] init];&lt;br /&gt;astring = @"This is a String!";&lt;br /&gt;[astring release];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;//&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] init];&lt;br /&gt;NSLog(@"0x%.8x", astring);&lt;br /&gt;astring=@"This is a String!";&lt;br /&gt;NSLog(@"0x%.8x", astring);&lt;br /&gt;[astring release];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;/p&gt;&#xD;
&lt;p&gt;//3、在以上方法中，提升速度:initWithString方法&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;//4、用标准c创建字符串:initWithCString方法&lt;/p&gt;&#xD;
&lt;p&gt;char *Cstring = "This is a String!";&lt;br /&gt;NSString *astring = [[NSString alloc] initWithCString:Cstring];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;//5、创建格式化字符串:占位符（由一个%加一个字符组成）&lt;/p&gt;&#xD;
&lt;p&gt;int i = 1;&lt;br /&gt;int j = 2;&lt;br /&gt;NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%d.This is %i string!",i,j]];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;//6、创建临时字符串&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring;&lt;br /&gt;astring = [NSString stringWithCString:"This is a temporary string"];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------从文件读取字符串:initWithContentsOfFile方法----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *path = @"astring.text";&lt;br /&gt;NSString *astring = [[NSString alloc] initWithContentsOfFile:path];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------写字符串到文件:writeToFile方法----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;NSString *path = @"astring.text";&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;[astring writeToFile: path atomically: YES];&lt;br /&gt;[astring release];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------比较两个字符串----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//用C比较:strcmp函数&lt;/p&gt;&#xD;
&lt;p&gt;char string1[] = "string!";&lt;br /&gt;char string2[] = "string!";&lt;br /&gt;if(strcmp(string1, string2) = = 0)&lt;br /&gt;{&lt;br /&gt;NSLog(@"1");&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//isEqualToString方法&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSString *astring01 = @"This is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 isEqualToString:astring02];&lt;br /&gt;NSLog(@"result:%d",result);&lt;/p&gt;&#xD;
&lt;p&gt;//compare方法(comparer返回的三种值)&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSString *astring01 = @"This is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;BOOL result = [astring01 compare:astring02] = = NSOrderedSame;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSOrderedSame判断两者内容是否相同&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring01 = @"This is a String!";&lt;br /&gt;NSString *astring02 = @"this is a String!";&lt;br /&gt;BOOL result = [astring01 compare:astring02] = = NSOrderedAscending;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&lt;br /&gt;//NSOrderedAscending判断两对象值的大小(按字母顺序进行比较，astring02大于astring01为真)&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring01 = @"this is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 compare:astring02] = = NSOrderedDescending;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSOrderedDescending判断两对象值的大小(按字母顺序进行比较，astring02小于astring01为真)&lt;/p&gt;&#xD;
&lt;p&gt;//不考虑大小写比较字符串1&lt;br /&gt;NSString *astring01 = @"this is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 caseInsensitiveCompare:astring02] = = NSOrderedSame;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSOrderedDescending判断两对象值的大小(按字母顺序进行比较，astring02小于astring01为真)&lt;/p&gt;&#xD;
&lt;p&gt;//不考虑大小写比较字符串2&lt;br /&gt;NSString *astring01 = @"this is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 compare:astring02&lt;br /&gt;options:NSCaseInsensitiveSearch | NSNumericSearch] = = NSOrderedSame;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较，区分大小写 NSNumericSearch:比较字符串的字符个数，而不是字符值。&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------改变字符串的大小写----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *string1 = @"A String"; &lt;br /&gt;NSString *string2 = @"String"; &lt;br /&gt;NSLog(@"string1:%@",[string1 uppercaseString]);//大写&lt;br /&gt;NSLog(@"string2:%@",[string2 lowercaseString]);//小写&lt;br /&gt;NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------在串中搜索子串----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = @"string";&lt;br /&gt;NSRange range = [string1 rangeOfString:string2];&lt;br /&gt;int location = range.location;&lt;br /&gt;int leight = range.length;&lt;br /&gt;NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%i,Leight:%i",location,leight]];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------抽取子串 ----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//-substringToIndex: 从字符串的开头一直截取到指定的位置，但不包括该位置的字符&lt;br /&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = [string1 substringToIndex:3];&lt;br /&gt;NSLog(@"string2:%@",string2);&lt;/p&gt;&#xD;
&lt;p&gt;//-substringFromIndex: 以指定位置开始（包括指定位置的字符），并包括之后的全部字符&lt;br /&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = [string1 substringFromIndex:3];&lt;br /&gt;NSLog(@"string2:%@",string2);&lt;/p&gt;&#xD;
&lt;p&gt;//-substringWithRange: //按照所给出的位置，长度，任意地从字符串中截取子串&lt;br /&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];&lt;br /&gt;NSLog(@"string2:%@",string2);&lt;/p&gt;&#xD;
&lt;p&gt;//扩展路径&lt;/p&gt;&#xD;
&lt;p&gt;NSString *Path = @"~/NSData.txt";&lt;br /&gt;NSString *absolutePath = [Path stringByExpandingTildeInPath];&lt;br /&gt;NSLog(@"absolutePath:%@",absolutePath);&lt;br /&gt;NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);&lt;/p&gt;&#xD;
&lt;p&gt;//文件扩展名&lt;br /&gt;NSString *Path = @"~/NSData.txt";&lt;br /&gt;NSLog(@"Extension:%@",[Path pathExtension]);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSMutableString&lt;br /&gt;*******************************************************************************************/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------给字符串分配容量----------------*/&lt;br /&gt;//stringWithCapacity:&lt;br /&gt;NSMutableString *String;&lt;br /&gt;String = [NSMutableString stringWithCapacity:40];&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------在已有字符串后面添加字符----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//appendString: and appendFormat:&lt;/p&gt;&#xD;
&lt;p&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;//[String1 appendString:@", I will be adding some character"];&lt;br /&gt;[String1 appendFormat:[NSString stringWithFormat:@", I will be adding some character"]];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;br /&gt;*/&lt;/p&gt;&#xD;
&lt;p&gt;/*--------在已有字符串中按照所给出范围和长度删除字符------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;/*&lt;br /&gt;//deleteCharactersInRange:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 deleteCharactersInRange:NSMakeRange(0, 5)];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------在已有字符串后面在所指定的位置中插入给出的字符串------*/&lt;/p&gt;&#xD;
&lt;p&gt;//-insertString: atIndex:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 insertString:@"Hi! " atIndex:0];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------将已有的空符串换成其它的字符串------*/&lt;/p&gt;&#xD;
&lt;p&gt;//-setString:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 setString:@"Hello Word!"];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------按照所给出的范围，和字符串替换的原有的字符------*/&lt;/p&gt;&#xD;
&lt;p&gt;//-setString:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*-------------判断字符串内是否还包含别的字符串(前缀，后缀)-------------*/&lt;br /&gt;//01：检查字符串是否以另一个字符串开头- (BOOL) hasPrefix: (NSString *) aString;&lt;br /&gt;NSString *String1 = @"NSStringInformation.txt";&lt;br /&gt;[String1 hasPrefix:@"NSString"] = = 1 ?&amp;nbsp; NSLog(@"YES") : NSLog(@"NO");&lt;br /&gt;[String1 hasSuffix:@".txt"] = = 1 ?&amp;nbsp; NSLog(@"YES") : NSLog(@"NO");&lt;/p&gt;&#xD;
&lt;p&gt;//02：查找字符串某处是否包含其它字符串 - (NSRange) rangeOfString: (NSString *) aString，这一点前面在串中搜索子串用到过;&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSArray&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------------------创建数组------------------------------*/&lt;br /&gt;//NSArray *array = [[NSArray alloc] initWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",@"Four",nil];&lt;/p&gt;&#xD;
&lt;p&gt;self.dataArray = array;&lt;br /&gt;[array release];&lt;/p&gt;&#xD;
&lt;p&gt;//- (unsigned) Count;数组所包含对象个数；&lt;br /&gt;NSLog(@"self.dataArray cound:%d",[self.dataArray count]);&lt;/p&gt;&#xD;
&lt;p&gt;//- (id) objectAtIndex: (unsigned int) index;获取指定索引处的对象;&lt;br /&gt;NSLog(@"self.dataArray cound 2:%@",[self.dataArray objectAtIndex:2]);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------------------从一个数组拷贝数据到另一数组(可变数级)----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//arrayWithArray:&lt;br /&gt;//NSArray *array1 = [[NSArray alloc] init];&lt;br /&gt;NSMutableArray *MutableArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *array = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",nil];&lt;br /&gt;NSLog(@"array:%@",array);&lt;br /&gt;MutableArray = [NSMutableArray arrayWithArray:array];&lt;br /&gt;NSLog(@"MutableArray:%@",MutableArray);&lt;/p&gt;&#xD;
&lt;p&gt;array1 = [NSArray arrayWithArray:array];&lt;br /&gt;NSLog(@"array1:%@",array1);&lt;/p&gt;&#xD;
&lt;p&gt;//Copy&lt;/p&gt;&#xD;
&lt;p&gt;//id obj;&lt;br /&gt;NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];&lt;/p&gt;&#xD;
&lt;p&gt;NSLog(@"oldArray:%@",oldArray);&lt;br /&gt;for(int i = 0; i &amp;lt; [oldArray count]; i++)&lt;br /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;obj = [[oldArray objectAtIndex:i] copy];&lt;br /&gt;[newArray addObject: obj];&lt;br /&gt;}&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;/p&gt;&#xD;
&lt;p&gt;//NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"oldArray:%@",oldArray);&lt;/p&gt;&#xD;
&lt;p&gt;for(id obj in oldArray)&lt;br /&gt;{&lt;br /&gt;[newArray addObject: obj];&lt;br /&gt;}&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//Deep copy&lt;/p&gt;&#xD;
&lt;p&gt;//NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"oldArray:%@",oldArray);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;newArray = (NSMutableArray*)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFPropertyListRef)oldArray, kCFPropertyListMutableContainers);&lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//Copy and sort&lt;/p&gt;&#xD;
&lt;p&gt;//NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"b",@"a",@"e",@"d",@"c",@"f",@"h",@"g",nil];&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"oldArray:%@",oldArray);&lt;br /&gt;NSEnumerator *enumerator;&lt;br /&gt;enumerator = [oldArray objectEnumerator];&lt;br /&gt;id obj;&lt;br /&gt;while(obj = [enumerator nextObject])&lt;br /&gt;{&lt;br /&gt;[newArray addObject: obj];&lt;br /&gt;}&lt;br /&gt;[newArray sortUsingSelector:@selector(compare:)];&lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------------------切分数组------------------------------*/&lt;/p&gt;&#xD;
&lt;p&gt;//从字符串分割到数组－ componentsSeparatedByString:&lt;br /&gt;NSString *string = [[NSString alloc] initWithString:@"One,Two,Three,Four"];&lt;br /&gt;NSLog(@"string:%@",string);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSArray *array = [string componentsSeparatedByString:@","];&lt;br /&gt;NSLog(@"array:%@",array);&lt;br /&gt;[string release];&lt;/p&gt;&#xD;
&lt;p&gt;//从数组合并元素到字符串- componentsJoinedByString:&lt;br /&gt;NSArray *array = [[NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];&lt;br /&gt;NSString *string = [array componentsJoinedByString:@","];&lt;br /&gt;NSLog(@"string:%@",string);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSMutableArray&lt;br /&gt;*******************************************************************************************/&lt;br /&gt;/*---------------给数组分配容量----------------*/&lt;br /&gt;//NSArray *array;&lt;br /&gt;array = [NSMutableArray arrayWithCapacity:20];&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------在数组末尾添加对象----------------*/&lt;br /&gt;//- (void) addObject: (id) anObject;&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;[array addObject:@"Four"];&lt;br /&gt;NSLog(@"array:%@",array);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------删除数组中指定索引处对象----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//-(void) removeObjectAtIndex: (unsigned) index;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;[array removeObjectAtIndex:1];&lt;br /&gt;NSLog(@"array:%@",array);&lt;/p&gt;&#xD;
&lt;p&gt;/*-------------数组枚举---------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//- (NSEnumerator *)objectEnumerator;从前向后&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;NSEnumerator *enumerator;&lt;br /&gt;enumerator = [array objectEnumerator];&lt;/p&gt;&#xD;
&lt;p&gt;id thingie;&lt;br /&gt;while (thingie = [enumerator nextObject]) {&lt;br /&gt;NSLog(@"thingie:%@",thingie);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//- (NSEnumerator *)reverseObjectEnumerator;从后向前&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;NSEnumerator *enumerator;&lt;br /&gt;enumerator = [array reverseObjectEnumerator];&lt;/p&gt;&#xD;
&lt;p&gt;id object;&lt;br /&gt;while (object = [enumerator nextObject]) {&lt;br /&gt;NSLog(@"object:%@",object);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;for(NSString *string in array)&lt;br /&gt;{&lt;br /&gt;NSLog(@"string:%@",string);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSDictionary&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*------------------------------------创建字典------------------------------------*/&lt;br /&gt;//- (id) initWithObjectsAndKeys;&lt;/p&gt;&#xD;
&lt;p&gt;//NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"Two",@"2",@"Three",@"3",nil];&lt;br /&gt;NSString *string = [dictionary objectForKey:@"One"];&lt;br /&gt;NSLog(@"string:%@",string);&lt;br /&gt;NSLog(@"dictionary:%@",dictionary);&lt;br /&gt;[dictionary release];&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSMutableDictionary&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*------------------------------------创建可变字典------------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//创建&lt;br /&gt;NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];&lt;/p&gt;&#xD;
&lt;p&gt;//添加字典&lt;br /&gt;[dictionary setObject:@"One" forKey:@"1"];&lt;br /&gt;[dictionary setObject:@"Two" forKey:@"2"];&lt;br /&gt;[dictionary setObject:@"Three" forKey:@"3"];&lt;br /&gt;[dictionary setObject:@"Four" forKey:@"4"];&lt;br /&gt;NSLog(@"dictionary:%@",dictionary);&lt;/p&gt;&#xD;
&lt;p&gt;//删除指定的字典&lt;br /&gt;[dictionary removeObjectForKey:@"3"];&lt;br /&gt;NSLog(@"dictionary:%@",dictionary);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSValue（对任何对象进行包装）&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------------------------将NSRect放入NSArray中------------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//将NSRect放入NSArray中&lt;br /&gt;NSMutableArray *array = [[NSMutableArray alloc] init];&lt;br /&gt;NSValue *value;&lt;br /&gt;CGRect rect = CGRectMake(0, 0, 320, 480);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;value = [NSValue valueWithBytes:&amp;amp;rect objCType:@encode(CGRect)];&lt;br /&gt;[array addObject:value];&lt;br /&gt;NSLog(@"array:%@",array);&lt;/p&gt;&#xD;
&lt;p&gt;//从Array中提取&lt;br /&gt;value = [array objectAtIndex:0];&lt;br /&gt;[value getValue:&amp;amp;rect];&lt;br /&gt;NSLog(@"value:%@",value);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;从目录搜索扩展名为jpg的文件&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;//NSFileManager *fileManager = [NSFileManager defaultManager];&lt;br /&gt;NSString *home;&lt;br /&gt;home = @"../Users/";&lt;/p&gt;&#xD;
&lt;p&gt;NSDirectoryEnumerator *direnum;&lt;br /&gt;direnum = [fileManager enumeratorAtPath: home];&lt;/p&gt;&#xD;
&lt;p&gt;NSMutableArray *files = [[NSMutableArray alloc] init];&lt;/p&gt;&#xD;
&lt;p&gt;//枚举&lt;br /&gt;NSString *filename;&lt;br /&gt;while (filename = [direnum nextObject]) {&lt;br /&gt;if([[filename pathExtension] hasSuffix:@"jpg"]){&lt;br /&gt;[files addObject:filename];&lt;br /&gt;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;br /&gt;//for(NSString *filename in direnum)&lt;br /&gt;//{&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; if([[filename pathExtension] isEqualToString:@"jpg"]){&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [files addObject:filename];&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;//}&lt;br /&gt;NSLog(@"files:%@",files);&lt;/p&gt;&#xD;
&lt;p&gt;//枚举&lt;br /&gt;NSEnumerator *filenum;&lt;br /&gt;filenum = [files objectEnumerator];&lt;br /&gt;while (filename = [filenum nextObject]) {&lt;br /&gt;NSLog(@"filename:%@",filename);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;br /&gt;//for(id object in files)&lt;br /&gt;//{&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; NSLog(@"object:%@",object);&lt;br /&gt;//}&lt;br /&gt;/*******************************************************************************************&lt;br /&gt;NSString&lt;br /&gt;*******************************************************************************************/&lt;br /&gt;//一、NSString&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;/*----------------创建字符串的方法----------------*/&lt;/p&gt;&#xD;
&lt;p&gt;//1、创建常量字符串。&lt;br /&gt;NSString *astring = @"This is a String!";&lt;/p&gt;&#xD;
&lt;p&gt;//2、创建空字符串，给予赋值。&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] init];&lt;br /&gt;astring = @"This is a String!";&lt;br /&gt;[astring release];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;//&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] init];&lt;br /&gt;NSLog(@"0x%.8x", astring);&lt;br /&gt;astring=@"This is a String!";&lt;br /&gt;NSLog(@"0x%.8x", astring);&lt;br /&gt;[astring release];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;/p&gt;&#xD;
&lt;p&gt;//3、在以上方法中，提升速度:initWithString方法&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;//4、用标准c创建字符串:initWithCString方法&lt;/p&gt;&#xD;
&lt;p&gt;char *Cstring = "This is a String!";&lt;br /&gt;NSString *astring = [[NSString alloc] initWithCString:Cstring];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;//5、创建格式化字符串:占位符（由一个%加一个字符组成）&lt;/p&gt;&#xD;
&lt;p&gt;int i = 1;&lt;br /&gt;int j = 2;&lt;br /&gt;NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%d.This is %i string!",i,j]];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;//6、创建临时字符串&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring;&lt;br /&gt;astring = [NSString stringWithCString:"This is a temporary string"];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------从文件读取字符串:initWithContentsOfFile方法----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *path = @"astring.text";&lt;br /&gt;NSString *astring = [[NSString alloc] initWithContentsOfFile:path];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------写字符串到文件:writeToFile方法----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;NSString *path = @"astring.text";&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;[astring writeToFile: path atomically: YES];&lt;br /&gt;[astring release];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------比较两个字符串----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//用C比较:strcmp函数&lt;/p&gt;&#xD;
&lt;p&gt;char string1[] = "string!";&lt;br /&gt;char string2[] = "string!";&lt;br /&gt;if(strcmp(string1, string2) = = 0)&lt;br /&gt;{&lt;br /&gt;NSLog(@"1");&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//isEqualToString方法&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSString *astring01 = @"This is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 isEqualToString:astring02];&lt;br /&gt;NSLog(@"result:%d",result);&lt;/p&gt;&#xD;
&lt;p&gt;//compare方法(comparer返回的三种值)&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSString *astring01 = @"This is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;BOOL result = [astring01 compare:astring02] = = NSOrderedSame;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSOrderedSame判断两者内容是否相同&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring01 = @"This is a String!";&lt;br /&gt;NSString *astring02 = @"this is a String!";&lt;br /&gt;BOOL result = [astring01 compare:astring02] = = NSOrderedAscending;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&lt;br /&gt;//NSOrderedAscending判断两对象值的大小(按字母顺序进行比较，astring02大于astring01为真)&lt;/p&gt;&#xD;
&lt;p&gt;NSString *astring01 = @"this is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 compare:astring02] = = NSOrderedDescending;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSOrderedDescending判断两对象值的大小(按字母顺序进行比较，astring02小于astring01为真)&lt;/p&gt;&#xD;
&lt;p&gt;//不考虑大小写比较字符串1&lt;br /&gt;NSString *astring01 = @"this is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 caseInsensitiveCompare:astring02] = = NSOrderedSame;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSOrderedDescending判断两对象值的大小(按字母顺序进行比较，astring02小于astring01为真)&lt;/p&gt;&#xD;
&lt;p&gt;//不考虑大小写比较字符串2&lt;br /&gt;NSString *astring01 = @"this is a String!";&lt;br /&gt;NSString *astring02 = @"This is a String!";&lt;br /&gt;BOOL result = [astring01 compare:astring02&lt;br /&gt;options:NSCaseInsensitiveSearch | NSNumericSearch] = = NSOrderedSame;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"result:%d",result);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较，区分大小写 NSNumericSearch:比较字符串的字符个数，而不是字符值。&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------改变字符串的大小写----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *string1 = @"A String"; &lt;br /&gt;NSString *string2 = @"String"; &lt;br /&gt;NSLog(@"string1:%@",[string1 uppercaseString]);//大写&lt;br /&gt;NSLog(@"string2:%@",[string2 lowercaseString]);//小写&lt;br /&gt;NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------在串中搜索子串----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = @"string";&lt;br /&gt;NSRange range = [string1 rangeOfString:string2];&lt;br /&gt;int location = range.location;&lt;br /&gt;int leight = range.length;&lt;br /&gt;NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%i,Leight:%i",location,leight]];&lt;br /&gt;NSLog(@"astring:%@",astring);&lt;br /&gt;[astring release];&lt;/p&gt;&#xD;
&lt;p&gt;/*----------------抽取子串 ----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//-substringToIndex: 从字符串的开头一直截取到指定的位置，但不包括该位置的字符&lt;br /&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = [string1 substringToIndex:3];&lt;br /&gt;NSLog(@"string2:%@",string2);&lt;/p&gt;&#xD;
&lt;p&gt;//-substringFromIndex: 以指定位置开始（包括指定位置的字符），并包括之后的全部字符&lt;br /&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = [string1 substringFromIndex:3];&lt;br /&gt;NSLog(@"string2:%@",string2);&lt;/p&gt;&#xD;
&lt;p&gt;//-substringWithRange: //按照所给出的位置，长度，任意地从字符串中截取子串&lt;br /&gt;NSString *string1 = @"This is a string";&lt;br /&gt;NSString *string2 = [string1 substringWithRange:NSMakeRange(0, 4)];&lt;br /&gt;NSLog(@"string2:%@",string2);&lt;/p&gt;&#xD;
&lt;p&gt;//扩展路径&lt;/p&gt;&#xD;
&lt;p&gt;NSString *Path = @"~/NSData.txt";&lt;br /&gt;NSString *absolutePath = [Path stringByExpandingTildeInPath];&lt;br /&gt;NSLog(@"absolutePath:%@",absolutePath);&lt;br /&gt;NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);&lt;/p&gt;&#xD;
&lt;p&gt;//文件扩展名&lt;br /&gt;NSString *Path = @"~/NSData.txt";&lt;br /&gt;NSLog(@"Extension:%@",[Path pathExtension]);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSMutableString&lt;br /&gt;*******************************************************************************************/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------给字符串分配容量----------------*/&lt;br /&gt;//stringWithCapacity:&lt;br /&gt;NSMutableString *String;&lt;br /&gt;String = [NSMutableString stringWithCapacity:40];&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------在已有字符串后面添加字符----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//appendString: and appendFormat:&lt;/p&gt;&#xD;
&lt;p&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;//[String1 appendString:@", I will be adding some character"];&lt;br /&gt;[String1 appendFormat:[NSString stringWithFormat:@", I will be adding some character"]];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;br /&gt;*/&lt;/p&gt;&#xD;
&lt;p&gt;/*--------在已有字符串中按照所给出范围和长度删除字符------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;/*&lt;br /&gt;//deleteCharactersInRange:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 deleteCharactersInRange:NSMakeRange(0, 5)];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------在已有字符串后面在所指定的位置中插入给出的字符串------*/&lt;/p&gt;&#xD;
&lt;p&gt;//-insertString: atIndex:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 insertString:@"Hi! " atIndex:0];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------将已有的空符串换成其它的字符串------*/&lt;/p&gt;&#xD;
&lt;p&gt;//-setString:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 setString:@"Hello Word!"];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------按照所给出的范围，和字符串替换的原有的字符------*/&lt;/p&gt;&#xD;
&lt;p&gt;//-setString:&lt;br /&gt;NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"];&lt;br /&gt;[String1 replaceCharactersInRange:NSMakeRange(0, 4) withString:@"That"];&lt;br /&gt;NSLog(@"String1:%@",String1);&lt;/p&gt;&#xD;
&lt;p&gt;/*-------------判断字符串内是否还包含别的字符串(前缀，后缀)-------------*/&lt;br /&gt;//01：检查字符串是否以另一个字符串开头- (BOOL) hasPrefix: (NSString *) aString;&lt;br /&gt;NSString *String1 = @"NSStringInformation.txt";&lt;br /&gt;[String1 hasPrefix:@"NSString"] = = 1 ?&amp;nbsp; NSLog(@"YES") : NSLog(@"NO");&lt;br /&gt;[String1 hasSuffix:@".txt"] = = 1 ?&amp;nbsp; NSLog(@"YES") : NSLog(@"NO");&lt;/p&gt;&#xD;
&lt;p&gt;//02：查找字符串某处是否包含其它字符串 - (NSRange) rangeOfString: (NSString *) aString，这一点前面在串中搜索子串用到过;&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSArray&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------------------创建数组------------------------------*/&lt;br /&gt;//NSArray *array = [[NSArray alloc] initWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",@"Four",nil];&lt;/p&gt;&#xD;
&lt;p&gt;self.dataArray = array;&lt;br /&gt;[array release];&lt;/p&gt;&#xD;
&lt;p&gt;//- (unsigned) Count;数组所包含对象个数；&lt;br /&gt;NSLog(@"self.dataArray cound:%d",[self.dataArray count]);&lt;/p&gt;&#xD;
&lt;p&gt;//- (id) objectAtIndex: (unsigned int) index;获取指定索引处的对象;&lt;br /&gt;NSLog(@"self.dataArray cound 2:%@",[self.dataArray objectAtIndex:2]);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------------------从一个数组拷贝数据到另一数组(可变数级)----------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//arrayWithArray:&lt;br /&gt;//NSArray *array1 = [[NSArray alloc] init];&lt;br /&gt;NSMutableArray *MutableArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *array = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",nil];&lt;br /&gt;NSLog(@"array:%@",array);&lt;br /&gt;MutableArray = [NSMutableArray arrayWithArray:array];&lt;br /&gt;NSLog(@"MutableArray:%@",MutableArray);&lt;/p&gt;&#xD;
&lt;p&gt;array1 = [NSArray arrayWithArray:array];&lt;br /&gt;NSLog(@"array1:%@",array1);&lt;/p&gt;&#xD;
&lt;p&gt;//Copy&lt;/p&gt;&#xD;
&lt;p&gt;//id obj;&lt;br /&gt;NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];&lt;/p&gt;&#xD;
&lt;p&gt;NSLog(@"oldArray:%@",oldArray);&lt;br /&gt;for(int i = 0; i &amp;lt; [oldArray count]; i++)&lt;br /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;obj = [[oldArray objectAtIndex:i] copy];&lt;br /&gt;[newArray addObject: obj];&lt;br /&gt;}&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;/p&gt;&#xD;
&lt;p&gt;//NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"oldArray:%@",oldArray);&lt;/p&gt;&#xD;
&lt;p&gt;for(id obj in oldArray)&lt;br /&gt;{&lt;br /&gt;[newArray addObject: obj];&lt;br /&gt;}&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//Deep copy&lt;/p&gt;&#xD;
&lt;p&gt;//NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",nil];&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"oldArray:%@",oldArray);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;newArray = (NSMutableArray*)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (CFPropertyListRef)oldArray, kCFPropertyListMutableContainers);&lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;//Copy and sort&lt;/p&gt;&#xD;
&lt;p&gt;//NSMutableArray *newArray = [[NSMutableArray alloc] init];&lt;br /&gt;NSArray *oldArray = [NSArray arrayWithObjects:&lt;br /&gt;@"b",@"a",@"e",@"d",@"c",@"f",@"h",@"g",nil];&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSLog(@"oldArray:%@",oldArray);&lt;br /&gt;NSEnumerator *enumerator;&lt;br /&gt;enumerator = [oldArray objectEnumerator];&lt;br /&gt;id obj;&lt;br /&gt;while(obj = [enumerator nextObject])&lt;br /&gt;{&lt;br /&gt;[newArray addObject: obj];&lt;br /&gt;}&lt;br /&gt;[newArray sortUsingSelector:@selector(compare:)];&lt;br /&gt;NSLog(@"newArray:%@", newArray);&lt;br /&gt;[newArray release];&lt;/p&gt;&#xD;
&lt;p&gt;/*---------------------------切分数组------------------------------*/&lt;/p&gt;&#xD;
&lt;p&gt;//从字符串分割到数组－ componentsSeparatedByString:&lt;br /&gt;NSString *string = [[NSString alloc] initWithString:@"One,Two,Three,Four"];&lt;br /&gt;NSLog(@"string:%@",string);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;NSArray *array = [string componentsSeparatedByString:@","];&lt;br /&gt;NSLog(@"array:%@",array);&lt;br /&gt;[string release];&lt;/p&gt;&#xD;
&lt;p&gt;//从数组合并元素到字符串- componentsJoinedByString:&lt;br /&gt;NSArray *array = [[NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];&lt;br /&gt;NSString *string = [array componentsJoinedByString:@","];&lt;br /&gt;NSLog(@"string:%@",string);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSMutableArray&lt;br /&gt;*******************************************************************************************/&lt;br /&gt;/*---------------给数组分配容量----------------*/&lt;br /&gt;//NSArray *array;&lt;br /&gt;array = [NSMutableArray arrayWithCapacity:20];&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------在数组末尾添加对象----------------*/&lt;br /&gt;//- (void) addObject: (id) anObject;&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;[array addObject:@"Four"];&lt;br /&gt;NSLog(@"array:%@",array);&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------删除数组中指定索引处对象----------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//-(void) removeObjectAtIndex: (unsigned) index;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;[array removeObjectAtIndex:1];&lt;br /&gt;NSLog(@"array:%@",array);&lt;/p&gt;&#xD;
&lt;p&gt;/*-------------数组枚举---------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//- (NSEnumerator *)objectEnumerator;从前向后&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;NSEnumerator *enumerator;&lt;br /&gt;enumerator = [array objectEnumerator];&lt;/p&gt;&#xD;
&lt;p&gt;id thingie;&lt;br /&gt;while (thingie = [enumerator nextObject]) {&lt;br /&gt;NSLog(@"thingie:%@",thingie);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//- (NSEnumerator *)reverseObjectEnumerator;从后向前&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;NSEnumerator *enumerator;&lt;br /&gt;enumerator = [array reverseObjectEnumerator];&lt;/p&gt;&#xD;
&lt;p&gt;id object;&lt;br /&gt;while (object = [enumerator nextObject]) {&lt;br /&gt;NSLog(@"object:%@",object);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;br /&gt;//NSMutableArray *array = [NSMutableArray arrayWithObjects:&lt;br /&gt;@"One",@"Two",@"Three",nil];&lt;br /&gt;for(NSString *string in array)&lt;br /&gt;{&lt;br /&gt;NSLog(@"string:%@",string);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSDictionary&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*------------------------------------创建字典------------------------------------*/&lt;br /&gt;//- (id) initWithObjectsAndKeys;&lt;/p&gt;&#xD;
&lt;p&gt;//NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"One",@"1",@"Two",@"2",@"Three",@"3",nil];&lt;br /&gt;NSString *string = [dictionary objectForKey:@"One"];&lt;br /&gt;NSLog(@"string:%@",string);&lt;br /&gt;NSLog(@"dictionary:%@",dictionary);&lt;br /&gt;[dictionary release];&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSMutableDictionary&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*------------------------------------创建可变字典------------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//创建&lt;br /&gt;NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];&lt;/p&gt;&#xD;
&lt;p&gt;//添加字典&lt;br /&gt;[dictionary setObject:@"One" forKey:@"1"];&lt;br /&gt;[dictionary setObject:@"Two" forKey:@"2"];&lt;br /&gt;[dictionary setObject:@"Three" forKey:@"3"];&lt;br /&gt;[dictionary setObject:@"Four" forKey:@"4"];&lt;br /&gt;NSLog(@"dictionary:%@",dictionary);&lt;/p&gt;&#xD;
&lt;p&gt;//删除指定的字典&lt;br /&gt;[dictionary removeObjectForKey:@"3"];&lt;br /&gt;NSLog(@"dictionary:%@",dictionary);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;NSValue（对任何对象进行包装）&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;/*--------------------------------将NSRect放入NSArray中------------------------------------*/&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;//将NSRect放入NSArray中&lt;br /&gt;NSMutableArray *array = [[NSMutableArray alloc] init];&lt;br /&gt;NSValue *value;&lt;br /&gt;CGRect rect = CGRectMake(0, 0, 320, 480);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;value = [NSValue valueWithBytes:&amp;amp;rect objCType:@encode(CGRect)];&lt;br /&gt;[array addObject:value];&lt;br /&gt;NSLog(@"array:%@",array);&lt;/p&gt;&#xD;
&lt;p&gt;//从Array中提取&lt;br /&gt;value = [array objectAtIndex:0];&lt;br /&gt;[value getValue:&amp;amp;rect];&lt;br /&gt;NSLog(@"value:%@",value);&lt;/p&gt;&#xD;
&lt;p&gt;/*******************************************************************************************&lt;br /&gt;从目录搜索扩展名为jpg的文件&lt;br /&gt;*******************************************************************************************/&lt;/p&gt;&#xD;
&lt;p&gt;//NSFileManager *fileManager = [NSFileManager defaultManager];&lt;br /&gt;NSString *home;&lt;br /&gt;home = @"../Users/";&lt;/p&gt;&#xD;
&lt;p&gt;NSDirectoryEnumerator *direnum;&lt;br /&gt;direnum = [fileManager enumeratorAtPath: home];&lt;/p&gt;&#xD;
&lt;p&gt;NSMutableArray *files = [[NSMutableArray alloc] init];&lt;/p&gt;&#xD;
&lt;p&gt;//枚举&lt;br /&gt;NSString *filename;&lt;br /&gt;while (filename = [direnum nextObject]) {&lt;br /&gt;if([[filename pathExtension] hasSuffix:@"jpg"]){&lt;br /&gt;[files addObject:filename];&lt;br /&gt;}&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;br /&gt;//for(NSString *filename in direnum)&lt;br /&gt;//{&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; if([[filename pathExtension] isEqualToString:@"jpg"]){&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [files addObject:filename];&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;//}&lt;br /&gt;NSLog(@"files:%@",files);&lt;/p&gt;&#xD;
&lt;p&gt;//枚举&lt;br /&gt;NSEnumerator *filenum;&lt;br /&gt;filenum = [files objectEnumerator];&lt;br /&gt;while (filename = [filenum nextObject]) {&lt;br /&gt;NSLog(@"filename:%@",filename);&lt;br /&gt;}&lt;/p&gt;&#xD;
&lt;p&gt;//快速枚举&lt;br /&gt;//for(id object in files)&lt;br /&gt;//{&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; NSLog(@"object:%@",object);&lt;br /&gt;//}&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yangze/aggbug/2267907.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yangze/archive/2011/11/29/2267907.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yangze/archive/2011/11/24/2262010.html</id><title type="text">Objective-C语法。 super  内存管理</title><summary type="text">XCode：你可以把它看成是一个开发环境，就好像Visual Studio或者Netbeans或者SharpDevelop一样的玩 意。你可以将Interface Builder认为是Visual Studio中用来画界面的那部分功能单独提出来的程序。Objective-C：这是一种语言，就好像c++是一种语言，Java是一种语言，c#是一种语言，莺歌历史也是一 种语言一样。Cocoa：是一大...</summary><published>2011-11-24T09:03:00Z</published><updated>2011-11-24T09:03:00Z</updated><author><name>小杨随笔</name><uri>http://www.cnblogs.com/yangze/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yangze/archive/2011/11/24/2262010.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yangze/archive/2011/11/24/2262010.html"/><content type="html">&lt;p&gt;XCode：你可以把它看成是一个开发环境，就好像Visual Studio或者Netbeans或者SharpDevelop一样的玩  &lt;p&gt;意。你可以将Interface Builder认为是Visual Studio中用来画界面的那部分功能单独提出来的程序。&lt;br&gt;Objective-C：这是一种语言，就好像c++是一种语言，Java是一种语言，c#是一种语言，莺歌历史也是一  &lt;p&gt;种语言一样。&lt;br&gt;Cocoa：是一大堆函数库，就好像MFC、.NET、Swing这类玩意，人家已经写好了一堆现成的东西，你只要  &lt;p&gt;知道怎么用就可以了。  &lt;p&gt;减号表示一个函数、或者方法、或者消息的开始&lt;br&gt;括号可以认为是如何调用你刚才写的这个方法，通常在Objective-C里说“消息”。&lt;br&gt;同一个数组可以保存不同的对象  &lt;p&gt;C用NULL,OC用nil&lt;br&gt;Objective-C 有种叫做 id 的型别，它的运作有时候像是 void*，不过它却严格规定只能用在对象。&lt;br&gt;基本类别库 import NSObject.h；BOOL型为YES or NO&lt;br&gt;#import vs #include：#import。#import 由 gcc 编译器支持。我并不建议使用 #include，#import 基  &lt;p&gt;本上跟 .h 档头尾的 #ifndef #define #endif 相同。&lt;br&gt;Objective-C 的预设扩展名是 .m  &lt;p&gt;类：@interface... @end&lt;br&gt;Implementation 以 @implementation ClassName 开始，以 @end 结束，用来定义类里的函数&lt;br&gt;继承（inheritance）以 Class: Parent 表示，就像上面的 Fraction: NSObject&lt;br&gt;在 Objective-C 中呼叫 methods 的方法是 [object method]，就像 C++ 的 object-&amp;gt;method()&lt;br&gt;[object init] 是一个建构子（constructor）呼叫，负责初始化对象中的所有变量。&lt;br&gt;[frac setNumerator: 1] 非常简单。它呼叫了 frac 上的 setNumerator method 并传入 1 为参数&lt;br&gt;Objective-C 也有一个用以释放内存的方式： release&lt;br&gt;传递多重参数用set..and：[frac2 setNumerator: 1 andDenominator: 5]；单重时只用set&lt;br&gt;加入其它参数的方法就跟加入第二个时一样，即 method:label1:label2:label3: ，而呼叫的方法是 obj  &lt;p&gt;method: param1 label1: param2 label2: param3 label3: param4]  &lt;p&gt;建构子（Constructors）&lt;br&gt;@interface 里的宣告就如同正常的函式&lt;br&gt;@implementation 使用了一个新的关键词：super &lt;br&gt;使用 [super init] 来存取 Super constructor，这个动作需要适当的继承设计  &lt;p&gt;存取权限 &lt;br&gt;预设的权限是 @protected &lt;br&gt;就像 C++ 中 private: [list of vars] public: [list of vars] 的格式，它只是改成了@private,  &lt;p&gt;@protected, 等等  &lt;p&gt;Class level access &lt;br&gt;static int count = 0; 这是 class variable 宣告的方式。+(int) initCount; 这是回传 count 值的  &lt;p&gt;实际 method。+(void) initialize method is 在 Objective-C 开始执行你的程序时被呼叫，而且它也  &lt;p&gt;被每个 class 呼叫。  &lt;p&gt;异常情况（Exceptions） &lt;br&gt;注意：异常处理只有 Mac OS X 10.3 以上才支持&lt;br&gt;Exceptions（异常情况）的丢出不需要扩充（extend）NSException 对象，你可简单的用 id 来代表它：  &lt;p&gt;@catch ( id e ) { ... }  &lt;p&gt;继承、多型（Inheritance, Polymorphism）以及其它对象导向功能  &lt;p&gt;Objective-C 与 Java 跟 C++ 不一样，你在呼叫一个对象的 method 时，并不需要知道这个对象的型别  &lt;p&gt;。当然这个 method 一定要存在，这称为 Objective-C 的讯息传递。你不需要知道你呼叫 method 的那  &lt;p&gt;个东西是什么型别，如果这个对象对这个讯息有反应，那就会唤起这个 method。  &lt;p&gt;继承（Inheritance）&lt;br&gt;当你扩充你的 super class（所以只能有一个 parent），你想自订这个 super class 的 method，只要  &lt;p&gt;简单的在你的 child class implementation 里放上新的实作内容即可。  &lt;p&gt;动态识别（Dynamic types）&lt;br&gt;如-(BOOL) isKindOfClass: classObj，即is object a descendent or member of classObj  &lt;p&gt;Categories &lt;br&gt;当你想要为某个 class 新增 methods，你通常会扩充（extend，即继承）它。然而这不一定是个完美解  &lt;p&gt;法，特别是你想要重写一个 class 的某个功能，但你却没有原始码时。Categories 允许你在现有的  &lt;p&gt;class 加入新功能，但不需要扩充它。Ruby 语言也有类似的功能。包括-(Fraction*) add: (Fraction*)  &lt;p&gt;f; -(Fraction*) mul: (Fraction*) f; -(Fraction*) div: (Fraction*) f; -(Fraction*) sub:  &lt;p&gt;(Fraction*) f;等  &lt;p&gt;Posing&lt;br&gt;Posing 有点像 categories，但是不太一样。它允许你扩充一个 class，并且全面性地的扮演（pose）这  &lt;p&gt;个 super class。如果你让 NSArrayChild 扮演 NSArray，则在你的程序代码中所有的 NSArray 都会自  &lt;p&gt;动被替代为 NSArrayChild。[FractionB poseAsClass: [Fraction class]];  &lt;p&gt;Protocols &lt;br&gt;Objective-C 里的 Protocol 与 Java 的 interface 或是 C++ 的 purely virtual class 相同。&lt;br&gt;protocol 的宣告十分简单，基本上就是 @protocol ProtocolName (methods you must implement) @end&lt;br&gt;要遵从（conform）某个 protocol，将要遵从的 protocols 放在 &amp;lt;&amp;gt; 里面，并以逗点分隔。如：  &lt;p&gt;@interface SomeClass &amp;lt;Protocol1, Protocol2, Protocol3&amp;gt; 。&lt;br&gt;protocol 要求实作的 methods 不需要放在 header 档里面的 methods 列表中。&lt;br&gt;可以使用 @protocol 来测试对象是否遵从接口。如果对象遵从这个接口，[object conformsToProtocol:&lt;br&gt;@protocol( SomeProtocol )] 会回传一个 YES 型态的 BOOL 对象。  &lt;p&gt;内存管理  &lt;p&gt;Retain and Release（保留与释放）&lt;br&gt;Retain 以及 release 是两个继承自 NSObject 的对象都会有的 methods。每个对象都有一个内部计数器  &lt;p&gt;，可以用来追踪对象的 reference 个数。如果对象有 3 个 reference 时，不需要 dealloc 自己。但是  &lt;p&gt;如果计数器值到达 0 时，对象就得 dealloc 自己。[object retain] 会将计数器值加 1（值从 1 开始  &lt;p&gt;），[object release] 则将计数器值减 1。如果呼叫 [object release] 导致计数器到达 0，就会自动  &lt;p&gt;dealloc。&lt;br&gt;你可以呼叫 [obj retainCount] 来取得计数器的 int 值。  &lt;p&gt;Dealloc &lt;br&gt;当你的对象包含其它对象时，就得在 dealloc 自己时释放它们。Objective-C 的一个优点是你可以传递  &lt;p&gt;讯息给 nil，所以不需要经过一堆防错测试来释放一个对象。&lt;br&gt;每个 set method 里的三个动作的顺序非常重要。假设你把自己当参数传给一个自己的 method（有点怪  &lt;p&gt;，不过确实可能发生）。若你先 release，「然后」才 retain，你会把自己给解构（destruct，相对于  &lt;p&gt;建构）！这就是为什么应该要 1) retain 2) release 3) 设值 的原因  &lt;p&gt;Autorelease Pool&lt;br&gt;当你想用 NSString 或其它 Foundation framework classes 来做更多程序设计工作时，你需要一个更有  &lt;p&gt;弹性的系统，也就是使用 Autorelease pools。当开发 Mac Cocoa 应用程序时，autorelease pool 会自  &lt;p&gt;动地帮你设定好。&lt;br&gt;#import &amp;lt;Foundation/NSAutoreleasePool.h&amp;gt;&lt;br&gt;在 Objective-C 有两种管理内存的方法， 1) retain and release or 2) retain and  &lt;p&gt;release/autorelease。对于每个 retain，一定要对应一个 release 「或」一个 autorelease。  &lt;p&gt;Foundation framework classes  &lt;p&gt;Foundation framework 地位如同 C++ 的 Standard Template Library。不过 Objective-C 是真正的动  &lt;p&gt;态识别语言（dynamic types），所以不需要像 C++ 那样肥得可怕的样版（templates）。这个 ramework  &lt;p&gt;包含了对象组、网络、执行绪，还有更多好东西。  &lt;p&gt;NSArray &lt;br&gt;数组有两种（通常是 Foundation classes 中最数据导向的部分），NSArray 跟 NSMutableArray，顾名  &lt;p&gt;思义，mutable（善变的）表示可以被改变，而 NSArray 则不行。这表示你可以制造一个 NSArray 但却  &lt;p&gt;不能改变它的长度。&lt;br&gt;NSArray *arr = [[NSArray alloc] initWithObjects: @"Me", @"Myself", @"I", nil]; &lt;br&gt;排序（sorting）展示如何用 selector 来排序一个对象&lt;br&gt;NSEnumerator 很像 Java 的列举系统  &lt;p&gt;NSDictionary&lt;br&gt;#import &amp;lt;Foundation/NSDictionary.h&amp;gt; （不明白包含哪些东东）  &lt;p&gt;&lt;p&gt;&lt;p&gt;&lt;u&gt;&lt;font color="#669966"&gt;注意： 资料来源于互联网&lt;/font&gt;&lt;/u&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yangze/aggbug/2262010.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yangze/archive/2011/11/24/2262010.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yangze/archive/2011/11/24/2261758.html</id><title type="text">中国的金融 食品 和美国企业</title><summary type="text">终于明白 中国食品为什么差 金融那么差 原来有高盛&amp;amp;孟山都这样的公司在中国搞鬼 美国的财团已经开始通过金融技术和生物科技，双管齐下控制他国的农业甚至生态环境。 美帝国主义要控制一个国家，有两种手段，一种是发动战争，一种是金融控制 高盛它们在中国的四大行赚取了上万亿的钱 高盛集团入股了中国石化、中粮集团、金龙鱼等多家大型企业，并占有中国移动的股份，发动金融危机，整垮中国。 高盛成为领导中国...</summary><published>2011-11-24T07:17:00Z</published><updated>2011-11-24T07:17:00Z</updated><author><name>小杨随笔</name><uri>http://www.cnblogs.com/yangze/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yangze/archive/2011/11/24/2261758.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yangze/archive/2011/11/24/2261758.html"/><content type="html">&lt;p&gt;终于明白 中国食品为什么差&amp;nbsp; 金融那么差 原来有高盛&amp;amp;孟山都这样的公司在中国搞鬼  &lt;p&gt;美国的财团已经开始通过金融技术和生物科技，双管齐下控制他国的农业甚至生态环境。  &lt;p&gt;美帝国主义要控制一个国家，有两种手段，一种是发动战争，一种是金融控制  &lt;p&gt;高盛它们在中国的四大行赚取了上万亿的钱  &lt;p&gt;高盛集团入股了中国石化、中粮集团、金龙鱼等多家大型企业，并占有中国移动的股份，发动金融危机，整垮中国。  &lt;p&gt;高盛成为领导中国公司在国际市场上市首屈一指的承销商，具体项目包括：网络游戏公司盛大价值1.69亿美元的首次公开上市；&lt;br&gt;即时通讯公司腾讯价值1.8亿美元的上市；平安保险价值18.4亿美元的上市；中国网通价值13.1亿美元的上市；&lt;br&gt;中兴通讯价值4.53亿美元的上市；中国石油价值16.8亿美元及中国石化价值7.42亿美元的股份配售。 &lt;br&gt;还有中国移动&amp;nbsp; 主权债券&amp;nbsp; 全球债券 等等&amp;nbsp; 都是它承销的&amp;nbsp; &lt;br&gt;它跟我们国内这么多大公司有关 利用金融手段&amp;nbsp; 它发布消息&amp;nbsp; 控制金融  &lt;p&gt;高盛还投资了中国的猪肉 ~  &lt;p&gt;高盛的猪肉和孟山都的转基因作物上了我们的餐桌  &lt;p&gt;孟山都的转基因 东北的玉米&amp;nbsp; 大豆&amp;nbsp; 老鼠吃了都死了  &lt;p&gt;现在的茄子不是茄子&amp;nbsp; 冬瓜不是冬瓜~~~&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;p&gt;这些公司 太牛了 ~&amp;nbsp; &lt;img src="http://www.cnblogs.com/yangze/aggbug/2261758.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yangze/archive/2011/11/24/2261758.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yangze/archive/2011/11/15/2250011.html</id><title type="text">Ubuntu下最简单安装设置LAMP(Linux+Apache+Mysql+Perl/PHP/Python)套件</title><summary type="text">在终端下输入sudo tasksel然后会出现一个软件包的界面，移动光标到LAMP server 这一项，按空格，就会选择这一项，其他的可以不选，然后点OK。接下来呢，会让你输入MySQL的root用户的密码，这个得记住的，后面安装php程序时用的上。然后就装好了LAMP， 在浏览器上输入http://127.0.0.1，测试下apache2 如果出现 100错误 是打开了新立得软件管理器...</summary><published>2011-11-15T10:01:00Z</published><updated>2011-11-15T10:01:00Z</updated><author><name>小杨随笔</name><uri>http://www.cnblogs.com/yangze/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yangze/archive/2011/11/15/2250011.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yangze/archive/2011/11/15/2250011.html"/><content type="html">&lt;p&gt;&lt;/p&gt; &lt;p&gt;在终端下输入&lt;br&gt;sudo&amp;nbsp; tasksel&lt;br&gt;然后会出现一个软件包的界面，移动光标到LAMP server 这一项，按空格，就会选择这一项，其他的可以不选，然后点OK。&lt;br&gt;接下来呢，会让你输入MySQL的root用户的密码，这个得记住的，后面安装php程序时用的上。然后就装好了LAMP，&lt;/p&gt; &lt;p&gt;在浏览器上输入&lt;a href="http://127.0.0.1"&gt;http://127.0.0.1&lt;/a&gt;，测试下apache2 &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;如果出现&amp;nbsp; 100错误&amp;nbsp; &lt;/p&gt; &lt;p&gt;是打开了新立得软件管理器&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 关掉 重启安装&amp;nbsp; 就OK了&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;######################Ubuntu 10.10安装LAMP超级简单的方法：&lt;strong&gt;&lt;br&gt;&lt;/strong&gt; &lt;p&gt;&lt;strong&gt;$sudo apt-get install tasksel&lt;/strong&gt;  &lt;p&gt;&lt;strong&gt;$sudo&amp;nbsp; tasksel&lt;/strong&gt;  &lt;p&gt;##And select LAMP Server:  &lt;p&gt;&lt;strong&gt;$sudo vi /var/www/info.php&amp;nbsp; //添加以下三行代码&lt;/strong&gt;  &lt;p&gt;&amp;lt;  &lt;p&gt;phpinfo();  &lt;p&gt;?&amp;gt;  &lt;p&gt;&lt;strong&gt;$sudo /etc/init.d/apache2 restart&lt;/strong&gt;  &lt;p&gt;&lt;strong&gt;以下是传统安装方法：&lt;/strong&gt;  &lt;p&gt;Installing Apache MySQL, PHP and phpmyadmin on Ubuntu10.10 Maverick Meerkat is far easier and less complicated than doing the same on Fedora 13, (my own experience).  &lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; You start by installing mysql  &lt;p&gt;sudo apt-get install mysql-client mysql-server  &lt;p&gt;Specify new password for the MySQl “root” user when prompted. Repeat it for a second time and you would have MySQL server and client installed.  &lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Next, &lt;a&gt;install&lt;/a&gt; Apache2:  &lt;p&gt;sudo apt-get install apache2  &lt;p&gt;And you get apache2 installed as well. To double check, point your browser to http://localhost, and you should see the Apache2 placeholder page like this.  &lt;p&gt;&lt;a&gt;&lt;img src="http://hiphotos.baidu.com/flashgive/pic/item/b3cec35540299491b645aee3.jpg" width="600" height="274"&gt;&lt;/a&gt;  &lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; To install support for PHP, do the usual  &lt;p&gt;sudo apt-get install php5 libapache2-mod-php5  &lt;p&gt;To verify that everything installed correctly and php support is enabled, you need to&lt;strong&gt;restart apache&lt;/strong&gt; by doing this  &lt;p&gt;sudo /etc/init.d/apache2 restart  &lt;p&gt;Create a test php file called &lt;em&gt;info.php&lt;/em&gt;, using a text editor of your choice (say gedit)  &lt;p&gt;sudo gedit /var/www/info.php  &lt;p&gt;and paste the following content and save the file  &lt;p&gt;&amp;lt;?php phpinfo(); ?&amp;gt;  &lt;p&gt;Now open the following page http://localhost/info.php and you should see something like this  &lt;p&gt;&lt;a&gt;&lt;img src="http://hiphotos.baidu.com/flashgive/pic/item/79e622c442753cfc8326ace3.jpg" width="600" height="383"&gt;&lt;/a&gt;  &lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; To make MySQL, php and apache talk among themselves, you would have to install php5-mysql, below I am listing some more useful packages that you might want to install  &lt;p&gt;sudo apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-common  &lt;p&gt;Now refresh the info.php page that you have open in your browser and you should be able to see the support for mysql if you search for it by doing Ctrl+f, but before that don’t forget to restart apache again (sudo /etc/init.d/apache2 restart)  &lt;p&gt;&lt;a&gt;&lt;img src="http://hiphotos.baidu.com/flashgive/pic/item/7dba8aa97516b0a91f17a2e3.jpg" width="598" height="282"&gt;&lt;/a&gt;  &lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Finally install phpmyadmin  &lt;p&gt;sudo apt-get install phpmyadmin  &lt;p&gt;It would ask if you want to configure it automatically for apache or lightppd choose apache (by pressing “spacebar” to display a star as shown below and then use tab to navigate to Ok and press enter.  &lt;p&gt;&lt;a&gt;&lt;img src="http://hiphotos.baidu.com/flashgive/pic/item/48d906fce727f5d7b801a0e3.jpg" width="475" height="360"&gt;&lt;/a&gt;  &lt;p&gt;It would be automatically configured, however it would ask if you want a database installed and configured, choose &lt;strong&gt;yes&lt;/strong&gt; and press enter  &lt;p&gt;&lt;a&gt;&lt;img src="http://hiphotos.baidu.com/flashgive/pic/item/d4e84382423135c5f703a6e3.jpg" width="474" height="357"&gt;&lt;/a&gt;  &lt;p&gt;On the next screen you would be asked to enter the MySQL root password, that you provided in first step  &lt;p&gt;&lt;a&gt;&lt;img src="http://hiphotos.baidu.com/flashgive/pic/item/73fe83900b330cd8a877a4e3.jpg" width="456" height="345"&gt;&lt;/a&gt;  &lt;p&gt;next it would ask you to enter a password to be used by phpmyadmin to register with the&lt;a&gt;database&lt;/a&gt; (basically it would create a user called “phpmyadmin” the password is for that, most likely you won’t be needing this password ever. You can even choose to assign a random password for it.  &lt;p&gt;&lt;a&gt;&lt;img src="http://hiphotos.baidu.com/flashgive/pic/item/b8748e107922b7a9c2ce79e2.jpg" width="455" height="345"&gt;&lt;/a&gt;  &lt;p&gt;Confirm that password on the next screen. Once you have made your choices the installation would finish and you should be able to access phpmyadmin by pointing your web browser to http://localhost/phpmyadmin/  &lt;p&gt;&lt;strong&gt;You might need to restart apache again, for the above link to start working! (I didn’t have to restart apache, though.)&lt;br&gt;&lt;/strong&gt; &lt;p&gt;Super easy installation…&lt;img src="http://hiphotos.baidu.com/flashgive/pic/item/9bf010f990141f0c242df2f0.jpg"&gt;  &lt;p&gt;&lt;strong&gt;转载自：&lt;a href="http://www.hackourlife.com/install-apache-mysql-php-phpmyadmin-lamp-on-ubuntu-10-10/"&gt;www.hackourlife.com/install-apache-mysql-php-phpmyadmin-lamp-on-ubuntu-10-10/&lt;/a&gt;&lt;/strong&gt;&lt;img src="http://www.cnblogs.com/yangze/aggbug/2250011.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yangze/archive/2011/11/15/2250011.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
